버전 1.8. 이 버전은 Anthos 버전 지원 정책에 설명된 대로 지원되며 VMware용 Anthos 클러스터(GKE On-Prem)에 영향을 미치는 보안 취약점, 노출, 문제에 대한 최신 패치와 업데이트를 제공합니다. 자세한 내용은 출시 노트를 참조하세요. 이 버전은 최신 버전이 아닙니다.

클러스터 문제 진단

이 문서에서는 gkectl diagnose를 사용하여 클러스터의 문제를 진단하는 방법을 보여줍니다.

개요

gkectl 도구에는 gkectl diagnose clustergkectl diagnose snapshot 등 문제를 해결하는 데 사용할 수 있는 두 가지 명령어가 있습니다. 명령어는 관리자 클러스터와 사용자 클러스터 모두에서 작동합니다.

gkectl diagnose cluster

클러스터에서 상태 확인을 수행하고 오류를 보고합니다. 다음 구성요소에서 상태 확인을 실행합니다.

  • VCenter
    • 사용자 인증 정보
    • DRS
    • 안티어피니티 그룹
    • 네트워크
    • 버전
    • 데이터센터
    • Datastore
    • 리소스 풀
    • 폴더
    • 네트워크
  • 부하 분산기 (F5, Seesaw, 수동)
  • 사용자 클러스터 및 노드 풀
  • 클러스터 객체
  • 머신 객체 및 해당 클러스터 노드
  • kube-system 및 gke-system 네임스페이스의 pod
  • 대상 클러스터가 사용자 클러스터인 경우 사용자 제어 영역
  • 클러스터의 vSphere 영구 볼륨
  • 사용자 및 관리자 클러스터 vCPU(가상 CPU)와 메모리 경합 신호
  • 사용자 및 관리자 클러스터 ESXi가 사전 구성된 호스트 CPU 사용량 및 메모리 사용량 경보
  • 하루 중 특정 시간(TOD)
  • Dataplane V2가 사용 설정된 클러스터의 노드 네트워크 정책

gkectl diagnose snapshot

클러스터의 상태, 구성, 로그를 tarball 파일로 압축합니다. 특히, 명령어의 기본 구성에는 클러스터에 대한 다음 정보가 포함됩니다.

  • Kubernetes 버전

  • kube-system 및 gke-system 네임스페이스의 Kubernetes 리소스 상태: 클러스터, 머신, 노드, 서비스, 엔드포인트, ConfigMap, ReplicaSet, CronJob, pod, 이러한 pod 소유자, 배포, DaemonSet, StatefulSet

  • 대상 클러스터가 사용자 클러스터인 경우 사용자 제어 영역 상태(사용자 클러스터 제어 영역은 관리자 클러스터에서 실행)

  • IP 주소, iptable 규칙, 마운트 지점, 파일 시스템, 네트워크 연결, 실행 중인 프로세스를 포함한 각 노드 구성에 대한 세부정보

  • Kubernetes API server를 사용할 수 없는 경우 관리자 클러스터의 제어 영역 노드의 컨테이너 로그

  • 리소스 풀 기반의 VM 객체 및 해당 이벤트를 포함한 vSphere 정보. VM과 연결된 데이터 센터, 클러스터, 네트워크, Datastore 객체

  • 가상 서버, 가상 주소, 풀, 노드, 모니터를 포함한 F5 BIG-IP 부하 분산기 정보

  • gkectl diagnose snapshot 명령어의 로그

  • 스냅샷에 있는 모든 파일의 HTML 색인 파일

  • 선택적으로 클러스터를 설치하고 업그레이드하는 데 사용되는 클러스터 구성 파일

vSphere 및 F5 사용자 인증 정보를 포함한 사용자 인증 정보는 tarball이 생성되기 전에 삭제됩니다.

클러스터 진단

gke diagnose cluster를 실행하여 클러스터의 일반적인 문제를 찾아낼 수 있습니다.

gkectl diagnose cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

출력 예시:

Failed to access the api server via LB VIP "...": ...
Try to use the admin master IP instead of problematic VIP...
Reading config with version "[CONFIG_VERSION]"
Finding the admin master VM...
Fetching the VMs in the resource pool "[RESOURCE_POOL_NAME]"...
Found the "[ADMIN_MASTER_VM_NAME]" is the admin master VM.
Diagnosing admin|user cluster "[TARGET_CLUSTER_NAME]"...
...

관리자 클러스터 진단

관리자 클러스터 이름을 전달하거나 kubeconfig만 전달하여 관리자 클러스터를 진단할 수 있습니다.

관리자 클러스터 kubeconfig 사용

관리자 클러스터의 kubeconfig를 전달하면 gkectl이 자동으로 관리자 클러스터를 선택합니다.

gkectl diagnose cluster --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG]

관리자 클러스터 이름 사용

관리자 클러스터 이름을 가져오려면 다음 명령어를 실행합니다.

kubectl get cluster --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG]

그런 다음 관리자 클러스터 이름을 gkectl diagnose cluster에 전달합니다.

gkectl diagnose cluster --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[ADMIN_CLUSTER_NAME]

관리자 클러스터가 제대로 작동하면 gkectl diagnose cluster는 다음과 비슷한 출력을 반환합니다.

Preparing for the diagnose tool...
Diagnosing the cluster......DONE

- Validation Category: Admin Cluster Connectivity
Checking VMs TOD (availability)...SUCCESS

- Validation Category: Admin Cluster F5 BIG-IP
Checking f5 (credentials, partition)...SUCCESS

- Validation Category: Admin Cluster VCenter
Checking Credentials...SUCCESS
Checking DRS enabled...SUCCESS
Checking Hosts for AntiAffinityGroups...SUCCESS
Checking Version...SUCCESS
Checking Datacenter...SUCCESS
Checking Datastore...SUCCESS
Checking Resource pool...SUCCESS
Checking Folder...SUCCESS
Checking Network...SUCCESS

- Validation Category: Admin Cluster
Checking cluster object...SUCCESS
Checking machine deployment...SUCCESS
Checking machineset...SUCCESS
Checking machine objects...SUCCESS
Checking kube-system pods...SUCCESS
Checking anthos-identity-service pods...SUCCESS
Checking storage...SUCCESS
Checking resource...SUCCESS
Checking virtual machine resource contention...SUCCESS
Checking host resource contention...SUCCESS
All validation results were SUCCESS.
Cluster is healthy!

사용자 클러스터 진단

클러스터를 진단하려면 먼저 사용자 클러스터 이름을 가져옵니다.

kubectl get cluster --kubeconfig=[USER_CLUSTER_KUBECONFIG]

그런 다음 관리자 클러스터의 kubeconfig 및 사용자 클러스터 이름을 전달합니다.

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

사용자 클러스터가 제대로 작동하면 gkectl diagnose cluster는 다음과 비슷한 출력을 반환합니다.

Preparing for the diagnose tool...
Diagnosing the cluster......DONE

Diagnose result is saved successfully in 

- Validation Category: User Cluster Connectivity
Checking Node Network Policy...SUCCESS
Checking VMs TOD (availability)...SUCCESS

- Validation Category: User Cluster F5 BIG-IP
Checking f5 (credentials, partition)...SUCCESS

- Validation Category: User Cluster VCenter
Checking Credentials...SUCCESS
Checking DRS enabled...SUCCESS
Checking Hosts for AntiAffinityGroups...SUCCESS
Checking VSphere CSI Driver...SUCCESS
Checking Version...SUCCESS
Checking Datacenter...SUCCESS
Checking Datastore...SUCCESS
Checking Resource pool...SUCCESS
Checking Folder...SUCCESS
Checking Network...SUCCESS

- Validation Category: User Cluster
Checking user cluster and node pools...SUCCESS
Checking cluster object...SUCCESS
Checking machine deployment...SUCCESS
Checking machineset...SUCCESS
Checking machine objects...SUCCESS
Checking control plane pods...SUCCESS
Checking kube-system pods...SUCCESS
Checking gke-system pods...SUCCESS
Checking gke-connect pods...SUCCESS
Checking anthos-identity-service pods...SUCCESS
Checking storage...SUCCESS
Checking resource...SUCCESS
Checking virtual machine resource contention...SUCCESS
Checking host resource contention...SUCCESS
All validation results were SUCCESS.
Cluster is healthy!

진단된 클러스터 문제 해결

gke diagnose cluster 명령어를 실행할 때 다음 문제가 발생하는 경우 가능한 해결 방법은 아래와 같습니다.

.
문제가능한 원인해결 방법
관리자 클러스터 또는 사용자 클러스터에서 Kubernetes API 서버에 연결할 수 없습니다. 가상 머신 상태 OOB(Out-Of-Box) 메모리 지연 시간 그래프를 확인하세요. 메모리 지연 시간이 0에 가까우면 이상적입니다. 메모리 경합은 CPU 경합을 증가시킬 수도 있으며, 스와핑이 포함되어 있기 때문에 CPU 준비 상태 그래프가 급증할 수 있습니다. 물리적 메모리를 늘리세요. 다른 옵션은 VMware 문제 해결 제안을 참조하세요.
노드 풀 생성 시간이 타임아웃됩니다. VMDK 높은 읽기/쓰기 지연 시간. 가상 디스크 읽기 및 쓰기 지연 시간의 VM 상태 OOB를 확인하세요. VMware에 따르면 총 지연 시간이 20ms보다 긴 경우 문제가 있는 것입니다. 디스크 성능 문제에 대한 VMware 솔루션을 참조하세요.

클러스터 상태 캡처

gkectl diagnose cluster가 오류를 찾으면 클러스터 상태를 캡처하고 정보를 Google에 제공해야 합니다. 이렇게 하려면 gkectl diagnose snapshot 명령어를 사용합니다.

gkectl diagnose snapshot에는 선택적 플래그인 --config가 있습니다. 이 플래그는 클러스터에 대한 정보 수집 외에도 클러스터를 만들거나 업그레이드하는 데 사용된 VMware용 Anthos 클러스터 구성 파일을 수집합니다.

관리자 클러스터 상태 캡처

관리자 클러스터 상태를 캡처하려면 다음 명령어를 실행합니다. 여기서 --config는 선택사항입니다.

gkectl diagnose snapshot --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] [--config]

출력에는 파일 목록과 tarball 파일 이름이 포함됩니다.

Taking snapshot of admin cluster "[ADMIN_CLUSTER_NAME]"...
   Using default snapshot configuration...
   Setting up "[ADMIN_CLUSTER_NAME]" ssh key file...DONE
   Taking snapshots...
       commands/kubectl_get_pods_-o_yaml_--kubeconfig_...env.default.kubeconfig_--namespace_kube-system
       commands/kubectl_get_deployments_-o_yaml_--kubeconfig_...env.default.kubeconfig_--namespace_kube-system
       commands/kubectl_get_daemonsets_-o_yaml_--kubeconfig_...env.default.kubeconfig_--namespace_kube-system
       ...
       nodes/[ADMIN_CLUSTER_NODE]/commands/journalctl_-u_kubelet
       nodes/[ADMIN_CLUSTER_NODE]/files/var/log/startup.log
       ...
   Snapshot succeeded. Output saved in [TARBALL_FILE_NAME].tar.gz.

디렉터리에 tarball 파일을 추출하려면 다음 명령어를 실행합니다.

tar -zxf [TARBALL_FILE_NAME] --directory [EXTRACTION_DIRECTORY_NAME]

스냅샷에서 생성된 파일 목록을 보려면 다음 명령어를 실행합니다.

cd [EXTRACTION_DIRECTORY_NAME]/[EXTRACTED_SNAPSHOT_DIRECTORY]
ls kubectlCommands
ls nodes/[NODE_NAME]/commands
ls nodes/[NODE_NAME]/files

특정 작업의 세부정보를 보려면 파일 중 하나를 엽니다.

관리자 클러스터의 SSH 키 지정

관리자 클러스터 스냅샷을 가져오면 gkectl이 관리자 클러스터의 비공개 SSH 키를 자동으로 찾습니다. --admin-ssh-key-path 매개변수를 사용하여 키를 명시적으로 지정할 수도 있습니다.

SSH를 사용하여 클러스터 노드에 연결 안내를 따라 SSH 키를 다운로드합니다.

그런 다음 gkectl diagnose snapshot 명령어에서 --admin-ssh-key-path를 디코딩한 키 파일 경로로 설정합니다.

gkectl diagnose snapshot --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--admin-ssh-key-path=[PATH_TO_DECODED_KEY]

사용자 클러스터 상태 캡처

사용자 클러스터 상태를 캡처하려면 다음 명령어를 실행합니다.

gkectl diagnose snapshot --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[USER_CLUSTER_NAME]

출력에는 파일 목록과 tarball 파일 이름이 포함됩니다.

Taking snapshot of user cluster "[USER_CLUSTER_NAME]"...
Using default snapshot configuration...
Setting up "[USER_CLUSTER_NAME]" ssh key file...DONE
    commands/kubectl_get_pods_-o_yaml_--kubeconfig_...env.default.kubeconfig_--namespace_user
    commands/kubectl_get_deployments_-o_yaml_--kubeconfig_...env.default.kubeconfig_--namespace_user
    commands/kubectl_get_daemonsets_-o_yaml_--kubeconfig_...env.default.kubeconfig_--namespace_user
    ...
    commands/kubectl_get_pods_-o_yaml_--kubeconfig_.tmp.user-kubeconfig-851213064_--namespace_kube-system
    commands/kubectl_get_deployments_-o_yaml_--kubeconfig_.tmp.user-kubeconfig-851213064_--namespace_kube-system
    commands/kubectl_get_daemonsets_-o_yaml_--kubeconfig_.tmp.user-kubeconfig-851213064_--namespace_kube-system
    ...
    nodes/[USER_CLUSTER_NODE]/commands/journalctl_-u_kubelet
    nodes/[USER_CLUSTER_NODE]/files/var/log/startup.log
    ...
Snapshot succeeded. Output saved in [FILENAME].tar.gz.

스냅샷 시나리오

gkectl diagnose snapshot 명령어는 4가지 시나리오를 지원합니다. 시나리오를 지정하려면 --scenario 플래그를 사용합니다. 다음 목록에는 가능한 값이 나와 있습니다.

  • system: (기본값) 시스템 네임스페이스(kube-systemgke-system)의 스냅샷을 수집합니다.

  • system-with-logs: 로그가 있는 system 스냅샷을 수집합니다.

  • all: 모든 네임스페이스의 스냅샷을 수집합니다.

  • all-with-logs: 로그가 있는 all 스냅샷을 수집합니다.

4가지 시나리오 각각을 관리자 클러스터 또는 사용자 클러스터에서 사용할 수 있으므로 가능한 순열은 8개 있습니다. 다음 예시는 몇 가지 가능성을 보여줍니다.

system 시나리오를 사용하여 관리자 클러스터 스냅샷을 만들려면 다음을 실행합니다.

gkectl diagnose snapshot \
--kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--scenario=system

system-with-logs 시나리오를 사용하여 사용자 클러스터 스냅샷을 만들려면 다음을 실행합니다.

gkectl diagnose snapshot \
--kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[USER_CLUSTER_NAME] \
--scenario=system-with-logs

all 시나리오를 사용하여 사용자 클러스터 스냅샷을 만들려면 다음을 실행합니다.

gkectl diagnose snapshot \
--kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[USER_CLUSTER_NAME] \
--scenario=all

all-with-logs 시나리오를 사용하여 관리자 클러스터 스냅샷을 만들려면 다음을 실행합니다.

gkectl diagnose snapshot \
--kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--scenario=all-with-logs

--log-since을 사용하여 스냅샷 제한

system-with-logsall-with-logs 시나리오에서 --log-since 플래그를 사용하여 로그 수집을 최근의 기간으로 제한할 수 있습니다. 예를 들어 최근 2일 또는 최근 3시간의 로그만 수집할 수 있습니다. 기본적으로 diagnose snapshot는 모든 로그를 수집합니다.

로그 수집 기간을 제한하려면 다음을 따르세요.

gkectl diagnose snapshot --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[CLUSTER_NAME] \
--scenario=system-with-logs \
--log-since=[DURATION]

[DURATION]2d 또는 3h과 같은 시간 값으로 바꿉니다.

참고

  • --log-since 플래그는 kubectljournalctl 로그에서만 지원됩니다.
  • --log-since과 같은 명령어 플래그는 맞춤설정된 스냅샷 구성에서 허용되지 않습니다.

스냅샷의 테스트 실행 수행

--dry-run 플래그를 사용하여 수행할 작업과 스냅샷 구성을 표시할 수 있습니다.

관리자 클러스터에서 테스트 실행을 수행하려면 다음 명령어를 입력합니다.

gkectl diagnose snapshot --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[ADMIN_CLUSTER_NAME] \
--dry-run

사용자 클러스터에서 테스트 실행을 수행하려면 다음 명령어를 입력합니다.

gkectl diagnose snapshot --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[USER_CLUSTER_NAME] \
--dry-run

스냅샷 구성 사용

네 가지 시나리오가 니즈를 충족하지 않으면 --snapshot-config 플래그로 스냅샷 구성 파일을 전달하여 맞춤설정된 스냅샷을 만들 수 있습니다.

gkectl diagnose snapshot --kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[USER_CLUSTER_NAME] \
--snapshot-config=[SNAPSHOT_CONFIG_FILE]

스냅샷 구성 생성

--scenario 플래그와 --dry-run 플래그를 전달하여 특정 시나리오의 스냅샷 구성을 생성할 수 있습니다. 예를 들어 사용자 클러스터의 기본 시나리오 스냅샷 구성(system)을 보려면 다음 명령어를 입력합니다.

gkectl diagnose snapshot \
--kubeconfig=[ADMIN_CLUSTER_KUBECONFIG] \
--cluster-name=[USER_CLUSTER_NAME] \
--scenario=system
--dry-run

출력은 다음과 비슷합니다.

numOfParallelThreads: 10
excludeWords:
- password
kubectlCommands:
- commands:
  - kubectl get clusters -o wide
  - kubectl get machines -o wide
  - kubectl get clusters -o yaml
  - kubectl get machines -o yaml
  - kubectl describe clusters
  - kubectl describe machines
  namespaces:
  - default
- commands:
  - kubectl version
  - kubectl cluster-info
  - kubectl get nodes -o wide
  - kubectl get nodes -o yaml
  - kubectl describe nodes
  namespaces: []
- commands:
  - kubectl get pods -o wide
  - kubectl get deployments -o wide
  - kubectl get daemonsets -o wide
  - kubectl get statefulsets -o wide
  - kubectl get replicasets -o wide
  - kubectl get services -o wide
  - kubectl get jobs -o wide
  - kubectl get cronjobs -o wide
  - kubectl get endpoints -o wide
  - kubectl get configmaps -o wide
  - kubectl get pods -o yaml
  - kubectl get deployments -o yaml
  - kubectl get daemonsets -o yaml
  - kubectl get statefulsets -o yaml
  - kubectl get replicasets -o yaml
  - kubectl get services -o yaml
  - kubectl get jobs -o yaml
  - kubectl get cronjobs -o yaml
  - kubectl get endpoints -o yaml
  - kubectl get configmaps -o yaml
  - kubectl describe pods
  - kubectl describe deployments
  - kubectl describe daemonsets
  - kubectl describe statefulsets
  - kubectl describe replicasets
  - kubectl describe services
  - kubectl describe jobs
  - kubectl describe cronjobs
  - kubectl describe endpoints
  - kubectl describe configmaps
  namespaces:
  - kube-system
  - gke-system
  - gke-connect.*
prometheusRequests: []
nodeCommands:
- nodes: []
  commands:
  - uptime
  - df --all --inodes
  - ip addr
  - sudo iptables-save --counters
  - mount
  - ip route list table all
  - top -bn1
  - sudo docker ps -a
  - ps -edF
  - ps -eo pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup
  - sudo conntrack --count
nodeFiles:
- nodes: []
  files:
  - /proc/sys/fs/file-nr
  - /proc/sys/net/nf_conntrack_max
seesawCommands: []
seesawFiles: []
nodeCollectors:
- nodes: []
f5:
  enabled: true
vCenter:
  enabled: true
  • numOfParallelThreads: 스냅샷을 만드는 데 사용된 동시 스레드 수입니다.

  • excludeWords: 스냅샷에서 제외할 단어 목록입니다(대소문자를 구분하지 않음). 이러한 단어가 포함된 줄은 스냅샷 결과에서 삭제됩니다. 'password'는 지정 여부와 관계없이 항상 제외됩니다.

  • kubectlCommands: 실행할 kubectl 명령어의 목록입니다. 결과가 저장됩니다. 명령어는 해당 네임스페이스에서 실행됩니다. kubectl logs 명령어의 경우 해당 네임스페이스의 모든 Pod와 컨테이너가 자동으로 추가됩니다. 네임스페이스 지정에 정규 표현식이 지원됩니다. 네임스페이스를 지정하지 않으면 default 네임스페이스가 가정됩니다.

  • nodeCommands: 해당 노드에서 실행할 명령어 목록입니다. 결과가 저장됩니다. 노드가 지정되지 않으면 대상 클러스터의 모든 노드가 고려됩니다.

  • nodeFiles: 해당 노드에서 수집할 파일의 목록입니다. 파일이 저장됩니다. 노드가 지정되지 않으면 대상 클러스터의 모든 노드가 고려됩니다.

  • seesawCommands: Seesaw 부하 분산기 정보를 수집하기 위해 실행할 명령어 목록입니다. 클러스터가 Seesaw 부하 분산기를 사용하면 결과가 저장됩니다.

  • seesawFiles: Seesaw 부하 분산기를 위해 수집할 파일 목록입니다.

  • nodeCollectors: eBPF 정보를 수집하기 위해 Cilium 노드를 위해 실행하는 수집기입니다.

  • f5: F5 BIG-IP 부하 분산기와 관련된 정보 수집을 사용 설정하는 플래그입니다.

  • vCenter: vCenter와 관련된 정보를 수집할 수 있는 플래그입니다.

  • prometheusRequests: Prometheus 요청 목록입니다. 결과가 저장됩니다.

Google Cloud Storage 버킷에 스냅샷 업로드

기록 보관, 분석, 저장을 더욱 쉽게 수행하기 위해 특정 사용자 클러스터의 모든 스냅샷을 Google Cloud Storage 버킷에 업로드할 수 있습니다. Google Cloud 지원팀의 도움이 필요한 경우에 특히 유용합니다.

명령어를 실행하기 전에 다음 설정 요구사항을 충족하는지 확인하세요.

  • 연결 프로젝트에서 storage-api.googleapis.com을 사용 설정합니다. 다른 프로젝트를 사용해도 되지만 연결 프로젝트를 사용하는 것이 좋습니다.
gcloud services enable --project=PROJECT_ID \
storage-api.googleapis.com
  • roles/storage.admin을 상위 프로젝트의 서비스 계정에 부여하고 --service-account-key-file 매개변수를 사용하여 서비스 계정 json 키 파일을 전달합니다. 모든 서비스 계정을 사용할 수 있지만 연결 등록 서비스 계정을 사용하는 것이 좋습니다. 자세한 내용은 서비스 계정을 참조하세요.
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member "serviceAccount:CONNECT_REGISTER_SERVICE_ACCOUNT" \
    --role "roles/storage.admin"

이러한 요구사항을 충족하는 경우 다음 명령어로 스냅샷을 업로드할 수 있습니다.

gkectl diagnose snapshot --upload-to BUCKET_NAME --cluster-name CLUSTER_NAME --service-account-key-file SERVICE_ACCOUNT_KEY_FILE

SERVICE_ACCOUNT_KEY_FILE을 서비스 계정 키 파일 이름으로 바꿉니다.

출력 예시:

Using "system" snapshot configuration...
Taking snapshot of user cluster CLUSTER_NAME...
Setting up CLUSTER_NAME ssh key...DONE
Using the gke-connect register service account key...
Setting up Google Cloud Storage bucket for uploading the snapshot...DONE
Taking snapshots in 10 thread(s)...
   ...
Snapshot succeeded.
Snapshots saved in "SNAPSHOT_FILE_PATH".
Uploading snapshot to Google Cloud Storage......  DONE
Uploaded the snapshot successfully to gs://BUCKET_NAME/CLUSTER_NAME/SNAPSHOT_FILE_NAME.

알려진 문제

버전 1.1.2-gke.0: 경로가 여러 데이터센터로 확인

VMware용 Anthos 클러스터 출시 노트를 참조하세요.

버전 1.1.x: 볼륨이 머신에 연결되지 않음

VMware용 Anthos 클러스터 출시 노트를 참조하세요.