如何从 kubernetes 的节点组选择器中排除备份 pod?
How to exclude HA backup pod from node group selector in kubernates?
我想在 kubernates 中创建仅包含主 pod 并排除备份 pod 的节点组选择器。如何使用 helm chart 实现?
appVersion: version1
kind: StatefulSet
metadata:
name: statefulname
label:
....
....
....
spec:
replica: 2
.....
container:
.....
....
nodeselecor:
{{$nodegroup}}
这里的结果是
NAME READY STATUS STARTS AGE
pod/zookeeper-np-0 1/1 Running 0 203s
pod/zookeeper-np-1 1/1 Running 0 137s
此处副本创建 2 个后缀为 -0 和 -1 的 pod 实例,两者都有相同的节点选择器,但我想这样做
pod/zookeeper-np-0
对于这个节点选择器是节点组 ng1
pod/zookeeper-np-1
对于这个节点选择器是节点组 ng2
我试过迭代也没有出错
Caused By: java.lang.IllegalStateException: Identified another participant with the same name for Space: newspace_container_newspace
您尚未共享 K8s 版本详细信息,但是您可以使用 Node affinity 和 statefulset 或 [=26] =]拓扑传播约束
topologySpreadConstraints:
- maxSkew: <integer>
topologyKey: <string>
whenUnsatisfiable: <string>
labelSelector: <object>
阅读更多信息:https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
使用 topologySpreadConstraints 您可以将 PODs 分布在节点上。
节点亲和力
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
阅读更多:https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
您还可以使用节点亲和力在不同节点上执行相同的调度 PODs。
i want to that for pod/zookeeper-np-0 for this node selector is node
group ng1 pod/zookeeper-np-1 for this node selector is node group ng2
每个 StatefulSet 只能有一个 nodeSelector
应用于此 StatefulSet 控件下的所有 pods。如果你需要将 pod 放在特定的节点组中,你需要 运行 它们在不同的 StatefulSet 中有自己的 nodeSelector
.
我想在 kubernates 中创建仅包含主 pod 并排除备份 pod 的节点组选择器。如何使用 helm chart 实现?
appVersion: version1
kind: StatefulSet
metadata:
name: statefulname
label:
....
....
....
spec:
replica: 2
.....
container:
.....
....
nodeselecor:
{{$nodegroup}}
这里的结果是
NAME READY STATUS STARTS AGE
pod/zookeeper-np-0 1/1 Running 0 203s
pod/zookeeper-np-1 1/1 Running 0 137s
此处副本创建 2 个后缀为 -0 和 -1 的 pod 实例,两者都有相同的节点选择器,但我想这样做
pod/zookeeper-np-0
对于这个节点选择器是节点组 ng1
pod/zookeeper-np-1
对于这个节点选择器是节点组 ng2
我试过迭代也没有出错
Caused By: java.lang.IllegalStateException: Identified another participant with the same name for Space: newspace_container_newspace
您尚未共享 K8s 版本详细信息,但是您可以使用 Node affinity 和 statefulset 或 [=26] =]拓扑传播约束
topologySpreadConstraints:
- maxSkew: <integer>
topologyKey: <string>
whenUnsatisfiable: <string>
labelSelector: <object>
阅读更多信息:https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
使用 topologySpreadConstraints 您可以将 PODs 分布在节点上。
节点亲和力
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
阅读更多:https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
您还可以使用节点亲和力在不同节点上执行相同的调度 PODs。
i want to that for pod/zookeeper-np-0 for this node selector is node group ng1 pod/zookeeper-np-1 for this node selector is node group ng2
每个 StatefulSet 只能有一个 nodeSelector
应用于此 StatefulSet 控件下的所有 pods。如果你需要将 pod 放在特定的节点组中,你需要 运行 它们在不同的 StatefulSet 中有自己的 nodeSelector
.