OpenShift 集羣爲項目提供專屬節點

背景介紹

在生產實踐中,某些系統因一些特殊的要求,需要獨佔節點,即專屬節點:具有特殊要求的應用POD必須運行在這些專屬節點上;同時這些節點不爲其它應用服務。本文將提供一種具體的配置策略,以滿足這種特殊的調度需求。
該策略主要使用到兩種工具:

  1. 節點標籤實現應用與節點的綁定
  2. 污點配置實現其它應用不會被調度到該節點。

設置步驟

  1. 爲專屬節點設置特定標籤LABEL:dedicated=sys0,及設置污點
$ oc label node node-10 dedicated=sys0
$ oc adm taint nodes node-10 dedicated=sys0:NoSchedule
  1. 在使用專屬節點的應用編排中綁定的Node
spec:
  replicas: 1
  template:
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      nodeSelector:
        dedicated: "sys0"
      containers:
...

spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: dedicated
                operator: In
                values:
                  - sys0
  containers:
...
  1. 使用專屬節點的應用編排中指定的標籤及容忍污點
spec:
  tolerations:
  - key: "dedicated"
    operator: "Equal"
    value: "sys0"
    effect: "NoExecute"

注意,本例中使用的operator是"Equal",會比較污點的鍵與值。如果operator使用"Exists",則應用可以容忍所有帶有dedicated污點。

去除專屬節點操作

要是需要去除專屬節點的限制,讓它恢復成一個正常應用的節點。只需要將它的污點移除即可。

$ oc adm taint nodes dedicated-
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章