摘要:但是可惜的是,當中的塊存儲并不支持這樣的方式。都是監(jiān)聽指定資源,然后分別對和和三種事件,做出處理。部署具體部署的如下注意,加入集群中不存在角色,可以自行進行授權。例如創(chuàng)建成果以后,去的查看如下
前言
在使用aws的托管k8s--eks過程中,避免不了使用aws的LB和塊存儲。AWS公有云所有的資源都可以自定義tags,這樣的好處就是可以根據(jù)tag具體含義來對資源進行不同維度的審計和統(tǒng)計。比如按照部門,按照項目,環(huán)境(test,prod,uat)等維度。在設置service的類型為Loadbanlance的時候,可以通過以下annotations來自定義tag。
apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/aws-load-balancer-type: nlb # service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0 service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: "sgt:env=prod,sgt:group=SGT,sgt:project=hawkeye" labels: app: prometheus-server name: prometheus-server namespace: kube-system spec: ports: - name: http port: 9090 protocol: TCP targetPort: 9090 selector: app: prometheus-server type: LoadBalancer
但是可惜的是,k8s當中的塊存儲(ebs
)并不支持這樣的方式。可能aws覺得存儲比較便宜,不值得進行審計吧。但是本身ebs是支持打tag的。
所以為了滿足我們司在k8s落地過程中對存儲的審計,設計了add-ebs-tags-controller這個組件。
add-ebs-tags-controller 詳解 設計思路大家都知道k8s中對于存儲是通過pv和pvc來實現(xiàn)的。因而add-ebs-tags-controller監(jiān)聽所有新建的pvc,然后獲取到新建pvc的annotations(volume.beta.kubernetes.io/aws-block-storage-additional-resource-tags),最后調用aws的接口sdk,完成打tag的工作。
代碼實現(xiàn)具體代碼參見 github。
代碼相對比較簡單,大家可以自行研究??傮w實現(xiàn)思路和其他的controller類似。都是監(jiān)聽指定資源,然后分別對Update和add和delete三種事件,做出處理。
當然這里不得不提一下,k8s controller設計的核心理念,controller通過監(jiān)聽實際的狀態(tài)(status) ,不斷做出具體調整,向期望的狀態(tài)(spec) 靠輪。
部署具體部署的yaml如下:
apiVersion: apps/v1 kind: Deployment metadata: name: add-ebs-tags-controller namespace: kube-system spec: replicas: 1 selector: matchLabels: k8s-app: add-ebs-tags-controller task: tool template: metadata: labels: task: tool k8s-app: add-ebs-tags-controller annotations: scheduler.alpha.kubernetes.io/critical-pod: "" spec: serviceAccount: cluster-admin containers: - name: add-ebs-tags-controller image: iyacontrol/add-ebs-tags-controller:0.0.1 imagePullPolicy: IfNotPresent
注意serviceAccount: cluster-admin,加入集群中不存在admin角色,可以自行進行rbac授權。
demo例如:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: prometheus-claim namespace: kube-system annotations: volume.beta.kubernetes.io/aws-block-storage-additional-resource-tags: "sgt:env=prod,sgt:group=SGT,sgt:project=hawkeye" spec: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi
創(chuàng)建成果以后,去aws的ui查看如下:
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/33166.html
摘要:自定義鏡像部分自定義鏡像部分安裝工具安裝工具工具官方下載工具解壓工具到查看版本初始化目錄結構初始化目錄結構筆者是在目錄下開始操作的,提前說下免得讀者操作有誤。修改修改腳本只作啟動功能,為了方便傳調優(yōu)參數(shù),定制了環(huán)境變量供使用。 本文目標 由于 OpenShift 官方提供的鏡像與模板(OpenJDK8)不完全滿足業(yè)務需要: 不包含飛行記錄功能。只有 OpenJD...
摘要:環(huán)境部署第一步,我會按默認的向導創(chuàng)建一個新的虛擬私有云,這個虛擬私有云是為準備的。的應用程序將自己在內運行。所有的主機都可以使用公有的,可如果你是在虛擬私有云上有主機的話,這就有點麻煩了,所以你可以選擇使用私有而非公有。 眾所周知,亞馬遜有EC2容器服務,它是亞馬遜用于運行Docker容器的解決方案。不過我覺得EC2容器服務不怎么好用,所以現(xiàn)在我要在AWS上測試Rancher和Kube...
摘要:環(huán)境部署第一步,我會按默認的向導創(chuàng)建一個新的虛擬私有云,這個虛擬私有云是為準備的。的應用程序將自己在內運行。所有的主機都可以使用公有的,可如果你是在虛擬私有云上有主機的話,這就有點麻煩了,所以你可以選擇使用私有而非公有。 眾所周知,亞馬遜有EC2容器服務,它是亞馬遜用于運行Docker容器的解決方案。不過我覺得EC2容器服務不怎么好用,所以現(xiàn)在我要在AWS上測試Rancher和Kube...
摘要:前言在資源審計和計費這塊,容器和虛機有很大區(qū)別。支持諸多輸出,稱為。所以本文主要講如何為增加。實際上,基于增加并且更改,也可以做到,只不過需要裝一些包指令,結果就是鏡像變大。實際運行日志截圖由于的出色的寫入性能,運行非常穩(wěn)定。 前言 在k8s資源審計和計費這塊,容器和虛機有很大區(qū)別。相對虛機來講,容器不容易實現(xiàn)。資源指標收集可以采用heapster,也可以用prometheus。之前文...
閱讀 1843·2021-09-22 15:25
閱讀 1357·2019-08-29 12:34
閱讀 1988·2019-08-26 13:57
閱讀 3262·2019-08-26 10:48
閱讀 1495·2019-08-26 10:45
閱讀 858·2019-08-23 18:23
閱讀 790·2019-08-23 18:01
閱讀 2005·2019-08-23 16:07