기본적으로 Google Distributed Cloud는 정상 작동을 위해Google Cloud 에 대한 지속적인 연결이 필요합니다. 이는 기본적으로 Google Distributed Cloud로 생성하는 클러스터가 클라우드 컨트롤 플레인 클러스터이기 때문입니다. 즉, 이러한 클러스터에서 실행되는 워크로드를 오케스트레이션하는 Kubernetes 컨트롤 플레인은 Google Cloud에서 실행됩니다.
Distributed Cloud의 안정성을 높이기 위해 Distributed Cloud 하드웨어에 배포된 로컬 컨트롤 플레인을 사용하는 Distributed Cloud 클러스터를 만들 수 있습니다. Google Cloud 와의 연결이 끊어지면 이러한 클러스터는 생존 가능성 모드로 전환되고 워크로드는 최대 7일 동안 계속 실행됩니다.
Google Cloud 에 대한 연결이 끊어지면 로컬 컨트롤 플레인으로 배포된 Distributed Cloud 클러스터만 생존 가능 모드로 전환할 수 있습니다. Google Cloud 에서 실행되는 클라우드 컨트롤 플레인으로 배포된 클러스터는 생존 가능 모드로 전환할 수 없습니다. 클라우드 제어 영역을 사용하는 기존 클러스터를 로컬 제어 영역을 사용하도록 재구성할 수 없습니다.
로컬 컨트롤 플레인으로 클러스터를 만들 때는 다음 규칙이 적용됩니다.
- 자체 Google Cloud 프로젝트에 로컬 컨트롤 플레인 클러스터를 만들어야 합니다. 로컬 컨트롤 플레인 클러스터는 비분산 클라우드 클러스터를 비롯한 다른 유형의 클러스터와 동일한 Google Cloud 프로젝트에 공존할 수 없습니다. 동일한 Google Cloud 프로젝트에서 로컬 컨트롤 플레인 Distributed Cloud 클러스터를 다른 유형의 클러스터와 혼합하면 데이터가 손실될 수 있습니다.
- Distributed Cloud 클러스터 간에 노드를 재할당하면 해당 노드가 완전히 삭제되고 기본 구성으로 재설정됩니다.
- 기본적으로 로컬 컨트롤 플레인 워크로드는 Distributed Cloud에서 자동으로 선택한 세 노드에 걸쳐 있는 세 개의 복제본을 사용하여 고가용성 모드로 실행됩니다. 클러스터에 노드가 3개 미만이거나 로컬 컨트롤 플레인 워크로드를 실행하는 데 노드 하나를 사용하도록 클러스터를 특별히 구성하지 않는 한 이는 사실입니다.
--control-plane-machine-filter플래그를 사용하여 고가용성 모드의 세 노드를 지정할 수도 있습니다. 다른 노드 조합은 지원되지 않습니다. - 로컬 컨트롤 플레인 워크로드를 실행하는 노드는 애플리케이션 워크로드도 실행합니다.
- 로컬 컨트롤 플레인 엔드포인트의 IP 주소는 로컬 네트워크에서 액세스할 수 있습니다. 로컬 네트워크의 보안 구성이 해당 IP 주소에 대한 외부 액세스를 방지하는지 확인해야 합니다.
생존 가능 모드에서 Distributed Cloud 클러스터는 다음과 같이 작동합니다.
- Google Cloud CLI,
kubectlCLI, Edge Container API를 통한 워크로드 제어가 사용 중지됩니다. - Distributed Cloud 소프트웨어 업데이트, SLO, 하드웨어 수리를 사용할 수 없습니다.
- Google Cloud 에 대한 연결이 다시 설정된 후 제한된 로그와 측정항목이 Google Cloud 와 동기화됩니다.
- 기본적으로 클러스터가 Google Cloud에서 연결이 해제된 상태에서 노드가 재부팅되면 인증 키를 새로고침할 수 없으므로 Google Cloud 에 대한 연결이 다시 설정될 때까지 클러스터에 다시 참여할 수 없습니다. 클러스터가 생존 가능 모드로 실행되는 동안 노드가 재부팅 후 클러스터에 다시 참여할 수 있는 오프라인 재부팅 기간을 지정할 수 있습니다. 자세한 내용은 클러스터 만들기를 참고하세요.
기본 요건
로컬 제어 영역으로 Distributed Cloud 클러스터를 만들려면 먼저 타겟 Google Cloud 프로젝트에서 필요한 API를 사용 설정해야 합니다. 이렇게 하려면 Google Cloud 프로젝트에 다음 역할 중 하나가 있어야 합니다.
- 소유자(
roles/owner) - 편집자(
roles/editor) - 서비스 사용량 관리자(
roles/serviceusage.serviceUsageAdmin)
이러한 역할에 대한 자세한 내용은 기본 역할을 참고하세요.
역할 부여에 대한 자세한 내용은 단일 역할 부여를 참고하세요.
로컬 제어 영역이 있는 Distributed Cloud 클러스터를 만들려면 다음 API를 사용 설정하세요.
anthos.googleapis.comanthosaudit.googleapis.comanthosgke.googleapis.comcloudresourcemanager.googleapis.comconnectgateway.googleapis.comcontainer.googleapis.comedgecontainer.googleapis.comgkeconnect.googleapis.comgkehub.googleapis.comgkeonprem.googleapis.comiam.googleapis.comlogging.googleapis.commonitoring.googleapis.comopsconfigmonitoring.googleapis.comserviceusage.googleapis.comstackdriver.googleapis.comstorage.googleapis.comsts.googleapis.com
API 사용 설정에 대한 자세한 내용은 서비스 사용 설정을 참고하세요.
Google Cloud SDK를 버전 450.0.0 이상으로 업그레이드
Distributed Cloud 소프트웨어 버전 1.5.0을 실행하는 로컬 제어 영역 클러스터를 만들려면 Google Cloud SDK를 버전 450.0.0 이상으로 업그레이드해야 합니다. 그렇지 않으면 이러한 클러스터를 만들 수 없습니다.
로컬 컨트롤 플레인으로 클러스터 만들기
로컬 제어 평면으로 Distributed Cloud 클러스터를 만들려면 클러스터를 만들 때 다음 플래그를 전달해야 합니다.
--control-plane-node-location는 Distributed Cloud에 이 클러스터의 컨트롤 플레인 워크로드를 로컬로 배포하도록 지시합니다. 값은 대상 Distributed Cloud 영역의 이름입니다.--control-plane-node-count(선택사항)는 로컬 컨트롤 플레인 워크로드를 실행할 노드 수를 지정합니다. 유효한 값은 고가용성의 경우3이고 표준 작업의 경우1입니다. 생략하면 기본값은3입니다.--control-plane-machine-filter(선택사항)은 로컬 컨트롤 플레인 워크로드를 실행하는 노드의 정규식 형식 목록을 지정합니다. 생략하면 Distributed Cloud가 무작위로 노드를 자동으로 선택합니다.--control-plane-shared-deployment-policy는 애플리케이션 워크로드가 로컬 컨트롤 플레인 워크로드를 실행하는 노드에서 실행될 수 있는지 여부를 지정합니다. 유일한 유효 값은ALLOWED입니다. 생략하면 클러스터 생성에 실패합니다.--external-lb-ipv4-address-pools는 분산 클라우드 부하 분산기 뒤에서 실행되는 서비스의 인그레스 트래픽에 대한 쉼표로 구분된 IPv4 주소, 주소 범위 또는 서브넷 목록을 지정합니다.
Distributed Cloud 클러스터 만들기에 대한 자세한 내용은 클러스터 만들기를 참고하세요.