이 주제에서는 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]
서비스 계정 활성화 및 해당 계정으로 gcloud
및 gsutil
명령 실행
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)
기본 로깅 동작
gkectl
및 gkeadm
의 경우 기본 로깅 설정만 사용해도 됩니다.
-
기본적으로 로그 항목은 다음과 같이 저장됩니다.
gkectl
의 기본 로그 파일은/home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log
이며 파일은gkectl
을 실행하는 로컬 디렉터리의logs/gkectl-$(date).log
파일과 심볼릭 링크됩니다.gkeadm
의 경우 기본 로그 파일은gkeadm
을 실행하는 로컬 디렉터리의logs/gkeadm-$(date).log
입니다.
- 모든 로그 항목은 터미널에서 출력되지 않더라도 로그 파일에 저장됩니다(
--alsologtostderr
가false
인 경우). -v5
세부정보 수준(기본값)에는 지원팀에 필요한 모든 로그 항목이 포함됩니다.- 로그 파일에는 실행된 명령어와 실패 메시지도 포함되어 있습니다.
도움이 필요한 경우 로그 파일을 지원팀에 보내는 것이 좋습니다.
로그 파일에 기본값이 아닌 위치 지정
gkectl
로그 파일에 기본값이 아닌 위치를 지정하려면 --log_file
플래그를 사용합니다. 지정한 로그 파일은 로컬 디렉터리와 심볼릭 링크되지 않습니다.
gkeadm
로그 파일에 기본값이 아닌 위치를 지정하려면 --log_file
플래그를 사용합니다.
관리자 클러스터에서 Cluster API 로그 찾기
관리자 제어 영역이 시작된 후에 VM을 시작하지 못하는 경우 다음 안내에 따라 관리자 클러스터에서 Cluster API 컨트롤러의 로그를 검사하여 디버깅할 수 있습니다.
kube-system
네임스페이스에서 Cluster API 컨트롤러 pod의 이름을 찾습니다. 여기서 [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
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를 사용하여 클러스터 노드에 연결을 참조하세요.