Kubernetes 如何为命名空间保留某些工作节点
我想为命名空间保留一些工作节点。我看到了stackflow和medium的注释 我知道我们可以使用污染和节点选择器来实现这一点。 我的问题是,如果人们知道nodeselector或taint的详细信息,我们如何防止他们将pod部署到这些专用工作节点中Kubernetes 如何为命名空间保留某些工作节点,kubernetes,taint,Kubernetes,Taint,我想为命名空间保留一些工作节点。我看到了stackflow和medium的注释 我知道我们可以使用污染和节点选择器来实现这一点。 我的问题是,如果人们知道nodeselector或taint的详细信息,我们如何防止他们将pod部署到这些专用工作节点中 谢谢你要完成你所需要的,基本上你必须使用。 假设您有一个Kubernetes群集,其中有一个主节点和两个工作节点: $ kubectl get nodes NAME STATUS ROLES AGE VERSION
谢谢你要完成你所需要的,基本上你必须使用。 假设您有一个Kubernetes群集,其中有一个主节点和两个工作节点:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
knode01 Ready <none> 8d v1.16.2
knode02 Ready <none> 8d v1.16.2
kubemaster Ready master 8d v1.16.2
要在这些节点中运行pod,我们必须在yaml文件的spec会话中指定容差:
apiVersion: v1
kind: Pod
metadata:
name: pod1
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
tolerations:
- key: "key"
operator: "Equal"
value: "dev"
effect: "NoSchedule"
这个pod(pod1)将始终在knode02中运行,因为它的设置为dev。如果我们想在prod上运行它,我们的容差应该如下所示:
tolerations:
- key: "key"
operator: "Equal"
value: "prod"
effect: "NoSchedule"
由于我们只有2个节点,并且这两个节点都被指定为仅运行prod或dev,因此如果我们尝试在不指定容差的情况下运行pod,pod将进入挂起状态:
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod0 1/1 Running 0 21m 192.168.25.156 knode01 <none> <none>
pod1 1/1 Running 0 20m 192.168.32.83 knode02 <none> <none>
pod2 1/1 Running 0 18m 192.168.25.157 knode01 <none> <none>
pod3 1/1 Running 0 17m 192.168.32.84 knode02 <none> <none>
shell-demo 0/1 Pending 0 16m <none> <none> <none> <none>
这就是可以做到的
你不会对你的同事隐瞒这些事情。。。这是生产,你应该学会合作;0@Honord,此答案帮助您找到所需的解决方案?
tolerations:
- key: "key"
operator: "Equal"
value: "prod"
effect: "NoSchedule"
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod0 1/1 Running 0 21m 192.168.25.156 knode01 <none> <none>
pod1 1/1 Running 0 20m 192.168.32.83 knode02 <none> <none>
pod2 1/1 Running 0 18m 192.168.25.157 knode01 <none> <none>
pod3 1/1 Running 0 17m 192.168.32.84 knode02 <none> <none>
shell-demo 0/1 Pending 0 16m <none> <none> <none> <none>