Centos7中kubernetes-1.11.2基於配置親和與反親和

一、題目

經過命令行,建立兩個個deployment。node

– 須要集羣中有2個節點nginx

– 第1個deployment名稱爲<hwcka-002-app1>,使用nginx鏡像,用有2個pod,並配置該deployment自身的pod之間在節點級別反親和算法

二、結構圖解

2.一、親和&節點相同label

topologyKey配置相同kubernetes.io/zone=bar,podAffinityvim

那麼:node01和node02爲同一總體,因此沒有其餘規則的話,根據平均負載算法會將其分配至兩個節點上,若是目前其中一個節點空閒,那麼pod可能會被分配到空閒節點上去。app

2.二、親和&節點不一樣label

topologyKey配置相同kubernetes.io/hostname,podAffinityspa

那麼:node01和node02爲不一樣總體,因爲親和性規則,因此pod會根據空閒或其餘算法被調度到同一節點上去。命令行

 

2.三、反親和&節點相同label

topologyKey配置相同kubernetes.io/zone=bar,podAntiAffinity3d

那麼:nodw01和node02爲同一總體,那麼一個pod被調度其中一個節點後,因爲存在反親和,那麼另外一個pod是不會被調度到另外一個節點上去到。code

 

2.四、反親和&節點不一樣label

topologyKey配置相同kubernetes.io/hostname,podAntiAffinityblog

那麼:node01和node02爲不一樣總體,因爲反親和性規則,pod會被分配到不一樣節點並運行。

 

三、相關操做

相關操做:

# 打標籤
kubectl label nodes node01 kubernetes.io/zone=bar kubectl label nodes node02 kubernetes.io/zone=bar
# 刪除標籤
kubectl label nodes node01 kubernetes.io/zone-
kubectl label nodes node02 kubernetes.io/zone- vim hwcka
-002-app1.yaml topologyKey: kubernetes.io/zone 或者 topologyKey: kubernetes.io/hostname
相關文章
相關標籤/搜索