国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

更優(yōu)雅的 Kubernetes 集群事件度量方案

開發(fā) 前端
如何度量滾動升級這個過程的時間。這個問題可以抽象為一種通用需求,適用于多種場景。

 [[407389]]

大家好,我是張晉濤。

 

 

 

 

群里有個小伙伴問了我上圖中這個問題,如何度量滾動升級這個過程的時間。

這個問題可以抽象為一種通用需求,適用于多種場景。

  • 比如你是 Kubernetes 集群的管理員,你想度量這個過程中的耗時,以便發(fā)現(xiàn)優(yōu)化點;
  • 比如你是在做 CI/CD ,你想通過度量這個過程的耗時,來給出 CI/CD 過程的耗時;

現(xiàn)有方案

Kubernetes 已經(jīng)提供了很方便的辦法來解決此問題,也就是我回復(fù)中談到的,通過 event 來度量即可。

比如,我們在 K8S 中,創(chuàng)建一個 deployment,看看這個過程中的 event 信息:

  1. ➜  ~ kubectl create ns moelove 
  2. namespace/moelove created 
  3. ➜  ~ kubectl -n moelove create deployment redis --image=ghcr.io/moelove/redis:alpine 
  4. deployment.apps/redis created 
  5. ➜  ~ kubectl -n moelove get deploy 
  6. NAME    READY   UP-TO-DATE   AVAILABLE   AGE 
  7. redis   1/1     1            1           16s 
  8. ➜  ~ kubectl -n moelove get events 
  9. LAST SEEN   TYPE     REASON              OBJECT                        MESSAGE 
  10. 27s         Normal   Scheduled           pod/redis-687967dbc5-gsz5n    Successfully assigned moelove/redis-687967dbc5-gsz5n to kind-control-plane 
  11. 27s         Normal   Pulled              pod/redis-687967dbc5-gsz5n    Container image "ghcr.io/moelove/redis:alpine" already present on machine 
  12. 27s         Normal   Created             pod/redis-687967dbc5-gsz5n    Created container redis 
  13. 27s         Normal   Started             pod/redis-687967dbc5-gsz5n    Started container redis 
  14. 27s         Normal   SuccessfulCreate    replicaset/redis-687967dbc5   Created pod: redis-687967dbc5-gsz5n 
  15. 27s         Normal   ScalingReplicaSet   deployment/redis              Scaled up replica set redis-687967dbc5 to 1 

可以看到我們主要關(guān)注的一些事件均已經(jīng)有記錄了。但是總不能每次都通過 kubectl 這么來看吧,有點浪費時間。

我之前的一種做法是在 K8S 中寫了一個程序,持續(xù)的監(jiān)聽&收集 K8S 集群中的 event ,并將它寫入到我另外開發(fā)的一套系統(tǒng)中進行存儲和可視化。但這種方法需要做額外的開發(fā)也并不普適。這里我來介紹另一個更優(yōu)的解決方案。

更優(yōu)雅的方案

K8S 中的這些事件,都對應(yīng)著我們的一個操作,比如上文中是創(chuàng)建了一個 deployment ,它產(chǎn)生了幾個 event , 包括 Scheduled , Pulled , Created 等。我們將其進行抽象,是不是和我們做的鏈路追蹤(tracing)很像呢?

這里我們會用到一個 CNCF 的畢業(yè)項目 Jaeger[1] ,在之前的K8S生態(tài)周報 中我有多次介紹它,Jaeger 是一款開源的,端對端的分布式 tracing 系統(tǒng)。不過本文重點不是介紹它,所以我們查看其文檔,快速的部署一個 Jaeger 即可。另一個 CNCF 的 sandbox 級別的項目是 OpenTelemetry[2] 是一個云原生軟件的可觀測框架,我們可以把它跟 Jaeger 結(jié)合起來使用。不過本文的重點不是介紹這倆項目,這里暫且略過。

接下來介紹我們這篇文章的用到的主要項目,是來自 Weaveworks 開源的一個項目,名叫 kspan ,它的主要做法就是將 K8S 中的 event 作為 trace 系統(tǒng)中的 span 進行組織。

部署 kspan

  1. --- 
  2. apiVersion: v1 
  3. kind: ServiceAccount 
  4. metadata: 
  5.   name: kspan 
  6. --- 
  7. apiVersion: rbac.authorization.k8s.io/v1 
  8. kind: ClusterRoleBinding 
  9. metadata: 
  10.   creationTimestamp: null 
  11.   name: kspan-admin 
  12. roleRef: 
  13.   apiGroup: rbac.authorization.k8s.io 
  14.   kind: ClusterRole 
  15.   name: cluster-admin 
  16. subjects: 
  17. - kind: ServiceAccount 
  18.   name: kspan 
  19.   namespace: default 
  20. --- 
  21. apiVersion: v1 
  22. kind: Pod 
  23. metadata: 
  24.   labels: 
  25.     run: kspan 
  26.   name: kspan 
  27. spec: 
  28.   containers: 
  29.   - image: docker.io/weaveworks/kspan:v0.0 
  30.     name: kspan 
  31.     resources: {} 
  32.   dnsPolicy: ClusterFirst 
  33.   restartPolicy: Always 
  34.   serviceAccountName: kspan 

可以直接使用我這里提供的 YAML 進行部署測試, 但注意上述配置文件別用在生產(chǎn)環(huán)境下, RBAC 權(quán)限需要修改 。

它默認(rèn)會使用 otlp-collector.default:55680 傳遞 span ,所有你需要確保有這個 svc 存在。以上所有內(nèi)容部署完成后你大概會是這樣:、

  1. ➜  ~ kubectl get all 
  2. NAME                                  READY   STATUS    RESTARTS   AGE 
  3. pod/jaeger-76c84457fb-89s5v           1/1     Running   0          64m 
  4. pod/kspan                             1/1     Running   0          35m 
  5. pod/otel-agent-sqlk6                  1/1     Running   0          59m 
  6. pod/otel-collector-69985cc444-bjb92   1/1     Running   0          56m 
  7.  
  8. NAME                       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                                          AGE 
  9. service/jaeger-collector   ClusterIP   10.96.47.12    <none>        14250/TCP                                        60m 
  10. service/kubernetes         ClusterIP   10.96.0.1      <none>        443/TCP                                          39h 
  11. service/otel-collector     ClusterIP   10.96.231.43   <none>        4317/TCP,14250/TCP,14268/TCP,9411/TCP,8888/TCP   59m 
  12. service/otlp-collector     ClusterIP   10.96.79.181   <none>        55680/TCP                                        52m 
  13.  
  14. NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE 
  15. daemonset.apps/otel-agent   1         1         1       1            1           <none>          59m 
  16.  
  17. NAME                             READY   UP-TO-DATE   AVAILABLE   AGE 
  18. deployment.apps/jaeger           1/1     1            1           73m 
  19. deployment.apps/otel-collector   1/1     1            1           59m 
  20.  
  21. NAME                                        DESIRED   CURRENT   READY   AGE 
  22. replicaset.apps/jaeger-6f77c67c44           0         0         0       73m 
  23. replicaset.apps/jaeger-76c84457fb           1         1         1       64m 
  24. replicaset.apps/otel-collector-69985cc444   1         1         1       59m 

上手實踐

這里我們先創(chuàng)建一個 namespace 用于測試:

  1. ➜  ~ kubectl create ns moelove 
  2. namespace/moelove created 

創(chuàng)建一個 Deployment

  1. ➜  ~ kubectl -n moelove create deployment redis --image=ghcr.io/moelove/redis:alpine 
  2. deployment.apps/redis created 
  3. ➜  ~ kubectl -n moelove get pods  
  4. NAME                     READY   STATUS    RESTARTS   AGE 
  5. redis-687967dbc5-xj2zs   1/1     Running   0          10s 

在 Jaeger 上進行查看:

 

 

 

 

點開看詳細(xì)內(nèi)容

 

 

 

 

可以看到,和此創(chuàng)建 deploy 有關(guān)的 event 均被歸到了一起,在時間線上可以看到其耗時等詳細(xì)信息。

總結(jié)

本文介紹了如何結(jié)合 Jaeger 利用 tracing 的方式來采集 K8S 中的 events ,以便更好的掌握 K8S 集群中所有事件的耗時點,更易于找到優(yōu)化的方向及度量結(jié)果。

 

責(zé)任編輯:張燕妮 來源: 知乎
相關(guān)推薦

2021-12-29 17:24:16

Kubernetes集群事件

2024-12-03 16:36:08

事件總線C#代碼

2023-12-21 10:26:30

??Prettier

2022-05-13 08:48:50

React組件TypeScrip

2025-04-03 09:27:35

JavaScript開發(fā)IIFE

2025-05-09 10:00:00

JavaScriptarguments代碼

2024-09-18 00:15:58

2022-01-12 11:55:43

Kubernetes多集群Linux

2021-12-21 15:17:53

Kubernetes緩存Linux

2022-03-11 12:14:43

CSS代碼前端

2018-07-12 14:20:33

SQLSQL查詢編寫

2024-02-23 08:57:42

Python設(shè)計模式編程語言

2022-07-24 21:11:19

KubernetesLinux

2021-12-03 11:06:01

VeleroKubernetesLinux

2022-06-27 19:16:12

KubernetesK8s 集群

2022-07-11 09:46:43

Kubernetes開源Linux

2022-06-28 08:01:26

hook狀態(tài)管理state

2024-05-24 10:51:51

框架Java

2022-03-08 06:41:35

css代碼

2020-04-03 14:55:39

Python 代碼編程
點贊
收藏

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

91精品欧美综合在线观看最新| 欧美性猛交xxxx黑人交| 亚洲欧美网站在线观看| 日韩欧美一中文字暮专区| 久久精品网站视频| 国产精欧美一区二区三区| 亚洲二区中文字幕| 一个色在线综合| 麻豆精品国产91久久久久久| 亚洲精品一二三**| 九七久久人人| 污网站免费在线| 亚洲高清在线观看一区| 国产va免费精品高清在线观看| 欧美成人在线直播| 91美女视频网站| 久久av一区| 欧美日韩一二三四| 日韩一区二区三区四区五区| 午夜在线免费观看视频| а√最新版在线天堂| 免费cad大片在线观看| 国产成人精品福利一区二区三区| 韩国v欧美v日本v亚洲| 国产午夜精品久久久| 欧美性一区二区| 亚洲老妇xxxxxx| 91麻豆视频网站| 麻豆久久久久久| 国产精品99一区二区| 加勒比色老久久爱综合网| 中文字幕在线看片| 网友自拍视频在线| 在线视频中文字幕| 久久婷五月综合| 国产二区视频在线| 亚洲v国产v| 成人免费在线一区二区三区| 琪琪亚洲精品午夜在线| 欧美成年人视频网站| 亚洲精品大尺度| 欧美日韩国产a| 天天综合日日夜夜精品| 国产精品福利电影一区二区三区四区| 国产suv精品一区二区883| 老牛国产精品一区的观看方式| 亚洲国产精品久久久天堂| 亚洲va久久| 亚洲伊人影院| 欧美v亚洲v综合v国产v仙踪林| 国产一线二线在线观看| av亚洲在线| 日本亚洲欧美| 中文字幕在线视频不卡| 日本免费高清视频| 国产对白在线| 亚洲一级免费观看| 欧美性大战久久久久xxx | 欧美成人h版| 国产网红在线观看| 五月天婷婷在线视频| 国模吧精品人体gogo| 在线视频三级| 宅男视频免费在线观看视频| 国产91福利| 成人羞羞视频免费看看| 五月天av在线播放| jizz18女人| 黄页在线播放| 另类图片亚洲色图| 91精选福利| 成人亚洲一区二区三区| 欧美r片在线| 黄色直播在线| 中文字幕在线永久在线视频 | 亚洲一区不卡在线| 性刺激综合网| 在线观看成人av| 亚洲 欧洲 日韩| 美女在线免费视频| 亚洲色婷婷久久精品av蜜桃| 91国在线高清视频| 精品久久久久久久久久中文字幕| 每日在线更新av| 日韩手机在线观看视频| 欧美成人在线影院| 97精品一区二区三区| 热99久久精品| 成人性生交xxxxx网站| 91免费精品视频| 国产精品视频免费观看| 日本精品视频一区| 欧美性受黑人性爽| 欧美牲交a欧美牲交aⅴ免费下载| 国产aaaaa毛片| 日本视频一二区| 狠狠狠综合7777久夜色撩人| 夜级特黄日本大片_在线| 五月婷婷视频在线观看| 韩国美女久久| 欧美日韩午夜电影网| 欧美自拍视频| 亚洲久久久久| 久久久蜜桃一区二区人| 国产成人亚洲综合a∨婷婷图片 | 国产精品乱码视频| 日韩在线电影一区| 欧美 日韩 国产精品| 免费高清在线观看免费| 电影天堂久久| 成人在线观看网站| 蜜桃av在线| 国产午夜久久av| 精品国产一区探花在线观看| 日韩午夜免费视频| 国产福利视频一区二区三区| 国产欧美精品日韩区二区麻豆天美| 亚洲中国最大av网站| 欧美日韩国产天堂| 中文字幕精品在线视频| 欧美夜福利tv在线| 国产专区一区二区| 女人被男人躁得好爽免费视频| 丰满少妇被猛烈进入高清播放| 久久国产情侣| 91精彩视频在线播放| 精品视频在线一区二区在线| 一道本一区二区三区| 中文久久精品| www.亚洲精品| 精品久久久久久久大神国产| 精品88久久久久88久久久| 久久av.com| 97人人模人人爽人人少妇| 影音先锋在线亚洲| 激情视频免费| 91精品久久久久久粉嫩| 精品国产伦一区二区三区观看说明| 国产精品videosex性欧美| 男男视频亚洲欧美| 中文字幕中文字幕一区| 欧美精品乱码久久久久久按摩 | 欧美性猛片xxxx免费看久爱| 亚洲久久久久久久久久| 欧美综合激情网| 欧洲精品亚洲精品| 五月婷婷之综合激情| 日本免费视频在线观看| 国产精品一区免费在线| 亚洲五月婷婷| 久久久亚洲精品石原莉奈| 在线观看亚洲一区| 日韩在线免费视频观看| 99热最新在线| 国产一级片黄色| 国产传媒在线播放| 国内精品国产成人国产三级粉色| 亚洲女同在线| 最新热久久免费视频| 精品欧美久久久| 国产成人免费91av在线| 国产精品12p| 亚洲女人天堂| 日本精品在线中文字幕| 欧美视频导航| 亚洲国产精品av| 日韩欧美一级二级| 欧洲美女7788成人免费视频| 伊人久久大香线蕉av一区| 情se视频网在线观看| av免费不卡国产观看| 国产精品视频一区二区三区四蜜臂| 久久超碰97中文字幕| 五月激情综合色| 大胆欧美人体视频| 日韩一本精品| 日本一本草久在线中文| av成人资源网| 国产一区二区在线视频| 色噜噜狠狠成人中文综合| 欧美激情一区二区三区久久久 | 成人福利网站在线观看| 人人妻人人添人人爽欧美一区| 最新97超碰在线| 老牛影视av一区二区在线观看| 久久精品99久久久| 在线免费观看视频一区| 久久久亚洲福利精品午夜| 在线播放豆国产99亚洲| jizz在线观看视频| 少妇精品久久久| 91香蕉视频mp4| 亚洲精品国精品久久99热一| 91视频99| 又黄又www的网站| av不卡一区二区| 成人18视频在线播放| 亚洲第一精品电影| 亚洲在线第一页| 一级毛片国产|