最近在測試親和和反親和,發現很多知識都遺忘了,準備重新撿起來看看。
從pod出發,可以分成親和性和反親和性,分別對應podaffinity
和podantiaffinity
。
從node出發,也可以分成親和性和反親和性,分別對應nodeaffinity
和nodeantiaffinity
。
從操作指令來講,可以有in
、notin
、exists
、doesnotexist
等等。
結論:反親和和親和的in和notin操作是完全相反的,注意一下就行了。
preferredduringschedulingignoredduringexecution
軟親和
requiredduringschedulingignoredduringexecution
硬親和
不必過多講解,反正就是必須和盡量的關係。
下面代表我的pod不排程到pod擁有release=opsnatmonitor-v1
標籤的node上.
spec:
affinity:
podantiaffinity:
requiredduringschedulingignoredduringexecution:
-weight:
100podaffinityterm:
labelselector:
matchexpressions:
-key:
release
operator:
invalues:
-opsnatmonitor-v1
topologykey:
kubernetes.io/hostname
下面代表我的pod要排程到pod擁有release=opsnatmonitor-v1
標籤的node上.
spec:
affinity:
podaffinity:
requiredduringschedulingignoredduringexecution:
-weight:
100podaffinityterm:
labelselector:
matchexpressions:
-key:
release
operator:
invalues:
-opsnatmonitor-v1
topologykey:
kubernetes.io/hostname
場景: pod有3個,node有2個,分別測試硬親和和軟親和結果。
結果:硬親和會分別排程到兩個node上,並有乙個pod是pending的。
軟親和會按照pod個數為1:2分配到兩個node上。
k8s 節點親和性和汙點容忍
1 檢視標籤 kubectl get nodes show labels 2 打標籤 kubectl label nodes node1.com kong true kubectl label nodes node2.com kong true kubectl label nodes node3.c...
筆記 k8s通訊相關
高效檢測變化,resourceversion機制 get list的resourceversion語義 watch的resourceversion語義 從文件推測,list和watch的resourceversion語義的暗示都是一樣的 如果不指定,則從etcd quorum read 的獲取最新版...
K8s部署prometheus監控K8s細節
prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...