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 팟을 올바르게 배치할 수 없습니다.

다음 단계에 따라 문제를 해결하세요:

  1. 클러스터의 구역당 작업자 노드 수를 확인하십시오.

    ibmcloud ks worker ls -c <cluster_name_or_ID>
    
  2. 한 영역에 워커 노드가 하나만 존재하는 경우 해당 영역의 워커 노드 수를 늘립니다.

    • 클래식 및 VPC 클러스터:
    • 클래식 클러스터만 해당: 클래식 클러스터의 각 영역에 두 개 이상의 작업자 노드가 있는 경우, 작업자 노드가 한 영역 내의 다른 VLAN에 연결되어 프라이빗 VLAN에는 하나의 작업자 노드만 존재할 수 있습니다. 다음 단계를 계속하십시오.
  3. 영역당 여러 개의 워커 노드가 있는 클래식 클러스터의 경우 각 워커 노드가 연결되어 있는 프라이빗 VLAN을 확인하세요.

    ibmcloud ks worker get -w <worker_ID> -c <cluster_name_or_ID>
    
  4. 사설 VLAN에 하나의 작업자 노드만 존재하고 구역 내의 다른 작업자 노드가 다른 사설 VLAN에 연결되는 경우 최소 하나의 작업자 노드 크기로 새 작업자 풀을 작성하십시오. 작업자 풀에 영역을 추가할 때는 이전에 식별한 작업자 노드와 동일한 영역 및 비공개 VLAN을 지정하세요.

  5. 클러스터의 각 구역에 대해 이러한 단계를 반복하여 하나의 사설 VLAN에 둘 이상의 작업자 노드가 있도록 하십시오.

새 작업자 노드가 배치된 후 ALB 팟(Pod)은 해당 작업자 노드에 배치하도록 자동으로 스케줄됩니다.