成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用KubeNurse進(jìn)行集群網(wǎng)絡(luò)監(jiān)控

安全 數(shù)據(jù)安全
在Kubernetes中,網(wǎng)絡(luò)是通過(guò)第三方網(wǎng)絡(luò)插件來(lái)提供,這些三方插件本身的實(shí)現(xiàn)就比較復(fù)雜,以至于在排查網(wǎng)絡(luò)問(wèn)題時(shí)常常碰壁。那么有沒(méi)有什么方式來(lái)監(jiān)控集群中所有的網(wǎng)絡(luò)連接呢?

[[389818]]

前言

在Kubernetes中,網(wǎng)絡(luò)是通過(guò)第三方網(wǎng)絡(luò)插件來(lái)提供,這些三方插件本身的實(shí)現(xiàn)就比較復(fù)雜,以至于在排查網(wǎng)絡(luò)問(wèn)題時(shí)常常碰壁。那么有沒(méi)有什么方式來(lái)監(jiān)控集群中所有的網(wǎng)絡(luò)連接呢?

kubenurse就是這樣一個(gè)項(xiàng)目,它通過(guò)監(jiān)視集群中的所有網(wǎng)絡(luò)連接,并提供監(jiān)控指標(biāo)供Prometheus采集。

Kubenurse

kubenurse的部署非常簡(jiǎn)單,使用Daemonset形式部署到集群節(jié)點(diǎn)上,Yaml文件在項(xiàng)目的example目錄下。

部署成功后,每5秒鐘會(huì)對(duì)/alive發(fā)一次檢查請(qǐng)求,然后其內(nèi)部會(huì)運(yùn)行各種方法全方位對(duì)集群網(wǎng)絡(luò)進(jìn)行檢測(cè),為了防止過(guò)多的網(wǎng)絡(luò)流量,會(huì)對(duì)檢查結(jié)果緩存3秒。其檢測(cè)機(jī)制如下:

從上圖可以看出,kubenurse會(huì)對(duì)ingress、dns、apiserver、kube-proxy進(jìn)行網(wǎng)絡(luò)探測(cè)。

所有的檢查都會(huì)創(chuàng)建公開(kāi)的指標(biāo),這些指標(biāo)可用于檢測(cè):

  • SDN網(wǎng)絡(luò)延遲以及錯(cuò)誤
  • Kubelet之間的網(wǎng)絡(luò)延遲以及錯(cuò)誤
  • Pod與apiserver通信問(wèn)題
  • Ingress往返網(wǎng)絡(luò)延遲以及錯(cuò)誤
  • Service往返網(wǎng)絡(luò)延遲以及錯(cuò)誤(kube-proxy)
  • Kube-apiserver問(wèn)題
  • Kube-dns(CoreDns)錯(cuò)誤
  • 外部DNS解析錯(cuò)誤(ingress url解析)

然后這些數(shù)據(jù)主要通過(guò)兩個(gè)監(jiān)控指標(biāo)來(lái)體現(xiàn):

  • kubenurse_errors_total:按錯(cuò)誤類型劃分的錯(cuò)誤計(jì)數(shù)器
  • kubenurse_request_duration:按類型劃分的請(qǐng)求時(shí)間分布

這些指標(biāo)都是通過(guò)Type類型進(jìn)行標(biāo)識(shí),對(duì)應(yīng)幾種不同的檢測(cè)目標(biāo):

  • api_server_direct:從節(jié)點(diǎn)直接檢測(cè) API Server
  • api_server_dns:從節(jié)點(diǎn)通過(guò) DNS 檢測(cè) API Server
  • me_ingress:通過(guò) Ingress 檢測(cè)本服務(wù) Service
  • me_service:使用 Service 檢測(cè)本服務(wù) Service
  • path_$KUBELET_HOSTNAME:節(jié)點(diǎn)之間的互相檢測(cè)

然后這些指標(biāo)分別按P50,P90,P99分位數(shù)進(jìn)行劃分,就可以根據(jù)不同的情況來(lái)確認(rèn)集群網(wǎng)絡(luò)狀況了。

安裝部署

這里直接使用官方的部署文件進(jìn)行部署。不過(guò)需要更改幾個(gè)地方。(1)首先將代碼clone到本地

  1. git clone https://github.com/postfinance/kubenurse.git 

(2)進(jìn)入example目錄,修改ingress.yaml配置,主要是添加域名,如下。

  1. --- 
  2. apiVersion: extensions/v1beta1 
  3. kind: Ingress 
  4. metadata: 
  5.   annotations: 
  6.     kubernetes.io/ingress.class: nginx 
  7.   name: kubenurse 
  8.   namespace: kube-system 
  9. spec: 
  10.   rules: 
  11.   - host: kubenurse-test.coolops.cn 
  12.     http: 
  13.       paths: 
  14.       - backend: 
  15.           serviceName: kubenurse 
  16.           servicePort: 8080 

(2)更新daemonset.yaml配置,主要是更改ingress的入口域名,如下。

  1. --- 
  2. apiVersion: apps/v1 
  3. kind: DaemonSet 
  4. metadata: 
  5.   labels: 
  6.     app: kubenurse 
  7.   name: kubenurse 
  8.   namespace: kube-system 
  9. spec: 
  10.   selector: 
  11.     matchLabels: 
  12.       app: kubenurse 
  13.   template: 
  14.     metadata: 
  15.       labels: 
  16.         app: kubenurse 
  17.       annotations: 
  18.         prometheus.io/path: "/metrics" 
  19.         prometheus.io/port: "8080" 
  20.         prometheus.io/scheme: "http" 
  21.         prometheus.io/scrape: "true" 
  22.     spec: 
  23.       serviceAccountName: nurse 
  24.       containers: 
  25.       - name: kubenurse 
  26.         env: 
  27.         - name: KUBENURSE_INGRESS_URL 
  28.           value: kubenurse-test.coolops.cn      # 需要更改的地方 
  29.         - name: KUBENURSE_SERVICE_URL 
  30.           value: http://kubenurse.kube-system.svc.cluster.local:8080 
  31.         - name: KUBENURSE_NAMESPACE 
  32.           value: kube-system 
  33.         - name: KUBENURSE_NEIGHBOUR_FILTER 
  34.           value: "app=kubenurse" 
  35.         image: "postfinance/kubenurse:v1.2.0" 
  36.         ports: 
  37.         - containerPort: 8080 
  38.           protocol: TCP 
  39.       tolerations: 
  40.       - effect: NoSchedule 
  41.         key: node-role.kubernetes.io/master 
  42.         operator: Equal 
  43.       - effect: NoSchedule 
  44.         key: node-role.kubernetes.io/control-plane 
  45.         operator: Equal 

(4)新創(chuàng)建一個(gè)ServiceMonitor,用于獲取指標(biāo)數(shù)據(jù),如下:

  1. apiVersion: monitoring.coreos.com/v1 
  2. kind: ServiceMonitor 
  3. metadata: 
  4.   name: kubenurse 
  5.   namespace: monitoring 
  6.   labels: 
  7.     k8s-app: kubenurse 
  8. spec: 
  9.   jobLabel: k8s-app 
  10.   endpoints: 
  11.   - port: "8080-8080"  
  12.     interval: 30s 
  13.     scheme: http 
  14.   selector: 
  15.     matchLabels: 
  16.      app: kubenurse 
  17.   namespaceSelector: 
  18.     matchNames: 
  19.     - kube-system 

(5)部署應(yīng)用,在example目錄下執(zhí)行以下命令。

  1. kubectl apply -f . 

(6)等待所有應(yīng)用變成running,如下。

  1. # kubectl get all -n kube-system -l app=kubenurse 
  2. NAME                  READY   STATUS    RESTARTS   AGE 
  3. pod/kubenurse-fznsw   1/1     Running   0          17h 
  4. pod/kubenurse-n52rq   1/1     Running   0          17h 
  5. pod/kubenurse-nwtl4   1/1     Running   0          17h 
  6. pod/kubenurse-xp92p   1/1     Running   0          17h 
  7. pod/kubenurse-z2ksz   1/1     Running   0          17h 
  8.  
  9. NAME                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE 
  10. service/kubenurse   ClusterIP   10.96.229.244   <none>        8080/TCP   17h 
  11.  
  12. NAME                       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE 
  13. daemonset.apps/kubenurse   5         5         5       5            5           <none>          17h 

(7)到prometheus上查看是否正常獲取數(shù)據(jù)。

查看指標(biāo)是否正常。

(8)這時(shí)候就可以在grafana上畫(huà)圖,展示監(jiān)控?cái)?shù)據(jù)了,如下。

參考文檔

【1】https://github.com/postfinance/kubenurse

【2】https://github.com/postfinance/kubenurse/tree/master/examples

 

責(zé)任編輯:武曉燕 來(lái)源: 運(yùn)維開(kāi)發(fā)故事
相關(guān)推薦

2011-04-02 08:59:35

MRTG監(jiān)控

2017-02-05 16:48:38

LinuxGanglia

2023-10-09 07:31:25

2011-04-02 12:52:37

MRTG監(jiān)控

2011-03-22 14:29:19

Nagios監(jiān)控

2021-07-01 11:29:45

KubernetesGrafana監(jiān)控

2020-03-09 09:15:56

集群Prometheus開(kāi)源

2010-10-12 16:26:44

2011-03-22 13:43:08

2009-05-13 09:39:00

數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)備管理

2011-04-01 09:18:03

2018-02-24 14:27:09

Linux命令網(wǎng)絡(luò)帶寬

2011-08-16 10:27:15

紅帽圖形工具

2014-05-21 14:03:55

日志監(jiān)控VDI

2021-12-06 11:38:17

命令Glances工具

2014-05-21 09:14:00

VDI審計(jì)日志監(jiān)控監(jiān)控

2011-12-08 10:24:53

JavaNIO

2018-09-13 08:00:00

LinuxNetplan網(wǎng)絡(luò)配置

2011-03-24 15:35:22

Cacti監(jiān)控

2011-03-02 14:25:46

網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)數(shù)據(jù)流量
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 午夜一级做a爰片久久毛片 精品综合 | 华丽的挑战在线观看 | 亚洲精品国产第一综合99久久 | 久久久免费观看视频 | 日日操夜夜操天天操 | 国产日韩av一区二区 | 81精品国产乱码久久久久久 | 亚洲视频一区在线 | 国产成人综合av | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 亚洲中字在线 | 天堂一区二区三区 | 黄色一级大片在线免费看产 | 成人精品鲁一区一区二区 | 精品久久国产 | 成人av看片| 精品视频网| 日韩三级一区 | 精品欧美一区二区三区久久久 | 日韩成人| 亚洲精品电影网在线观看 | 久久69精品久久久久久久电影好 | 中文字幕在线免费视频 | 久久久一区二区三区 | 亚洲免费婷婷 | 国产精品欧美一区二区三区 | 91在线精品一区二区 | 国产91丝袜在线18 | 草久久 | 天天干狠狠干 | 亚洲三级av| 亚洲精品久久久蜜桃网站 | 日韩中文字幕 | www.狠狠干 | 国产一区 在线视频 | 成人伊人网 | 精品欧美激情在线观看 | 成人在线观看中文字幕 | 欧美一区二区在线观看 | 日韩成人在线电影 | 久久国际精品 |