javascript面試題做優(yōu)化關(guān)鍵詞
回到目錄?
親和力 Affinity
對(duì)部署調(diào)度時(shí)的優(yōu)先選擇
分為
-
節(jié)點(diǎn)親和力
-
pod親和力
-
pod反親和力
節(jié)點(diǎn)親和力 NodeAffinity?
進(jìn)行 pod 調(diào)度時(shí),優(yōu)先調(diào)度到符合條件的親和力節(jié)點(diǎn)上
可配置 硬親和力和軟親和力
-
RequiredDuringSchedulingIgnoredDuringExecution
硬親和力:即支持必須部署在指定的節(jié)點(diǎn)上,也支持必須不部署在指定的節(jié)點(diǎn)上
-
PreferredDuringSchedulingIgnoredDuringExecution
盡量部署在滿足條件的節(jié)點(diǎn)上,或盡量不要部署在被匹配的節(jié)點(diǎn)上
apiVersion: v1
kind: Pod
metadata:name: with-node-affinity
spec:affinity: # 親和力配置nodeAffinity: # 節(jié)點(diǎn)親和力requiredDuringSchedulingIgnoredDuringExecution: # 節(jié)點(diǎn)必須匹配下方配置nodeSelectorTerms: # 選擇器- matchExpressions: # 匹配表達(dá)式- key: topology.kubernetes.io/zone # 匹配 label 的 keyoperator: In # 匹配方式,只要匹配成功下方的一個(gè) value 即可values:- antarctica-east1 # 匹配的 value- antarctica-west1 # 匹配的 valuepreferredDuringSchedulingIgnoredDuringExecution: # 節(jié)點(diǎn)盡量匹配下方配置- weight: 1 # 權(quán)重[1,100],按照匹配規(guī)則對(duì)所有節(jié)點(diǎn)累加權(quán)重,最終之和會(huì)加入優(yōu)先級(jí)評(píng)分,優(yōu)先級(jí)越高被調(diào)度的可能性越高preference:matchExpressions: # 匹配表達(dá)式- key: another-node-label-key # label 的 keyoperator: In # 匹配方式,滿足一個(gè)即可values:- another-node-label-value # 匹配的 value
# - weight: 20......containers:- name: with-node-affinityimage: pause:2.0
operator類型
-
In
部署在滿足條件的節(jié)點(diǎn)上
-
NotIn
匹配不在條件中的節(jié)點(diǎn),實(shí)現(xiàn)節(jié)點(diǎn)反親和性
-
Exists
只要存在 key 名字就可以,不關(guān)心值是什么
-
DoesNotExists
匹配指定 key 名不存在的節(jié)點(diǎn),實(shí)現(xiàn)節(jié)點(diǎn)反親和性
-
Gt
value 為數(shù)值,且節(jié)點(diǎn)上的值小于指定的條件
-
Lt
value 為數(shù)值,且節(jié)點(diǎn)上的值大于指定條件
pod親和力?PodAffinity 和 pod反親和力PodAnitAffinity
將與指定 pod 親和力相匹配的 pod 部署在同一節(jié)點(diǎn)
即與pod比較進(jìn)行親和
可配置 硬親和力和軟親和力
-
硬親和力
RequiredDuringSchedulingIgnoredDuringExecution
必須將應(yīng)用部署在一塊
-
軟親和力
PreferredDuringSchedulingIgnoredDuringExecution
盡量將應(yīng)用部署在一塊
pod反親和力? 盡量將與指定 pod 反親和力相匹配的 pod 部署在不同節(jié)點(diǎn)
apiVersion: v1
kind: Pod
metadata:name: with-pod-affinity
spec:affinity: # 親和力配置podAffinity: # pod 親和力配置requiredDuringSchedulingIgnoredDuringExecution: # 當(dāng)前 pod 必須匹配到對(duì)應(yīng)條件 pod 所在的 node 上- labelSelector: # 標(biāo)簽選擇器matchExpressions: # 匹配表達(dá)式- key: security # 匹配的 keyoperator: In # 匹配方式values: # 匹配其中的一個(gè) value- S1topologyKey: topology.kubernetes.io/zonepodAntiAffinity: # pod 反親和力配置preferredDuringSchedulingIgnoredDuringExecution: # 盡量不要將當(dāng)前節(jié)點(diǎn)部署到匹配下列參數(shù)的 pod 所在的 node 上- weight: 100 # 權(quán)重podAffinityTerm: # pod 親和力配置條件labelSelector: # 標(biāo)簽選擇器matchExpressions: # 匹配表達(dá)式- key: security # 匹配的 keyoperator: In # 匹配的方式values:- S2 # 匹配的 valuetopologyKey: topology.kubernetes.io/zonecontainers:- name: with-pod-affinityimage: pause:2.0
?