사용자 클러스터를 Controlplane V2로 마이그레이션

이 문서에서는 kubeception을 사용하여 버전 1.29 이상의 사용자 클러스터를 Controlplane V2로 마이그레이션하는 방법을 보여줍니다.

1.29: 미리보기
1.28: 사용할 수 없음
1.16: 사용할 수 없음

사용자 클러스터 제어 영역 정보

Google Distributed Cloud 1.13 이전 버전에는 사용자 클러스터의 제어 영역이 관리자 클러스터의 하나 이상의 노드에서 실행되었습니다. 이러한 종류의 제어 영역을 kubeception이라고 부릅니다. 버전 1.13에서는 새 사용자 클러스터에 Controlplane V2가 도입되었습니다. Controlplane V2가 사용 설정되면 사용자 클러스터의 제어 영역은 사용자 클러스터 자체에서 실행됩니다.

Controlplane V2의 이점은 다음과 같습니다.

  • 장애 격리. 관리자 클러스터 오류가 사용자 클러스터에 영향을 주지 않습니다.

  • 운영 분리. 관리자 클러스터 업그레이드가 사용자 클러스터에 다운타임을 일으키지 않습니다.

  • 배포 분리. 관리자 클러스터와 사용자 클러스터를 다른 장애 도메인 또는 지리적 사이트에 배치할 수 있습니다. 예를 들어 에지 위치의 사용자 클러스터가 관리자 클러스터와 다른 지리적 사이트에 있을 수 있습니다.

요구사항

사용자 클러스터를 Controlplane V2로 마이그레이션하려면 사용자 클러스터가 다음 요구사항을 충족해야 합니다.

  • 사용자 클러스터는 버전 1.29 이상이어야 합니다. 관리자 클러스터 및 노드 풀은 사용자 클러스터보다 낮은 부 버전 한 개 또는 두 개일 수 있습니다. 필요한 경우 클러스터를 업그레이드합니다.

  • 사용자 클러스터에 Dataplane V2가 사용 설정되어 있어야 합니다. 이 필드는 변경할 수 없으므로 클러스터에서 Dataplane V2를 사용 설정하지 않으면 이를 Controlplane V2로 마이그레이션할 수 없습니다.

  • 사용자 클러스터는 MetalLB 또는 수동 부하 분산기를 사용하도록 구성되어야 합니다. 사용자 클러스터가 SeeSaw 부하 분산기를 사용하는 경우 MetalLB로 마이그레이션할 수 있습니다.

  • IP 주소 계획 문서를 검토하고 사용자 클러스터의 제어 영역 노드에 사용할 수 있는 IP 주소가 충분한지 확인합니다. 제어 영역 노드에는 고정 IP 주소가 필요하며, 새 제어 영역 가상 IP(VIP)의 경우 추가 IP 주소가 필요합니다.

사용자 클러스터 구성 파일 업데이트

기존 사용자 클러스터 구성 파일을 다음과 같이 변경합니다.

  1. enableControlplaneV2를 true로 설정합니다.

  2. 선택적으로 Controlplane V2 사용자 클러스터의 제어 영역을 고가용성(HA)으로 설정합니다. HA가 아닌 클러스터에서 HA 클러스터로 변경하려면 masterNode.replicas를 1에서 3으로 변경합니다.

  3. 사용자 클러스터 제어 영역 노드의 고정 IP 주소(또는 주소)를 network.controlPlaneIPBlock.ips 섹션에 추가합니다. 관리자 클러스터 IP 블록 파일에서 kubeception 사용자 클러스터 제어 영역 노드의 IP 주소(또는 주소)를 삭제합니다.

  4. network.controlPlaneIPBlock 섹션에서 넷마스크 및 게이트웨이를 입력합니다.

  5. network.hostConfig 섹션이 비어 있으면 입력합니다.

  6. 사용자 클러스터가 수동 부하 분산을 사용하는 경우 데이터 영역 트래픽에 대해 제어 영역 노드 IP가 포함되도록 부하 분산기를 구성합니다.

    • (ingressVIP:80) -> (CP_NODE_IP_ADDRESSES:ingressHTTPNodePort)
    • (ingressVIP:443) -> (CP_NODE_IP_ADDRESSES:ingressHTTPSNodePort)
  7. 제어 영역 VIP의 새 IP 주소로 loadBalancer.vips.controlPlaneVIP 필드를 업데이트합니다.

  8. 마이그레이션을 위해 클러스터를 업데이트하는 경우를 제외하고 이전의 모든 필드는 변경할 수 없습니다. 모든 설정을 다시 한번 확인하세요.

  9. gkectl diagnose cluster를 실행하고 명령어로 발견된 문제를 해결합니다.

    gkectl diagnose cluster --kubeconfig=ADMIN_CLUSTER_KUBECONFIG \
          --cluster-name=USER_CLUSTER_NAME

    다음을 바꿉니다.

    • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로입니다.

    • CLUSTER_NAME: 사용자 클러스터의 이름입니다.

수동 부하 분산기 구성 조정

사용자 클러스터에서 수동 부하 분산을 사용하는 경우 이 섹션의 단계를 수행합니다. 그렇지 않으면 이 섹션을 건너뛰세요.

CPv2 사용자 클러스터에 대한 부하 분산기를 구성하는 것과 마찬가지로 network.controlPlaneIPBlock 섹션에 지정한 3개의 새로운 제어 영역 노드 IP 주소 각각에 대해 부하 분산기에서 매핑을 구성합니다.

  • (ingressVIP:80) -> (NEW_NODE_IP_ADDRESS:ingressHTTPNodePort)
  • (ingressVIP:443) -> (NEW_NODE_IP_ADDRESS:ingressHTTPNodePort)

클러스터 업데이트

다음 명령어를 실행하여 클러스터를 Controlplane V2로 마이그레이션합니다.

gkectl update cluster \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG

다음을 바꿉니다.

  • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로입니다.

  • USER_CLUSTER_CONFIG: 사용자 클러스터 구성 파일의 경로입니다.