作者:乔克 2023-05-11 07:08:07
云计算
云原生 这篇文章只讨论 Kubernetes 本身的监控,而且只讨论如何在夜莺体系中来监控它们。
Kubernetes 是一个简单且复杂的系统,简单之处在于其整体架构比较简单清晰,是一个标准的 Master-Slave 模式,如下:
但是,它又是一个复杂的系统,不论是 Master 还是 Slave,都有多个组件组合而成,如上图所示:
kubelet:维护容器生命周期、CSI 管理以及 CNI 管理。
kube-proxy:负责服务发现和负载均衡。
container runtime(docker、containerd 等):镜像管理、容器运行、CRI 管理等。
数据库组件。
Etcd:保存集群状态,与 apiserver 保持通信。
对于如此复杂的简单系统,要时刻掌握里内部的运行状态,是一件挺难的事情,因为它的覆盖面非常的广,主要涉及:
要监控的非常多,SLI 也非常多。不过,这篇文章只讨论 Kubernetes 本身的监控,而且只讨论如何在夜莺体系中来监控它们。
对于 Kubernetes 本身,主要是监控其系统组件,如下:
!! Ps:这里不在介绍夜莺监控是怎么安装的,如果不清楚的可以看《【夜莺监控】初识夜莺》这篇文章,本次实验也是使用是这篇文章中的安装方式。
ApiServer 是 Kubernetes 架构中的核心,是所有 API 是入口,它串联所有的系统组件。
为了方便监控管理 ApiServer,设计者们为它暴露了一系列的指标数据。当你部署完集群,默认会在default名称空间下创建一个名叫kubernetes的 service,它就是 ApiServer 的地址。
# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 443/TCP 309d
你可以通过curl -s -k -H "Authorization: Bearer $token" https://10.96.0.1:6443/metrics命令查看指标。其中$token是通过在集群中创建 ServerAccount 以及授予相应的权限得到。
所以,要监控 ApiServer,采集到对应的指标,就需要先授权。为此,我们先准备认证信息。
kubectl create ns flashcat
创建0-apiserver-auth.yaml文件,内容如下:
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: categraf
rules:
- apiGroups: [""]
resources:
- nodes
- nodes/metrics
- nodes/stats
- nodes/proxy
- services
- endpoints
- pods
verbs: ["get", "list", "watch"]
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
verbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
verbs: ["get"]
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: categraf
namespace: flashcat
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: categraf
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: categraf
subjects:
- kind: ServiceAccount
name: categraf
namespace: flashcat
上面的内容主要是为categraf授予查询相关资源的权限,这样就可以获取到这些组件的指标数据了。
指标采集的方式有很多种,建议通过自动发现的方式进行采集,这样是不论是伸缩、修改组件都无需再次来调整监控方式了。
夜莺支持Prometheus Agent的方式获取指标,而且 Prometheus 在服务发现方面做的非常好,所以这里将使用Prometheus Agent
方式来采集 ApiServer 的指标。
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-agent-conf
labels:
name: prometheus-agent-conf
namespace: flashcat
data:
prometheus.yml: |-
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'apiserver'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
remote_write:
- url: 'http://192.168.205.143:17000/prometheus/v1/write'
上面的内容主要是通过endpoints的方式主动发现在default名称空间下名字为kubernetes且端口为https的服务,然后将获取到的监控指标传输给夜莺服务端http://192.168.205.143:17000/prometheus/v1/write(这个地址根据实际情况做调整)。
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus-agent
namespace: flashcat
labels:
app: prometheus-agent
spec:
replicas: 1
selector:
matchLabels:
app: prometheus-agent
template:
metadata:
labels:
app: prometheus-agent
spec:
serviceAccountName: categraf
containers:
- name: prometheus
image: prom/prometheus
args:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--web.enable-lifecycle"
- "--enable-feature=agent"
ports:
- containerPort: 9090
resources:
requests:
cpu: 500m
memory: 500M
limits:
cpu: 1
memory: 1Gi
volumeMounts:
- name: prometheus-config-volume
mountPath: /etc/prometheus/
- name: prometheus-storage-volume
mountPath: /prometheus/
volumes:
- name: prometheus-config-volume
configMap:
defaultMode: 420
name: prometheus-agent-conf
- name: prometheus-storage-volume
emptyDir: {}
其中--enable-feature=agent表示启动的是 agent 模式。
然后将上面的所有 YAML 文件部署到 Kubernetes 中,然后查看 Prometheus Agent 是否正常。
# kubectl get po -n flashcat
NAME READY STATUS RESTARTS AGE
prometheus-agent-78c8ccc4f5-g25st 1/1 Running 0 92s
然后可以到夜莺UI查看对应的指标。
获取到了指标数据,后面就是合理利用指标做其他动作,比如构建面板、告警处理等。
比如夜莺Categraf提供了 ApiServer 的仪表盘(https://github.com/flashcatcloud/categraf/blob/main/k8s/apiserver-dash.json),导入后如下:
但是,不论是做面板也好,还是做告警也罢,首先都要对 ApiServer 的指标有一个清晰的认识。
下面做了一些简单的整理。
以下指标来自阿里云 ACK 官方文档,我觉得整理的比较全,比较细,就贴了一部分。想要了解更多的可以到官方网站去查看。
指标 |
类型 |
解释 |
apiserver_request_duration_seconds_bucket |
Histogram |
该指标用于统计 APIServer 客户端对 APIServer 的访问时延。对 APIServer 不同请求的时延分布。请求的维度包括 Verb、Group、Version、Resource、Subresource、Scope、Component 和 Client。 |
Histogram Bucket 的阈值为:**{0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60}**,单位:秒。 |
||
apiserver_request_total |
Counter |
对 APIServer 不同请求的计数。请求的维度包括 Verb、Group、Version、Resource、Scope、Component、HTTP contentType、HTTP code 和 Client。 |
apiserver_request_no_resourceversion_list_total |
Counter |
对 APIServer 的请求参数中未配置 ResourceVersion 的 LIST 请求的计数。请求的维度包括 Group、Version、Resource、Scope 和 Client。用来评估 quorum read 类型 LIST 请求的情况,用于发现是否存在过多 quorum read 类型 LIST 以及相应的客户端,以便优化客户端请求行为。 |
apiserver_current_inflight_requests |
Gauge |
APIServer 当前处理的请求数。包括 ReadOnly 和 Mutating 两种。 |
apiserver_dropped_requests_total |
Counter |
限流丢弃掉的请求数。HTTP 返回值是**429 'Try again later'**。 |
apiserver_admission_controller_admission_duration_seconds_bucket |
Gauge |
准入控制器(Admission Controller)的处理延时。标签包括准入控制器名字、操作(CREATE、UPDATE、CONNECT 等)、API 资源、操作类型(validate 或 admit)和请求是否被拒绝(true 或 false)。 |
Bucket 的阈值为:**{0.005, 0.025, 0.1, 0.5, 2.5}**,单位:秒。 |
||
apiserver_admission_webhook_admission_duration_seconds_bucket |
Gauge |
准入 Webhook(Admission Webhook)的处理延时。标签包括准入控制器名字、操作(CREATE、UPDATE、CONNECT 等)、API 资源、操作类型(validate 或 admit)和请求是否被拒绝(true 或 false)。 |
Bucket 的阈值为:**{0.005, 0.025, 0.1, 0.5, 2.5}**,单位:秒。 |
||
apiserver_admission_webhook_admission_duration_seconds_count |
Counter |
准入 Webhook(Admission Webhook)的处理请求统计。标签包括准入控制器名字、操作(CREATE、UPDATE、CONNECT 等)、API 资源、操作类型(validate 或 admit)和请求是否被拒绝(true 或 false)。 |
cpu_utilization_core |
Gauge |
CPU 使用量,单位:核(Core)。 |
cpu_utilization_ratio |
Gauge |
CPU 使用率=CPU 使用量/内存资源上限,百分比形式。 |
memory_utilization_byte |
Gauge |
内存使用量,单位:字节(Byte)。 |
memory_utilization_ratio |
Gauge |
内存使用率=内存使用量/内存资源上限,百分比形式。 |
up |
Gauge |
服务可用性。 |
名称 |
PromQL |
说明 |
API QPS |
sum(irate(apiserver_request_total[$interval])) |
APIServer 总 QPS。 |
读请求成功率 |
sum(irate(apiserver_request_total{code=~"20.*",verb=~"GET|LIST"}[interval])) |
APIServer 读请求成功率。 |
写请求成功率 |
sum(irate(apiserver_request_total{code=~"20.*",verb!~"GET|LIST|WATCH|CONNECT"}[interval])) |
APIServer 写请求成功率。 |
在处理读请求数量 |
sum(apiserver_current_inflight_requests{requestKind="readOnly"}) |
APIServer 当前在处理读请求数量。 |
在处理写请求数量 |
sum(apiserver_current_inflight_requests{requestKind="mutating"}) |
APIServer 当前在处理写请求数量。 |
请求限流速率 |
sum(irate(apiserver_dropped_requests_total[$interval])) |
Dropped Request Rate。 |
名称 |
PromQL |
说明 |
内存使用量 |
memory_utilization_byte{cnotallow="kube-apiserver"} |
APIServer 内存使用量,单位:字节。 |
CPU 使用量 |
cpu_utilization_core{cnotallow="kube-apiserver"}*1000 |
CPU 使用量,单位:豪核。 |
内存使用率 |
memory_utilization_ratio{cnotallow="kube-apiserver"} |
APIServer 内存使用率,百分比。 |
CPU 使用率 |
cpu_utilization_ratio{cnotallow="kube-apiserver"} |
APIServer CPU 使用率,百分比。 |
资源对象数量 |
名称 |
PromQL |
说明 |
按 Verb 维度分析 QPS |
sum(irate(apiserver_request_total{verb=~"verb"}[interval]))by(verb) |
按 Verb 维度,统计单位时间(1s)内的请求 QPS。 |
按 Verb+Resource 维度分析 QPS |
sum(irate(apiserver_request_total{verb=~"resource"}[$interval]))by(verb,resource) |
按 Verb+Resource 维度,统计单位时间(1s)内的请求 QPS。 |
按 Verb 维度分析请求时延 |
histogram_quantile(interval])) by (le,verb)) |
按 Verb 维度,分析请求时延。 |
按 Verb+Resource 维度分析请求时延 |
histogram_quantile(interval])) by (le,verb,resource)) |
按 Verb+Resource 维度,分析请求时延。 |
非 2xx 返回值的读请求 QPS |
sum(irate(apiserver_request_total{verb=~"GET|LIST",resource=~"resource",code!~"2.*"}[interval])) by (verb,resource,code) |
统计非 2xx 返回值的读请求 QPS。 |
非 2xx 返回值的写请求 QPS |
sum(irate(apiserver_request_total{verb!~"GET|LIST|WATCH",verb=~"resource",code!~"2.*"}[$interval])) by (verb,resource,code) |
统计非 2xx 返回值的写请求 QPS。 |
ControllerManager 也是 Kubernetes 的重要组件,它负责整个集群的资源控制管理,它有许多的控制器,比如 NodeController、JobController 等。
ControllerManager 的监控思路和 ApiServer 一样,都使用 Prometheus Agent 进行采集。
ControllerManager 是通过10257的/metrics接口进行指标采集,要访问这个接口同样需要相应的权限,不过我们在采集 ApiServer 的时候创建过相应的权限,这里就不用创建了。
(1)添加 Prometheus 配置 在原有的 Prometheus 采集配置中新增一个 job 用于采集 ControllerManager,如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-agent-conf
labels:
name: prometheus-agent-conf
namespace: flashcat
data:
prometheus.yml: |-
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'apiserver'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
- job_name: 'controller-manager'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: kube-system;kube-controller-manager;https-metrics
remote_write:
- url: 'http://192.168.205.143:17000/prometheus/v1/write'
由于我的集群里没有相应的 endpoints,所以需要创建一个,如下:
apiVersion: v1
kind: Service
metadata:
annotations:
labels:
k8s-app: kube-controller-manager
name: kube-controller-manager
namespace: kube-system
spec:
clusterIP: None
ports:
- name: https-metrics
port: 10257
protocol: TCP
targetPort: 10257
selector:
component: kube-controller-manager
sessionAffinity: None
type: ClusterIP
将 YAML 的资源更新到 Kubernetes 中,然后使用curl -X POST "http://
但是现在我们还无法获取到 ControllerManager 的指标数据,需要把 ControllerManager 的bind-address改成0.0.0.0。
然后就可以在夜莺 UI 中查看指标了。
然后可以导入https://github.com/flashcatcloud/categraf/blob/main/k8s/cm-dash.json的是数据大盘。
指标 |
类型 |
说明 |
workqueue_adds_total |
Counter |
Workqueue 处理的 Adds 事件的数量。 |
workqueue_depth |
Gauge |
Workqueue 当前队列深度。 |
workqueue_queue_duration_seconds_bucket |
Histogram |
任务在 Workqueue 中存在的时长。 |
memory_utilization_byte |
Gauge |
内存使用量,单位:字节(Byte)。 |
memory_utilization_ratio |
Gauge |
内存使用率=内存使用量/内存资源上限,百分比形式。 |
cpu_utilization_core |
Gauge |
CPU 使用量,单位:核(Core)。 |
cpu_utilization_ratio |
Gauge |
CPU 使用率=CPU 使用量/内存资源上限,百分比形式。 |
rest_client_requests_total |
Counter |
从状态值(Status Code)、方法(Method)和主机(Host)维度分析 HTTP 请求数。 |
rest_client_request_duration_seconds_bucket |
Histogram |
从方法(Verb)和 URL 维度分析 HTTP 请求时延。 |
名称 |
PromQL |
说明 |
Workqueue 入队速率 |
sum(rate(workqueue_adds_total{job="ack-kube-controller-manager"}[$interval])) by (name) |
无 |
Workqueue 深度 |
sum(rate(workqueue_depth{job="ack-kube-controller-manager"}[$interval])) by (name) |
无 |
Workqueue 处理时延 |
histogram_quantile($quantile, sum(rate(workqueue_queue_duration_seconds_bucket{job="ack-kube-controller-manager"}[5m])) by (name, le)) |
无 |
名称 |
PromQL |
说明 |
内存使用量 |
memory_utilization_byte{cnotallow="kube-controller-manager"} |
内存使用量,单位:字节。 |
CPU 使用量 |
cpu_utilization_core{cnotallow="kube-controller-manager"}*1000 |
CPU 使用量,单位:毫核。 |
内存使用率 |
memory_utilization_ratio{cnotallow="kube-controller-manager"} |
内存使用率,百分比。 |
CPU 使用率 |
cpu_utilization_ratio{cnotallow="kube-controller-manager"} |
CPU 使用率,百分比。 |
名称 |
PromQL |
说明 |
Kube API 请求 QPS |
Scheduler 监听在10259端口,依然通过 Prometheus Agent 的方式采集指标。
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-agent-conf
labels:
name: prometheus-agent-conf
namespace: flashcat
data:
prometheus.yml: |-
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'apiserver'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
- job_name: 'controller-manager'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: kube-system;kube-controller-manager;https-metrics
- job_name: 'scheduler'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: kube-system;kube-scheduler;https
remote_write:
- url: 'http://192.168.205.143:17000/prometheus/v1/write'
然后配置 Scheduler 的 Service。
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: kube-scheduler
name: kube-scheduler
namespace: kube-system
spec:
clusterIP: None
ports:
- name: https
port: 10259
protocol: TCP
targetPort: 10259
selector:
component: kube-scheduler
sessionAffinity: None
type: ClusterIP
将 YAML 的资源更新到 Kubernetes 中,然后使用curl -X POST "http://
但是现在我们还无法获取到 Scheduler 的指标数据,需要把 Scheduler 的bind-address改成0.0.0.0。
修改完成过后就可以正常在夜莺UI中查看指标了。
导入监控大盘(https://github.com/flashcatcloud/categraf/blob/main/k8s/scheduler-dash.json)。
指标清单 |
类型 |
说明 |
scheduler_scheduler_cache_size |
Gauge |
调度器缓存中 Node、Pod 和 AssumedPod 的数量。 |
scheduler_pending_pods |
Gauge |
Pending Pod 的数量。队列种类如下: |
指标清单 |
PromQL |
说明 |
Scheduler 集群统计数据 |
指标清单 |
PromQL |
说明 |
内存使用量 |
memory_utilization_byte{cnotallow="kube-scheduler"} |
内存使用量,单位:字节。 |
CPU 使用量 |
cpu_utilization_core{cnotallow="kube-scheduler"}*1000 |
CPU 使用量,单位:毫核。 |
内存使用率 |
memory_utilization_ratio{cnotallow="kube-scheduler"} |
内存使用率,百分比。 |
CPU 使用率 |
cpu_utilization_ratio{cnotallow="kube-scheduler"} |
CPU 使用率,百分比。 |
指标清单 |
PromQL |
说明 |
Kube API 请求 QPS |
Etcd 是 Kubernetes 的存储中心,所有资源信息都是存在在其中,它通过2381端口对外提供监控指标。
由于我这里的 Etcd 是通过静态 Pod 的方式部署到 Kubernetes 集群中的,所以依然使用 Prometheus Agent 来采集指标。
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-agent-conf
labels:
name: prometheus-agent-conf
namespace: flashcat
data:
prometheus.yml: |-
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'apiserver'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
- job_name: 'controller-manager'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: kube-system;kube-controller-manager;https-metrics
- job_name: 'scheduler'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: kube-system;kube-scheduler;https
- job_name: 'etcd'
kubernetes_sd_configs:
- role: endpoints
scheme: http
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: kube-system;etcd;http
remote_write:
- url: 'http://192.168.205.143:17000/prometheus/v1/write'
然后增加 Etcd 的 Service 配置。
apiVersion: v1
kind: Service
metadata:
namespace: kube-system
name: etcd
labels:
k8s-app: etcd
spec:
selector:
component: etcd
type: ClusterIP
clusterIP: None
ports:
- name: http
port: 2381
targetPort: 2381
protocol: TCP
部署 YAML 文件,并重启 Prometheus。如果获取不到指标,需要修改 Etcd 的listen-metrics-urls配置为0.0.0.0。
导入监控大盘(https://github.com/flashcatcloud/categraf/blob/main/k8s/etcd-dash.json)。
指标 |
类型 |
说明 |
cpu_utilization_core |
Gauge |
CPU 使用量,单位:核(Core)。 |
cpu_utilization_ratio |
Gauge |
CPU 使用率=CPU 使用量/内存资源上限,百分比形式。 |
etcd_server_has_leader |
Gauge |
etcd member 是否有 Leader。 |
名称 |
PromQL |
说明 |
etcd 存活状态 |
kubelet 工作节点的主要组件,它监听两个端口:10248和10250。10248是监控检测端口,10250是系统默认端口,通过它的/metrics接口暴露指标。
这里依然通过 Prometheus Agent 的方式采集 kubelet 的指标。
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-agent-conf
labels:
name: prometheus-agent-conf
namespace: flashcat
data:
prometheus.yml: |-
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'apiserver'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
- job_name: 'controller-manager'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
insecure_skip_verify: true
authorization:
credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __m
分享题目:【夜莺监控】管理Kubernetes组件指标
网页网址:http://www.mswzjz.cn/qtweb/news44/479594.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
贝锐智能