ALB 팟(Pod)이 작업자 노드에 배치되지 않는 이유는 무엇입니까?
가상 프라이빗 클라우드 클래식 인프라
kubectl get pods -n kube-system | grep alb를 실행하면 어떠한 ALB 팟(Pod)도 작업자 노드에 배치되지 않거나 일부 ALB 팟(Pod)만 작업자 노드에 배치됩니다.
kubectl describe pod -n kube-system <pod_name>을(를) 실행하여 ALB 팟을 설명하는 경우 출력의 이벤트 섹션에 다음과 유사한 메시지가 표시됩니다.
0/3 nodes are available: 1 node(s) didn’t match pod affinity/anti-affinity, 2 node(s) didn’t match node selector.
Ingress는 고가용성을 보장하고 주기적 업데이트를 적용하기 위해 구역당 두 개 이상의 작업자 노드를 필요로 합니다.
기본적으로, ALB 팟(Pod)에는 두 개의 복제본이 있습니다. 그러나, ALB 팟(Pod)에는 고가용성을 위해 각 작업자 노드에 하나의 팟(Pod)만 스케줄되도록 하는 반친화성 규칙이 있습니다. 클래식 또는 VPC 클러스터의 구역마다 하나의 작업자 노드만 있거나 클래식 클러스터가 연결된 VLAN에 하나의 작업자 노드만 있으면 ALB 팟을 올바르게 배치할 수 없습니다.
다음 단계에 따라 문제를 해결하세요:
-
클러스터의 구역당 작업자 노드 수를 확인하십시오.
ibmcloud ks worker ls -c <cluster_name_or_ID> -
한 영역에 워커 노드가 하나만 존재하는 경우 해당 영역의 워커 노드 수를 늘립니다.
- 클래식 및 VPC 클러스터:
- 엣지 노드를 사용하지 않는 경우: 기존 작업자 풀의 크기를 조정하거나, VPC 클러스터에 새 작업자 풀을 만들거나, 클래식 클러스터에 새 작업자 풀을 만들어 각 영역에 최소 2개의 작업자 노드가 있는지 확인합니다.
- 엣지 노드를 사용하는 경우: 각 영역에서 최소 두 개의 엣지 워커 노드가 활성화되어 있는지 확인합니다.
- 클래식 클러스터만 해당: 클래식 클러스터의 각 영역에 두 개 이상의 작업자 노드가 있는 경우, 작업자 노드가 한 영역 내의 다른 VLAN에 연결되어 프라이빗 VLAN에는 하나의 작업자 노드만 존재할 수 있습니다. 다음 단계를 계속하십시오.
- 클래식 및 VPC 클러스터:
-
영역당 여러 개의 워커 노드가 있는 클래식 클러스터의 경우 각 워커 노드가 연결되어 있는 프라이빗 VLAN을 확인하세요.
ibmcloud ks worker get -w <worker_ID> -c <cluster_name_or_ID> -
사설 VLAN에 하나의 작업자 노드만 존재하고 구역 내의 다른 작업자 노드가 다른 사설 VLAN에 연결되는 경우 최소 하나의 작업자 노드 크기로 새 작업자 풀을 작성하십시오. 작업자 풀에 영역을 추가할 때는 이전에 식별한 작업자 노드와 동일한 영역 및 비공개 VLAN을 지정하세요.
-
클러스터의 각 구역에 대해 이러한 단계를 반복하여 하나의 사설 VLAN에 둘 이상의 작업자 노드가 있도록 하십시오.
새 작업자 노드가 배치된 후 ALB 팟(Pod)은 해당 작업자 노드에 배치하도록 자동으로 스케줄됩니다.