버전 1.4. 이 버전은 완전히 지원되며 GKE On-Prem에 영향을 미치는 보안 취약점, 노출, 문제에 대한 최신 패치와 업데이트를 제공합니다. 자세한 내용은 출시 노트를 참조하세요. 이 버전은 최신 버전이 아닙니다.

관리 클러스터 만들기

이 페이지에서는 관리자 클러스터를 만드는 방법을 보여줍니다.

구성 파일 생성

클러스터를 만들고 관리하려면 관리자 클러스터 구성 파일이 필요합니다. gkeadm을 사용하여 관리 워크스테이션을 만든 경우 gkeadm은 구성 파일의 템플릿을 생성하고 일부 필드를 채웠습니다.

gkeadm을 사용하여 관리자 워크스테이션을 만들지 않은 경우 다음 명령어를 실행하여 템플릿을 생성할 수 있습니다.

gkectl create-config admin --config [OUTPUT_PATH]

여기서 [OUTPUT_PATH]은 생성된 템플릿에 대한 경로입니다. --config 플래그를 포함하지 않으면 gkectl은 파일 이름을 admin-cluster.yaml로 지정하고 현재 디렉터리에 넣습니다.

구성 파일 작성

bundlePath

gkeadm을 사용하여 관리자 워크스테이션을 만든 경우 이 필드가 이미 채워져 있습니다. 그렇지 않으면 번들 파일의 경로를 제공합니다.

vCenter

gkeadm을 사용하여 관리자 워크스테이션을 만든 경우 이 섹션은 이미 채워져 있습니다. 그렇지 않으면 vCenter 아래의 필드 값을 제공합니다.

network

클러스터 노드가 IP 주소를 가져오는 방법을 결정합니다. 옵션은 다음과 같습니다.

  • DHCP 서버에서 가져옵니다. network.ipMode.type"dhcp"로 설정합니다.

  • 제공한 고정 IP 주소 목록에서 가져옵니다. network.ipMode.type"static"으로 설정하고 고정 IP 주소를 제공하는 호스트 구성 파일을 만듭니다.

network 섹션의 나머지 필드에 값을 넣습니다.

loadBalancer

관리자 클러스터의 Kubernetes API 서버에 대해 VIP를 별도로 설정합니다. 부가기능 서버에 대해 다른 VIP를 별도로 설정합니다. VIP를 loadBalancer.controlPlaneVIPloadBalancer.addonsVIP의 값으로 제공합니다.

사용할 부하 분산의 유형을 결정합니다. 옵션은 다음과 같습니다.

  • Seesaw 번들 부하 분산. loadBalancer.kind"Seesaw"로 설정하고 loadBalancer.seesaw 섹션을 입력합니다.

  • F5 BIG-IP를 사용한 통합 부하 분산. loadBalancer.kind"F5BigIP"로 설정하고 f5BigIP 섹션을 입력합니다.

  • 수동 부하 분산. loadBalancer.kind"ManualLB"로 설정하고 manualLB 섹션을 입력합니다.

proxy

관리자 클러스터 노드를 포함할 네트워크가 프록시 서버 뒤에 있는 경우 proxy 섹션을 입력합니다.

privateRegistry

GKE On-Prem 구성요소의 컨테이너 이미지를 보관할 위치를 결정합니다. 옵션은 다음과 같습니다.

  • gcr.io. privateRegistry 섹션은 입력하지 마세요.

  • 자체 비공개 Docker 레지스트리입니다. privateRegistry 섹션을 입력합니다.

gcrKeyPath

gcrKeyPath를 허용 목록에 포함된 서비스 계정의 JSON 키 파일 경로로 설정합니다.

stackdriver

stackdriver 섹션을 입력합니다.

cloudAuditLogging

Kubernetes 감사 로그를 Cloud 감사 로그와 통합하려면 cloudAuditLogging 섹션을 입력합니다.

구성 파일 검사

관리자 클러스터 구성 파일을 입력한 후 gkectl check-config를 실행하여 파일이 유효한지 확인합니다.

gkectl check-config --config [CONFIG_PATH]

여기서 [CONFIG_PATH]는 관리자 클러스터 구성 파일의 경로입니다.

명령어가 실패 메시지를 반환하면 문제를 해결하고 파일을 다시 검사합니다.

시간이 오래 걸리는 검사를 건너뛰려면 --fast 플래그를 전달합니다. 개별 검사를 건너뛰려면 --skip-validation-xxx 플래그를 사용합니다. check-config 명령어에 대해 자세히 알아보려면 실행 전 검사 실행을 참조하세요.

gkectl prepare 실행

gkectl prepare를 실행하여 vSphere 환경을 초기화합니다.

gkectl prepare --config [CONFIG_PATH] --skip-validation-all

관리자 클러스터 만들기

관리자 클러스터를 만듭니다.

gkectl create admin --config [CONFIG_PATH] --skip-validation-all

여기서 [CONFIG_PATH]는 관리자 클러스터 구성 파일의 경로입니다.

gkectl create admin 명령어는 현재 디렉터리에 kubeconfig라는 kubeconfig 파일을 만듭니다. 나중에 관리자 클러스터와 상호작용하려면 이 kubeconfig 파일이 필요합니다.

관리자 클러스터 실행 여부 확인

클러스터가 실행 중인지 확인합니다.

kubectl get nodes --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]

여기서 [ADMIN_CLUSTER_KUBECONFIG]는 kubeconfig 파일의 경로입니다.

출력에 관리자 클러스터 노드가 표시됩니다.

문제 해결

gkectl을 사용하여 클러스터 문제 진단

gkectl diagnose 명령어를 사용하여 클러스터 문제를 식별하고 클러스터 정보를 Google과 공유하세요. 클러스터 문제 진단을 참조하세요.

gkectl 명령어를 상세하게 실행

-v5

gkectl 오류를 stderr에 로깅

--alsologtostderr

관리자 워크스테이션에서 gkectl 로그 찾기

디버깅 플래그를 전달하지 않더라도 다음 관리자 워크스테이션 디렉터리에서 gkectl 로그를 볼 수 있습니다.

/home/ubuntu/.config/gke-on-prem/logs

관리자 클러스터에서 Cluster API 로그 찾기

관리자 제어 영역이 시작된 후에 VM을 시작하지 못하는 경우 다음 안내에 따라 관리자 클러스터에서 Cluster API 컨트롤러의 로그를 검사하여 디버깅할 수 있습니다.

  1. kube-system 네임스페이스에서 Cluster API 컨트롤러 pod의 이름을 찾습니다. 여기서 [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
  2. pod의 로그를 엽니다. 여기서 [POD_NAME]은 pod 이름입니다. 원하는 경우 grep 또는 비슷한 도구를 사용하여 오류를 검색합니다.

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager

관리자 클러스터 제어 영역 노드의 kubeconfig를 사용하여 F5 BIG-IP 문제 디버깅

설치 후 GKE On-Prem은 이름이 internal-cluster-kubeconfig-debug인 관리자 워크스테이션의 홈 디렉터리에 kubeconfig 파일을 생성합니다. 이 kubeconfig 파일은 관리자 클러스터의 kubeconfig와 동일하지만 관리 제어 영역이 실행되는 관리자 클러스터의 제어 영역 노드를 직접 가리킨다는 것만 다릅니다. internal-cluster-kubeconfig-debug 파일을 사용하여 F5 BIG-IP 문제를 디버깅할 수 있습니다.

gkectl check-config 검사 실패: F5 BIG-IP 파티션을 찾을 수 없음

증상

F5 BIG-IP 파티션이 존재하더라도 이를 찾을 수 없어서 검사가 실패합니다.

가능한 원인

F5 BIG-IP API 관련 문제로 인해 검사가 실패할 수 있습니다.

해결 방법

gkectl check-config를 다시 실행해 보세요.

gkectl prepare --validate-attestations 실패: 빌드 증명을 검사할 수 없음

증상

선택사항인 --validate-attestations 플래그로 gkectl prepare를 실행하면 다음 오류가 반환됩니다.

could not validate build attestation for gcr.io/gke-on-prem-release/.../...: VIOLATES_POLICY
가능한 원인

해당 이미지에 대한 증명이 존재하지 않을 수 있습니다.

해결 방법

관리 워크스테이션 만들기 안내를 따라 관리 워크스테이션 OVA를 다시 다운로드하고 배포하세요. 문제가 계속되면 Google에 도움을 요청하세요.

부트스트랩 클러스터 로그를 사용하여 디버깅

설치 중 GKE On-Prem은 임시 부트스트랩 클러스터를 만듭니다. 설치가 성공한 후에는 GKE On-Prem이 부트스트랩 클러스터를 삭제하고 관리자 및 사용자 클러스터를 남겨둡니다. 일반적으로 이 클러스터와 상호작용할 이유가 없습니다.

설치 중 문제가 발생하고 --cleanup-external-cluster=falsegkectl create cluster에 전달한 경우 부트스트랩 클러스터의 로그를 사용하여 디버깅하는 것이 유용할 수 있습니다. Pod를 찾은 후 해당 로그를 가져올 수 있습니다.

kubectl --kubeconfig /home/ubuntu/.kube/kind-config-gkectl get pods -n kube-system
kubectl --kubeconfig /home/ubuntu/.kube/kind-config-gkectl -n kube-system get logs [POD_NAME]

자세한 내용은 문제 해결을 참조하세요.

다음 단계

사용자 클러스터 만들기