Pod 스케줄 링 의 PodAffinity: pod 친화 와 상호 배척 스케줄 링 전략
11030 단어 k8s
[root@bogon ~]# vim pod-flag.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-flag
labels:
security: "s1"
app: "nginx"
spec:
containers:
- name: nginx
image: nginx
[root@bogon ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod-flag 1/1 Running 0 24s 172.17.0.3 kafka03 <none> <none>
172.17.0.4 kafka03 <none> <none>
[root@bogon ~]# vim pod-affinity.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-affinity
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- s1
topologyKey: kubernetes.io/hostname
containers:
- name: with-pod-affinity
image: k8s.gcr.io/pause:3.1
[root@bogon ~]# kubectl create -f pod-affinity.yaml
pod/pod-affinity created
[root@bogon ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod-affinity 1/1 Running 0 10s 172.17.0.5 kafka03 <none> <none>
pod-flag 1/1 Running 0 16m 172.17.0.3 kafka03 <none> <none>
172.17.0.4 kafka03 <none> <none>
이 두 pod 가 같은 node 에서 실행 되 는 것 을 볼 수 있 습 니 다.
apiVersion: v1
kind: Pod
metadata:
name: anti-affinity
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- s1
topologyKey: failure-damon.beta.kubernetes.io/zone
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- nginx
topologyKey: kubernetes.io/hostname
containers:
- name: anti-affinity
image: k8s.gcr.io/pause:3.1
이 새로운 pod 와 security = s1 의 pod 는 같은 zone 이지 만 app = nginx 의 pod 와 같은 node 가 아 닙 니 다!
[root@bogon ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
anti-affinity 0/1 Pending 0 26s <none> <none> <none> <none>
자세 한 내용 보기: kubectl describe pod / anti - afinity 에서 스케줄 규칙 에 맞지 않 는 글 자 를 발견 할 수 있 습 니 다!
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler 0/2 nodes are available: 2 node(s) didn't match pod affinity rules.
Warning FailedScheduling default-scheduler 0/2 nodes are available: 2 node(s) didn' t match pod affinity rules.
노드 친화 성 유형, pod 친화 적 인 연산 자 도 포함 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[K8s] Kubernetes Pod를 다시 시작하는 방법이 경우 빠르고 쉽게 다시 시작할 수 있는 방법이 필요할 수 있습니다. 따라서 단일 포드를 다시 시작하는 간단한 방법이 없습니다. 이 문서에서 다룰 몇 가지 사용 가능한 옵션이 있습니다. ReplicaSet에서 유지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.