如何将 Deployment 分配到特定节点池

Jam*_*mes 6 deployment kubernetes azure-aks

我对 Kubernetes 相当陌生,能够设置包括入口在内的工作流程。

如何指定哪些部署(不是 Pod)进入特定节点池?

另外,命名空间对节点也有影响吗?

4c7*_*b41 8

请参阅此链接:https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    disktype: ssd
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用亲和力:

apiVersion: v1
kind: Pod
metadata:
  name: with-node-affinity
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/e2e-az-name
            operator: In
            values:
            - e2e-az1
            - e2e-az2
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: another-node-label-key
            operator: In
            values:
            - another-node-label-value
  containers:
  - name: with-node-affinity
    image: k8s.gcr.io/pause:2.0
Run Code Online (Sandbox Code Playgroud)

  • 好吧,我明白了,您可以使用部署规范中的模板作为 Pod 模板,然后使用它来设置节点。这对于弄清楚如何设置节点关联性也很有用 (3认同)

sla*_*pai 7

节点独立于命名空间。您可以在部署规范部分指定的 Pod 模板中指定节点关联性规则。您只能将 Pod 分配给特定节点,事实上,这就是部署创建 Pod 的过程,因此仅将 Pod 分配给节点是有意义的。