如何在Kubernetes中实现1个节点=1个吊舱

如何在Kubernetes中实现1个节点=1个吊舱,kubernetes,kubernetes-pod,horizontalpodautoscaler,Kubernetes,Kubernetes Pod,Horizontalpodautoscaler,我在集群中有5个节点(测试)。 我已将其标记为以下内容: 节点: 名称空间=A 名称空间=A 名称空间=B 名称空间=B 名称空间=C 我应用了污点和容忍,不信任和反亲和力。我们的节点支持自动缩放。然而,我们的节点没有扩展,所有的吊舱都在一个节点中运行。 我在这个链接中读到,使用podAntiAffinity、node Affinity、污点和容忍并不能保证这个要求。我们的要求是,1个pod应该均匀地部署在节点上,并相应地扩展 我错过了什么 apiVersion: apps/v1 kind:

我在集群中有5个节点(测试)。 我已将其标记为以下内容:

节点:

  • 名称空间=A
  • 名称空间=A
  • 名称空间=B
  • 名称空间=B
  • 名称空间=C
我应用了污点和容忍,不信任和反亲和力。我们的节点支持自动缩放。然而,我们的节点没有扩展,所有的吊舱都在一个节点中运行。 我在这个链接中读到,使用podAntiAffinity、node Affinity、污点和容忍并不能保证这个要求。我们的要求是,1个pod应该均匀地部署在节点上,并相应地扩展

我错过了什么

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: prometheus
  labels:
    app: prometheus
spec:
  serviceName: "prometheus"
  selector:
    matchLabels:
      name: prometheus
  template:
    metadata:
      labels:
        name: prometheus
        app: prometheus
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: namespace
                operator: In
                values:
                - A
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - prometheus
              topologyKey: kubernetes.io/hostname
            weight: 100
      containers:
      - name: prometheus
        image: quay.io/prometheus/prometheus:v2.6.0
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
      terminationGracePeriodSeconds: 30
      tolerations:
      - key: namespace
        operator: Equal
        value: A

您是否尝试了
节点选择器
,该选择器将在您将标签附加到的节点上安排pod

  nodeSelector:
    namespace: A

我不明白这里的最终目标是什么。请解释一下你现在看到了什么,你希望看到什么。