摘要:但是可惜的是,當中的塊存儲并不支持這樣的方式。都是監聽指定資源,然后分別對和和三種事件,做出處理。部署具體部署的如下注意,加入集群中不存在角色,可以自行進行授權。例如創建成果以后,去的查看如下
前言
在使用aws的托管k8s--eks過程中,避免不了使用aws的LB和塊存儲。AWS公有云所有的資源都可以自定義tags,這樣的好處就是可以根據tag具體含義來對資源進行不同維度的審計和統計。比如按照部門,按照項目,環境(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來實現的。因而add-ebs-tags-controller監聽所有新建的pvc,然后獲取到新建pvc的annotations(volume.beta.kubernetes.io/aws-block-storage-additional-resource-tags),最后調用aws的接口sdk,完成打tag的工作。
代碼實現具體代碼參見 github。
代碼相對比較簡單,大家可以自行研究。總體實現思路和其他的controller類似。都是監聽指定資源,然后分別對Update和add和delete三種事件,做出處理。
當然這里不得不提一下,k8s controller設計的核心理念,controller通過監聽實際的狀態(status) ,不斷做出具體調整,向期望的狀態(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
創建成果以后,去aws的ui查看如下:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/33166.html
摘要:自定義鏡像部分自定義鏡像部分安裝工具安裝工具工具官方下載工具解壓工具到查看版本初始化目錄結構初始化目錄結構筆者是在目錄下開始操作的,提前說下免得讀者操作有誤。修改修改腳本只作啟動功能,為了方便傳調優參數,定制了環境變量供使用。 本文目標 由于 OpenShift 官方提供的鏡像與模板(OpenJDK8)不完全滿足業務需要: 不包含飛行記錄功能。只有 OpenJD...
摘要:環境部署第一步,我會按默認的向導創建一個新的虛擬私有云,這個虛擬私有云是為準備的。的應用程序將自己在內運行。所有的主機都可以使用公有的,可如果你是在虛擬私有云上有主機的話,這就有點麻煩了,所以你可以選擇使用私有而非公有。 眾所周知,亞馬遜有EC2容器服務,它是亞馬遜用于運行Docker容器的解決方案。不過我覺得EC2容器服務不怎么好用,所以現在我要在AWS上測試Rancher和Kube...
摘要:環境部署第一步,我會按默認的向導創建一個新的虛擬私有云,這個虛擬私有云是為準備的。的應用程序將自己在內運行。所有的主機都可以使用公有的,可如果你是在虛擬私有云上有主機的話,這就有點麻煩了,所以你可以選擇使用私有而非公有。 眾所周知,亞馬遜有EC2容器服務,它是亞馬遜用于運行Docker容器的解決方案。不過我覺得EC2容器服務不怎么好用,所以現在我要在AWS上測試Rancher和Kube...
摘要:前言在資源審計和計費這塊,容器和虛機有很大區別。支持諸多輸出,稱為。所以本文主要講如何為增加。實際上,基于增加并且更改,也可以做到,只不過需要裝一些包指令,結果就是鏡像變大。實際運行日志截圖由于的出色的寫入性能,運行非常穩定。 前言 在k8s資源審計和計費這塊,容器和虛機有很大區別。相對虛機來講,容器不容易實現。資源指標收集可以采用heapster,也可以用prometheus。之前文...
閱讀 1753·2021-09-22 15:25
閱讀 1313·2019-08-29 12:34
閱讀 1920·2019-08-26 13:57
閱讀 3197·2019-08-26 10:48
閱讀 1453·2019-08-26 10:45
閱讀 800·2019-08-23 18:23
閱讀 742·2019-08-23 18:01
閱讀 1953·2019-08-23 16:07
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要