이전 버전의 GKE On-Prem 문서를 보고 있습니다. 최신 문서 보기

GKE On-Prem 간략한 도움말

이 주제에서는 GKE On-Prem을 사용하는 동안 호출되는 명령어를 간략하게 설명합니다. 편의를 위해 제공되며 GKE On-Prem 문서를 보완합니다.

대괄호 안의 플래그는 선택사항입니다. Placeholder variables는 변경할 수 있습니다.

kubectl 명령어

kubectl 간략한 도움말도 참조하세요.

기본 kubeconfig 파일 설정

export KUBECONFIG=[KUBECONFIG_PATH]

기본 kubeconfig의 클러스터 나열

kubectl get clusters

--kubeconfig [KUBECONFIG_PATH]에 전달하여 기본이 아닌 kubeconfig의 클러스터를 봅니다.

기본 kubeconfig의 클러스터에 노드 나열

kubectl get nodes

--kubeconfig [KUBECONFIG_PATH]에 전달하여 기본이 아닌 kubeconfig의 클러스터를 봅니다.

모든 네임스페이스의 모든 컨테이너 나열

kubectl get pods --all-namespaces -o jsonpath="{..image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c

gkectl 명령어

gkectl 참조도 확인하세요.

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

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

GKE On-Prem 구성 파일 생성

gkectl create-config [--config [PATH]]

구성 파일 유효성 검사

gkectl check-config --config [PATH]

GKE On-Prem 이미지를 Docker 레지스트리로 푸시 및 노드 OS 이미지 초기화

gkectl prepare --config [CONFIG_FILE] [--validate-attestations]

클러스터 만들기

gkectl create cluster --config [CONFIG_FILE]

Google Cloud 서비스 계정

서비스 계정 만들기

gcloud iam service-accounts create [SERVICE_ACCOUNT_NAME] --project [PROJECT_ID]

서비스 계정에 IAM 역할 부여

gcloud projects add-iam-policy-binding \
    [PROJECT_ID] \
    --member="serviceAccount:[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com" \
    --role="[ROLE_NAME]"

서비스 계정의 비공개 키 만들기

gcloud iam service-accounts keys create [KEY_FILE_NAME] \
--iam-account [SERVICE_ACCOUNT_NAME]@[PROJECT-ID].iam.gserviceaccount.com \
--project [PROJECT_ID]

서비스 계정 활성화 및 해당 계정으로 gcloudgsutil 명령 실행

gcloud auth activate-service-account --key-file=[SERVICE_ACCOUNT_KEY_FILE]

관리 워크스테이션

관리 워크스테이션에 SSH를 통해 연결

Terraform 구성 파일이 있는 디렉터리에서 다음을 실행합니다.

ssh -i ~/.ssh/vsphere_workstation ubuntu@$(terraform output ip_address)

또는 주소를 사용하려면 다음을 실행하세요.

ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]

파일을 관리 워크스테이션에 복사

scp -i ~./ssh/vsphere_workstation [SOURCE_PATH] ubuntu@$(terraform output ip_address)

기본 로깅 동작

gkectlgkeadm의 경우 기본 로깅 설정만 사용해도 됩니다.

  • 기본적으로 로그 항목은 다음과 같이 저장됩니다.

    • gkectl의 기본 로그 파일은 /home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log이며 파일은 gkectl을 실행하는 로컬 디렉터리의 logs/gkectl-$(date).log 파일과 심볼릭 링크됩니다.
    • gkeadm의 경우 기본 로그 파일은 gkeadm을 실행하는 로컬 디렉터리의 logs/gkeadm-$(date).log입니다.
  • 모든 로그 항목은 터미널에서 출력되지 않더라도 로그 파일에 저장됩니다(--alsologtostderrfalse인 경우).
  • -v5 상세 수준(기본값)에는 지원팀에서 필요한 모든 로그 항목이 포함됩니다.
  • 로그 파일에는 실행된 명령어와 실패 메시지도 포함되어 있습니다.

도움이 필요한 경우 로그 파일을 지원팀에 보내는 것이 좋습니다.

로그 파일에 기본값이 아닌 위치 지정

gkectl 로그 파일에 기본이 아닌 위치를 지정하려면 --log_file 플래그를 사용합니다. 지정한 로그 파일은 로컬 디렉터리와 심볼릭 링크되지 않습니다.

gkeadm 로그 파일에 기본이 아닌 위치를 지정하려면 --log_file 플래그를 사용합니다.

관리자 클러스터에서 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

클러스터

관리자 클러스터 노드의 IP 주소 가져오기

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get nodes --output wide

사용자 클러스터 노드의 IP 주소 가져오기

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes --output wide

클러스터 노드에 SSH를 통해 연결

SSH를 사용하여 클러스터 노드에 연결을 참조하세요.

다음 단계