聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

kubernetes-Affinity示例

來源:騰訊云 時間:2023-05-05 12:58:51


【資料圖】

以下是一個實際的示例,它演示了如何使用Node Affinity規則將Pod調度到指定的Node上。假設我們有三個Node,分別具有以下標簽:

Node1:zone=us-east-1aNode2:zone=us-east-1bNode3:zone=us-west-1a

我們希望將一個Pod調度到具有zone=us-east-1a標簽的Node上,因此可以使用以下Pod定義文件:

apiVersion: v1kind: Podmetadata:  name: nginxspec:  containers:  - name: nginx    image: nginx  nodeSelector:    zone: us-east-1a

這個Pod定義文件中,nodeSelector部分指定了Pod只能被調度到具有zone=us-east-1a標簽的Node上。

另一個示例,演示了如何使用Pod Affinity規則將具有相同標簽的Pod調度到同一個Node上。假設我們有兩個Pod,分別具有以下標簽:

Pod1:app=nginxPod2:app=nginx

我們希望這兩個Pod調度到同一個Node上,因此可以使用以下Pod定義文件:

apiVersion: v1kind: Podmetadata:  name: pod1  labels:    app: nginxspec:  containers:  - name: nginx    image: nginx  affinity:    podAffinity:      requiredDuringSchedulingIgnoredDuringExecution:      - labelSelector:          matchExpressions:          - key: app            operator: In            values:            - nginx        topologyKey: kubernetes.io/hostname
apiVersion: v1kind: Podmetadata:  name: pod2  labels:    app: nginxspec:  containers:  - name: nginx    image: nginx  affinity:    podAffinity:      requiredDuringSchedulingIgnoredDuringExecution:      - labelSelector:          matchExpressions:          - key: app            operator: In            values:            - nginx        topologyKey: kubernetes.io/hostname

這兩個Pod定義文件中,都使用了相同的affinity規則,即要求具有相同標簽的Pod必須調度到同一個Node上。規則中使用了requiredDuringSchedulingIgnoredDuringExecution部分,它要求Pod必須調度到與它具有相同標簽的Pod所在的Node上,否則調度失敗。topologyKey指定了用來匹配Node的標識符,這里使用的是kubernetes.io/hostname,表示匹配Node的主機名。這個規則要求Pod必須調度到與它具有相同標簽的Pod所在的Node上,因此Pod1和Pod2將會被調度到同一個Node上。

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线