首页 >> 中医针灸

Kubernetes 集群和应用控管方案的设计与实践(下)

发布时间:2025年11月03日 12:29

rvice.yaml 明文,其表述如下:

kind: Service apiVersion: v1 metadata: name: node-exporter namespace: monitoring annotations: prometheus.io/scrape: 'true' prometheus.io/port: '9100' spec: selector: app.kubernetes.io/component: exporter app.kubernetes.io/name: node-exporter ports: - name: node-exporter protocol: TCP port: 9100 targetPort: 9100

此 Service 的唯择器如下:

selector: app.kubernetes.io/component: exporter app.kubernetes.io/name: node-exporter

创建者 Service:

kubectl create -f service.yaml

详细信息 Endpoint 能用的 node exporter 的 Pod IP:

root@master:~# kubectl get endpoints -n monitoring NAME ENDPOINTS AGE node-exporter 10.32.0.27:9100,10.36.0.4:9100,10.44.0.3:9100 22h

node exporter 除了能用各种高效率样本部份,不会再没事。

本章参看资料:

▌布署 Prometheus

今日有了 node exporter ,可以能用结点各类高效率,最后没多久是对 Kubernetes 基础设施的 metrics 样本能用。

Kubernetes 自身透过的很多 metrics 样本,有三大相交 /metrics/cadvisor, /metrics/resourceand /metrics/probes。

以 /metrics/cadvisor 为例,cAdvisor 归纳在给定结点上调试的所有容器的内存、CPU、明文和网络可用持续性的高效率,你可以推入左侧文档参看明白 cAdvisor 的所有高效率。

其它资料:

OpenBSD所在位置: Kubernetes 监测架构设计:

在本节中会,布署的 Prometheus 将会对 kubenetes 来进行表列动作以没多久能用 metrics 样本:

Kubernetes-apiservers: 从 API 应用程序赢取所有的高效率;

Kubernetes 结点: 它能用所有的 kubernetes 结点高效率;

kubernetes-pods: pod 元样本上曾受制于 prometheus.io/scrape 和 prometheus.io/port 原文,所有的 pod 高效率都会被见到;

kubernetes-cadvisor: 能用所有 cAdvisor 高效率,与容器方面;

Kubernetes-Service-endpoints: 如果服务单项元样本可用 prometheus.io/scrape 原文和 prometheus.io/port 原文,那么所有的服务单项相交都将被毁坏;

Bibin Wilson 大哥早已烧录好了方面的布署表述明文,我们单独iTunes只只需:

git clone

Prometheus 通过可用 Kubernetes API Server ,利用 各结点、Pod、Deployment 等所有可用的高效率。因此,我们能够创建者不具备对所只需 API 分组的只有读到访权限的 RBAC 策略,并将策略绑定到情报搜集名称空间内,以限制 Prometheus Pod 勉强对 API 来进行读操作。

详细信息 clusterRole.yaml 明文,可以其要监测的人力某类列表:

- apiGroups: [""] resources: - nodes - nodes/proxy - services - endpoints - pods verbs: ["get", "list", "watch"] - apiGroups: - extensions resources: - ingresses

在协同中会创建者配角和配角绑定:

kubectl create -f clusterRole.yaml

可以通过 通过下达行图案和可用明文 对 Prometheus 来进行可用。虽然下达行图案可用了必逆的系统设计模板(例如存储器所在位置、要保存在磁盘和内存中会的样本量等),但可用明文表述了与抓取作业及其重构方面的所有段落,以及加载哪些前提明文,因此布署 Permetheus 少不了想到明文可用。

Permetheus 的可用明文以 YAML 格式编写,基本前提可以参看左侧文档。

为了没多久于将可用明文映射到 Permetheus Pod 中会,我们能够将可用置放 configmap ,然后装载到 Pod,可用段落可以详细信息 config-map.yaml 。config-map.yaml 中会表述了很多挖掘样本源的前提,例如能用 Kubernetes 协同和 node exporter ,可用可参看:

scrape_configs: - job_name: 'node-exporter' kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: [originallymeta_kubernetes_endpoints_name] regex: 'node-exporter' action: keep

你可以推入左侧文档在线截图这个明文。

创建者 configmap:

kubectl create -f config-map.yaml

这个可用很最主要,能够根据预际持续性可用,一般由运维解决问题,这中都就不再讨论。

最后将要布署 Prometeus ,由于下例明文中会可用 emtpy 卷存储器 Prometheus 样本,因此一旦 Pod 重启等,样本将会遗留下,因此这中都可以换成 hostpath 卷。

推入 prometheus-deployment.yaml 明文:

emptyDir: {}

换成

hostPath: path: /data/prometheus type: Directory

可复可不复。

如果复的话,能够在被适时此 Pod 近似于的结点上创建者 /data/prometheus 目录。

布署 Prometeus :

kubectl create -f prometheus-deployment.yaml

详细信息布署状态:

root@master:~# kubectl get deployments --namespace=monitoring NAME READY UP-TO-DATE AVAILABLE AGE prometheus-deployment 1/1 1 1 23h

为了在部份界到访 Prometeus ,能够创建者 Service:

apiVersion: v1 kind: Service metadata: name: prometheus-service namespace: monitoring annotations: prometheus.io/scrape: 'true' prometheus.io/port: '9090'

spec:selector: app: prometheus-servertype: NodePort ports:- port: 8080targetPort: 9090 nodePort: 30000

kubectl create -f prometheus-service.yaml

最后可以到访 Prometeus UI LCD。

点唯 Graph,点唯🌏图标,唯择能够辨识的高效率值,再点唯 Execute 查询辨识。

你还可以在 Service Discobery 中会,详细信息 Prometheus 挖掘的 metrics 样本源。

如果你的协同不能内置过 kube-state-metrics,那么这个样本源会辨识粉红色标上,在下一节中会,我们继续布署这个分模组。

至此,我们的监测构件如下表:

本节参看:

▌布署 Kube State Metrics

Kube State metrics 是一个服务单项,它与 Kubernetes API Server 通信,以利用所有 API 某类的详细反馈,如 Deployment、Pod 等。

Kube State metrics 透过了不能单独从本地 Kubernetes 情报搜集分模组赢取的 Kubernetes 某类和人力 内积,因为 Kubenetes Metrics 本身透过的高效率并不是很全面,因此能够 Kube State Metrics 以赢取与 kubernetes 某类方面的所有内积。

表列是可以从 Kube State metrics 中会赢取的一些最主要内积:

Node status, node capacity (CPU and memory) Replica-set compliance (desired/available/unavailable/updated status of replicas per deployment) Pod status (waiting, running, ready, etc) Ingress metrics PV, PVC metrics Daemonset Bell Statefulset metrics. Resource requests and limits. Job Bell Cronjob metrics

可以在这中都的PDF中会详细信息曾受全力支持的详细高效率。

详细高效率:

Bibin Wilson 大哥早已烧录好了方面的布署表述明文,我们单独iTunes只只需:

git clone

单独应用所有 YAML 创建者近似于的人力:

kubectl apply -f kube-state-metrics-configs/ ├── cluster-role-binding.yaml├── cluster-role.yaml├── deployment.yaml├── service-account.yaml└── service.yaml

上面创建者的人力,都有表列部分,这一小节,就不展开讲解。

Service Account

Cluster Role

Cluster Role Binding

Kube State Metrics Deployment

Service

可用表列下达检查布署状态:

kubectl get deployments kube-state-metrics -n kube-system

随后,破纪录近 Prometheus Service Discobery ,可以碰到粉红色逆成了黄色,点唯此样本源,可以碰到表列反馈:

- job_name: 'kube-state-metrics'static_configs:- targets: ['kube-state-metrics.kube-system.svc.cluster.local:8080']

此可用为 kube-state-metrics 的到访地址。

在此,我们布署的 Prometeus 构件如下:

本节参看资料:

▌ 布署 Grafana

经过下面几个小节的布署,早已搞好样本源的挖掘以及样本存储器,最后我们将布署 Grafana,能用 Grafana 对高效率样本来进行归纳以及可视化。

Bibin Wilson 大哥早已烧录好了方面的布署表述明文,我们单独iTunes只只需:

git clone

首先详细信息 grafana-datasource-config.yaml明文,此可用是为了 Grafana 基本机能可用好 Prometheus 样本源。

中都面还有一个很最主要的地址:

"url": "",

这中都要核实你的 CoreDNS 是否正常,你可以参看文档 中会所列的 DNS 调试工具,核实你的协同中会是否可以通过 DNS 到访 Pod。

最简单的工具是启动一个 Pod,然后可用下达检测 curl ,看看能不能利用到响应样本,如果出新现:

root@master:~/jk/kubernetes-prometheus# curl curl: (6) Could not resolve host: prometheus-deployment.monitoring.svcroot@master:~/jk/kubernetes-prometheus# curl curl: (6) Could not resolve host: prometheus-deployment.monitoring.svc.cluster.local

确预是你 coredns 不能内置或者别的主因,能避免不能通过此地址到访 Prometheus ,为了为了能避免过多操作,可以复为可用 IP,而不是域名。

详细信息 Prometheus 的 Service IP:

root@master:~/jk/kubernetes-prometheus# kubectl get svc -n monitoringNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEprometheus-deployment NodePort 10.105.95.8 9090:32330/TCP 23h

检测通过 Service IP 到访是否正常

root@master:~/jk/kubernetes-prometheus# curl 10.105.95.8:9090Found.

将 grafana-datasource-config.yaml中会的 prometheus-deployment.monitoring.svc.cluster.local:8080换成近似于的 Service IP,并且端口换成 9090。

创建者可用

kubectl create -f grafana-datasource-config.yaml

推入 deployment.yaml 详细信息表述,模版中会 grafana 的样本存储器也是可用 empty 卷,有样本遗留下安全性,因此可以换成用 hospath 或其他种类的卷存储器。可参看因由的可用:

volumes:- name: grafana-storagehostPath:path: /data/grafanatype: Directory

布署 Grafana:

kubectl create -f deployment.yaml

然后创建者 Service:

kubectl create -f service.yaml

接着可以通过 32000 端口到访 Grafana。

账号密码都是 admin

至此,我们布署的 Prometheus 监测构件如下:

刚刚进去的时候空空如也,我们能够能用图表模版制作可视化界面,才能辨识出新貌似的样本。

在 Grafana Twitter中会,有很多社七区制作的完全免费的模版。

完全免费的模版

首先推入 iTunes这个模版,然后上传模版明文,并绑定近似于的 Prometheus 样本源。

最后就可以碰到近似于的监测界面了。

你可以推入 Browse ,继续导向非常多的模版,然后详细信息要辨识的模版监测界面。

本节参看资料:

▌应用如何并行 Prometheus 和 Grafana

下面早已提及对基础设施的监测,我们还可以对中会间件如 TIDB、Mysql 等生成、能用高效率样本,还可以在程序中会自表述高效率样本,然后自费制作 Grafana 模版。如果你是 .NET 研发,还可以参看因由的另一篇文章来一步步明白这些过程。

另一篇文章

▌通讯系统设计

在监测体系中会,通讯系统设计是重中会之重,一般能够根据母公司的预际持续性自研通讯系统设计解决问题和推送通知分模组 。

我们建议您阅读基于 Rob Ewaschuk 在 Google 的观察的我的警报系统设计哲学。

在下面布署 Prometheus 时,config-map.yaml 没多久早已表述了一个通讯系统设计前提。

prometheus.rules: |-groups:- name: devopscube demo alertrules:- alert: High Pod Memoryexpr: sum(container_memory_usage_bytes)> 1for: 1mlabels:severity: slackannotations:summary: High Memory Usage

一条通讯系统设计前提主要由表列几部分分组成:

alert:通讯系统设计前提的名称。

expr:基于 PromQL 给定通讯系统设计即会先决条件,用做计算出来是否有时间序列充分利用该先决条件。

for:评估赶紧时间,可唯模板。用做说明只有当即会先决条件持续一段时间后才发送通讯系统设计。在赶紧期间新近产生通讯系统设计的状态为 pending。

labels:自表述关键字,意味着用户原则上要除此以外到通讯系统设计上的一分组除此以外关键字。

annotations:用做原则上一分组除此以外反馈,比如用做描述通讯系统设计详细反馈的文字等,annotations 的段落在通讯系统设计产生但会一齐作为模板投递 Alertmanager。

可参看:

在 Grafana 中会也可以碰到这条前提。

下面我们有朝一日可用通讯系统设计通知。

首先创建者一个通讯系统设计获知,因由可用了钉钉 Webhook。

然后找 Alert Rules,去掉一个新近的通讯系统设计前提。

通讯系统设计前提恳请参看:

接着推入 Notification policies,为通讯系统设计前提和获知想到绑定,符合先决条件的通讯系统设计反馈将会被推送到原则上的获知中会。

在 Alert Rules 中会可以碰到通讯系统设计反馈的推送记录。由于因由的应用程序在国部份,确预能避免应用程序不能可用钉钉的 Webhook 机能,因此这中都始终在 Pending,因此因由这中都就不再想到过多的尝试了,阅读明白仅仅工序只只需。

这是可用电报外星人 WebHook 的效果图:

IBM最众所周知专业人士(MVP)

IBM最众所周知专业人士是IBM母公司授与第三方新科技专业人士的一个全球金奖。29年来,世界各地的新科技社七区追随者,因其在线上和上地的新科技社七区中会体会专业基本知识和经验而赢取此金奖。

MVP是经过完全符合挑唯的专业人士开发团队,他们代表着新科技最纯熟且最具智者的人,是对社七区投入极大的热爱并乐于助人的专业人士。MVP致力于通过发表演说、论坛问答、创建者网站、撰写新浪、体会录像、开放OpenBSD单项、分组织会议等方式来帮助他人,并仅有高度地帮助IBM新科技社七区用户可用 Microsoft 新科技。

非常多详情恳请唯定Twitter:

忘了你写完了本文!追捧在华尔街日报七区留言体会你的思路,并且投递到留言板。

如果你对本文青睐有加,想要发表文章到自己的平台,恳请在后台回复「发表文章」与我们取得联系!

关切IBM中会国MSDN

加入IBMMVP

北京白癜风医院去哪家好
安徽精神心理挂号
哈尔滨妇科医院哪个专业
武汉好的白癜风专科医院
成都看白癜风去哪里

上一篇: 马斯克推特假粉丝;也70%?或有19.42%为虚假账户

下一篇: 制造芯片的大硅片,我们市场份额仅5%,高度依赖进口

友情链接