클러스터 문제 진단을 위한 스냅샷 만들기

클러스터 중 하나에 문제가 발생하면 클라우드 고객 관리에서 도움을 얻을 수 있습니다. 고객 관리에 문의할 때 문제 진단을 위해 클러스터 '스냅샷'이 필요할 수도 있습니다. 스냅샷은 클러스터 및 노드 구성 파일을 캡처해서 하나의 tar 파일로 만든 것입니다.

이 문서에서는 클러스터에 대해 기본 스냅샷 또는 맞춤설정된 스냅샷을 만드는 방법을 설명합니다. 또한 클러스터에 특정 오류가 발생했을 때 스냅샷을 만드는 방법을 설명합니다.

기본 스냅샷

다음 섹션에서는 표준 스냅샷에 포함된 항목과 이를 만드는 방법을 설명합니다. 맞춤설정된 스냅샷에 대한 자세한 내용은 맞춤설정된 스냅샷을 참조하세요.

기본 스냅샷에 포함되는 정보는 무엇인가요?

클러스터 스냅샷은 클러스터의 구성 파일 및 로그가 포함된 tar 파일입니다. 특히, 명령어의 기본 구성에는 클러스터에 대한 다음 정보가 포함됩니다.

  • Kubernetes 버전.

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

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

  • Google Distributed Cloud의 VM 런타임과 클러스터에서 실행되는 VM 및 VM 관련 리소스에 대한 정보. 기본적으로 수집되는 항목과 VM별 스냅샷을 만드는 방법에 대한 자세한 내용은 이 문서의 스냅샷의 VM 정보를 참조하세요.

  • bmctl check cluster --snapshot 명령어의 로그

클러스터의 사용자 인증 정보는 기본 스냅샷에 포함되지 않습니다. Cloud Customer Care에서 이 정보를 요청하면 클러스터 정보 검색을 참조하세요.

스냅샷 명령어를 실행할 때 수집되는 전체 정보 목록은 세부 구성 파일 섹션에 표시된 구성 파일을 참조하세요. 이 구성 파일은 기본 스냅샷을 만들 때 실행되는 명령어를 보여줍니다.

기본 스냅샷을 만드는 방법

bmctl check cluster 명령어는 클러스터의 스냅샷을 만듭니다. 이 명령어를 사용하여 다음 작업 중 하나를 수행할 수 있습니다.

  • 스냅샷을 만들고 이 스냅샷을 Cloud Storage 버킷에 자동으로 업로드합니다.
  • 클러스터의 스냅샷을 만들고 명령어를 실행하는 로컬 머신에 스냅샷 파일을 저장합니다.

방법 #1: 기본 스냅샷을 만들고 Cloud Storage 버킷으로 자동 업로드

스냅샷을 만들고 Cloud Storage 버킷으로 업로드하려면 다음을 수행합니다.

  1. API 및 서비스 계정을 설정합니다.

    1. Google Cloud 프로젝트 내에서 Cloud Storage API를 사용 설정합니다.
    2. 서비스 계정이 데이터를 Cloud Storage로 업로드할 수 있도록 서비스 계정에 storage.admin 역할을 부여합니다.
    3. 서비스 계정에 대해 JSON 키를 다운로드합니다.

    자세한 내용은 Google 서비스 및 서비스 계정 사용 설정을 참조하세요.

  2. 다음 bmctl 명령어를 실행하여 스냅샷을 만들고 Cloud Storage 버킷으로 자동으로 업로드합니다.

    bmctl check cluster --snapshot --cluster=CLUSTER_NAME \
        --kubeconfig=KUBECONFIG_PATH \
        --upload-to BUCKET_NAME \
        [--service-account-key-file SERVICE_ACCOUNT_KEY_FILE]
    

    명령어에서 다음 항목을 클러스터 환경에 해당하는 정보로 바꿉니다.

    • CLUSTER_NAME: 스냅샷을 만들려는 클러스터의 이름입니다.
    • KUBECONFIG_PATH: 관리자 클러스터 kubeconfig 파일의 경로 (kubeconfig 파일의 경로는 기본적으로 bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig입니다. 그러나 WORKSPACE_DIR 플래그로 작업공간을 지정한 경우 경로는 WORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig입니다.)
    • BUCKET_NAME: 소유한 Cloud Storage 버킷의 이름입니다.
    • SERVICE_ACCOUNT_KEY_FILE: --service-account-key-file 플래그를 제공하지 않으면 bmctlGOOGLE_APPLICATION_CREDENTIALS 환경 변수에서 서비스 계정 키 파일의 경로를 가져오려고 시도합니다.
  3. Google Cloud 지원팀의 업데이트된 클러스터 스냅샷 보기 허용에 설명된 대로 서비스 계정을 만들고 Cloud Customer Care와 액세스를 공유합니다.

방법 2: 로컬 머신에 기본 스냅샷 만들기

다음 명령어로 생성된 클러스터의 상태를 캡처할 수 있습니다.

bmctl check cluster --snapshot --cluster=CLUSTER_NAME \
    --kubeconfig=KUBECONFIG_PATH

다음을 바꿉니다.

  • CLUSTER_NAME: 대상 클러스터의 이름입니다.

  • KUBECONFIG_PATH: 관리자 클러스터 kubeconfig 파일의 경로 (kubeconfig 파일의 경로는 기본적으로 bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig입니다. 그러나 WORKSPACE_DIR 플래그로 작업공간을 지정한 경우 경로는 WORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig입니다.)

이 명령어는 로컬 머신에 tar 파일을 출력합니다. 이 tar 파일의 이름은 snapshot-CLUSTER_NAME-TIMESTAMP.tar.gz 형식입니다. 여기서 TIMESTAMP는 파일이 생성된 날짜 및 시간을 나타냅니다. 이 tar 파일에는 클러스터의 시스템 구성요소 및 머신에 대한 관련 디버그 정보가 포함됩니다.

이 명령어를 실행하면 gke-system, gke-connect, capi-system, capi-webhook-system, cert-manager, capi-kubeadm-bootstrap-system 네임스페이스에서 포드에 대한 정보가 수집됩니다.

하지만 --snapshot-scenario all 플래그를 사용해서 수집되는 진단 정보 범위를 넓힐 수 있습니다. 이 플래그는 클러스터의 모든 포드를 포함하도록 진단 스냅샷 범위를 늘립니다.

bmctl check cluster --snapshot --snapshot-scenario all \
    --cluster=CLUSTER_NAME \
    --kubeconfig=KUBECONFIG_PATH

스냅샷 시나리오

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

  • system: 로그를 포함한 시스템 구성요소의 스냅샷을 수집합니다.

  • all: 로그를 포함한 모든 포드의 스냅샷을 수집합니다.

두 가지 시나리오를 각각 관리자 클러스터 또는 사용자 클러스터에 사용할 수 있습니다. 예를 들어 system 시나리오를 사용하여 관리자 클러스터 스냅샷을 만들려면 다음을 실행합니다.

bmctl check cluster --snapshot --snapshot-scenario system \
    --cluster=ADMIN_CLUSTER_NAME \
    --kubeconfig=ADMIN_KUBECONFIG_PATH

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

bmctl check cluster --snapshot --snapshot-scenario all \
    --cluster=USER_CLUSTER_NAME \
    --kubeconfig=ADMIN_KUBECONFIG_PATH

스냅샷의 테스트 실행 수행

--snapshot-dry-run 플래그를 사용하면 명령어가 스냅샷을 만들지 않습니다. 대신 스냅샷 명령어가 수행할 작업을 표시하고 스냅샷 구성 파일을 출력합니다. 스냅샷 구성 파일에 대한 자세한 내용은 맞춤설정된 스냅샷을 만드는 방법을 참조하세요.

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

bmctl check cluster --snapshot --snapshot-dry-run \
    --cluster=ADMIN_CLUSTER_NAME \
    --kubeconfig=ADMIN_KUBECONFIG_PATH

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

bmctl check cluster --snapshot --snapshot-dry-run \
    --cluster=USER_CLUSTER_NAME \
    --kubeconfig=ADMIN_KUBECONFIG_PATH

특정 기간의 로그 가져오기

--since 플래그를 사용하면 특히 관심 있는 기간의 로그를 검색할 수 있습니다. 이러한 방식으로 지난 몇 초, 몇 분, 몇 시간 동안 발생한 더 작고 집중적인 로깅 스냅샷을 만들 수 있습니다.

예를 들어 다음 bmctl 명령어는 지난 3시간 동안 발생한 로깅의 스냅샷을 만듭니다.

bmctl check cluster --snapshot --since=3h \
    --cluster=CLUSTER_NAME \
    --kubeconfig=ADMIN_KUBECONFIG_PATH

스냅샷이 임시로 저장되는 디렉터리 지정

--snapshot-temp-output-dir 플래그를 사용하여 스냅샷이 임시로 저장되는 디렉터리를 지정할 수 있습니다.

bmctl check cluster --snapshot --snapshot-temp-output-dir=TEMP_OUTPUT_DIR \
    --cluster=CLUSTER_NAME \
    --kubeconfig=ADMIN_KUBECONFIG_PATH

디렉터리를 지정하지 않으면 스냅샷은 /tmp 디렉터리에 임시로 저장됩니다. 예를 들어 기본 /tmp 디렉터리에서 공간이 제한된 경우 --snapshot-temp-output-dir 옵션을 사용하는 것이 좋습니다.

콘솔 로깅 차단

스냅샷 실행 중에 로그 메시지가 콘솔에 표시되지 않도록 --quiet 플래그를 사용할 수 있습니다. 대신 콘솔 로그가 스냅샷의 일부로 'bmctl_diagnose_snapshot.log' 파일에 저장됩니다.

다음 명령어를 실행하여 로그 메시지가 콘솔에 표시되지 않도록 합니다.

bmctl check cluster --snapshot --quiet \
    --cluster=CLUSTER_NAME \
    --kubeconfig=ADMIN_KUBECONFIG_PATH

맞춤설정된 스냅샷

다음 이유로 인해 클러스터에 대해 맞춤설정된 스냅샷을 만들어야 할 수도 있습니다.

  • 기본 스냅샷에 제공되는 것보다 더 많은 클러스터에 대한 정보를 포함하기 위해
  • 기본 스냅샷에 있는 일부 정보를 제외하기 위해

맞춤설정된 스냅샷을 만드는 방법

맞춤설정된 스냅샷을 만들려면 스냅샷 구성 파일을 사용해야 합니다. 다음 단계에서는 구성 파일을 만들고, 이를 수정하고, 이를 사용해서 클러스터에 대해 맞춤설정된 스냅샷을 만드는 방법을 설명합니다.

  1. 클러스터에서 다음 명령어를 실행하고 출력을 파일에 기록하여 스냅샷 구성 파일을 만듭니다.

    bmctl check cluster \
        --snapshot --snapshot-dry-run --cluster CLUSTER_NAME \
        --kubeconfig KUBECONFIG_PATH
    
  2. 맞춤설정된 스냅샷에 표시하려는 정보 유형을 정의합니다. 이렇게 하려면 1단계에서 만든 스냅샷 구성 파일을 수정합니다. 예를 들어 특정 노드의 실행 시간과 같이 스냅샷에 추가 정보를 포함하고 싶으면 구성 파일에서 관련 섹션에 Linux 명령어 uptime을 추가합니다. 다음 구성 파일 스냅샷은 스냅샷 명령어를 사용해서 노드 10.200.0.3에 대해 uptime 정보를 제공하는 방법을 보여줍니다. 이 정보는 표준 스냅샷에 표시되지 않습니다.

    ...
    nodeCommands:
    - nodes:
      - 10.200.0.3
      commands:
      - uptime
    ...
    
  3. 구성 파일을 수정해서 원하는 스냅샷 유형을 정의한 다음에는 다음 명령어를 실행하여 맞춤설정된 스냅샷을 만듭니다.

    bmctl check cluster --snapshot --snapshot-config SNAPSHOT_CONFIG_FILE \
        --cluster CLUSTER_NAME--kubeconfig KUBECONFIG_PATH
    

    --snapshot-config 플래그는 bmctl 명령어가 스냅샷 구성 파일 내용을 사용해서 스냅샷에 표시되는 정보를 정의하도록 지시합니다.

세부 구성 파일

다음 샘플 스냅샷 구성 파일은 스냅샷을 만드는 데 사용되는 표준 명령어 및 파일을 보여주지만, 추가 진단 정보가 필요한 경우 명령어 및 파일을 더 추가할 수 있습니다.

numOfParallelThreads: 10
excludeWords:
- password
nodeCommands:
- nodes:
  - 10.200.0.3
  - 10.200.0.4
  commands:
  - uptime
  - df --all --inodes
  - ip addr
  - ip neigh
  - iptables-save --counters
  - mount
  - ip route list table all
  - top -bn1 || true
  - docker info || true
  - docker ps -a || true
  - crictl ps -a || true
  - docker ps -a | grep anthos-baremetal-haproxy | cut -d ' ' -f1 | head -n 1 | xargs
    sudo docker logs || true
  - docker ps -a | grep anthos-baremetal-keepalived | cut -d ' ' -f1 | head -n 1 |
    xargs sudo docker logs || true
  - crictl ps -a | grep anthos-baremetal-haproxy | cut -d ' ' -f1 | head -n 1 | xargs
    sudo crictl logs || true
  - crictl ps -a | grep anthos-baremetal-keepalived | cut -d ' ' -f1 | head -n 1 |
    xargs sudo crictl logs || true
  - ps -edF
  - ps -eo pid,tid,ppid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm,args,cgroup
  - conntrack --count
  - dmesg
  - systemctl status -l docker || true
  - journalctl --utc -u docker
  - journalctl --utc -u docker-monitor.service
  - systemctl status -l kubelet
  - journalctl --utc -u kubelet
  - journalctl --utc -u kubelet-monitor.service
  - journalctl --utc --boot --dmesg
  - journalctl --utc -u node-problem-detector
  - systemctl status -l containerd || true
  - journalctl --utc -u containerd
  - systemctl status -l docker.haproxy || true
  - journalctl --utc -u docker.haproxy
  - systemctl status -l docker.keepalived || true
  - journalctl --utc -u docker.keepalived
  - systemctl status -l container.haproxy || true
  - journalctl --utc -u container.haproxy
  - systemctl status -l container.keepalived || true
  - journalctl --utc -u container.keepalived
nodeFiles:
- nodes:
  - 10.200.0.3
  - 10.200.0.4
  files:
  - /proc/sys/fs/file-nr
  - /proc/sys/net/netfilter/nf_conntrack_max
  - /proc/sys/net/ipv4/conf/all/rp_filter
  - /lib/systemd/system/kubelet.service
  - /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
  - /lib/systemd/system/docker.service || true
  - /etc/systemd/system/containerd.service || true
  - /etc/docker/daemon.json || true
  - /etc/containerd/config.toml || true
  - /etc/systemd/system/container.keepalived.service || true
  - /etc/systemd/system/container.haproxy.service || true
  - /etc/systemd/system/docker.keepalived.service || true
  - /etc/systemd/system/docker.haproxy.service || true
nodeSSHKey: ~/.ssh/id_rsa # path to your ssh key file

구성 파일에 있는 다음 항목은 위에서 샘플 구성 파일에 표시되는 것과 다르게 보일 수 있습니다.

  • nodeCommandsnodeFiles 섹션에 있는 노드 IP 주소
  • 클러스터의 nodeSSHKey 경로

구성 파일의 필드

스냅샷 구성 파일은 YAML 형식입니다. 구성 파일에는 다음 필드가 포함됩니다.

  • numOfParallelThreads: 스냅샷 루틴은 일반적으로 여러 명령어를 실행합니다. 여러 동시 스레드를 사용하면 루틴을 더 빠르게 실행할 수 있습니다. 앞의 샘플 구성 파일에 나온 것처럼 numOfParallelThreads10으로 설정하는 것이 좋습니다. 스냅샷이 너무 오래 걸리면 이 값을 늘립니다.

  • excludeWords: 스냅샷에 대량의 클러스터 노드 데이터가 포함됩니다. 스냅샷을 공유할 때 보안 위험을 줄이려면 excludeWords를 사용합니다. 예를 들어 해당 비밀번호 문자열을 식별할 수 없도록 password를 제외합니다.

  • nodeCommands: 이 섹션에서는 다음 정보를 지정합니다.

    • nodes: 정보를 수집할 클러스터 노드의 IP 주소 목록입니다. 관리자 클러스터에 연결할 수 없을 때 스냅샷을 만들려면 노드 IP 주소를 하나 이상 지정합니다.

    • commands: 각 노드에서 실행할 명령어 및 인수 목록입니다. 각 명령어의 출력이 스냅샷에 포함됩니다.

  • nodeFiles: 이 섹션에서는 다음 정보를 지정합니다.

    • nodes: 파일을 수집할 클러스터 노드의 IP 주소 목록입니다. 관리자 클러스터에 연결할 수 없을 때 스냅샷을 만들려면 노드 IP 주소를 하나 이상 지정합니다.

    • files: 각 노드에서 검색할 파일의 목록입니다. 지정된 파일이 노드에서 발견되면 스냅샷에 포함됩니다.

  • nodeSSHKey: SSH 키 파일의 경로입니다. 관리자 클러스터에 연결할 수 없으면 이 필드가 필요합니다.

특정 오류가 발생할 때 스냅샷 만들기

설치 또는 업그레이드 중단 중에 기본 스냅샷을 만드는 방법

관리자, 하이브리드 또는 독립형 클러스터를 설치하거나 업그레이드할 때 bmctl은 다음 출력이 표시될 수 있는 시점에 멈출 수 있습니다.

  • 클러스터 kubeconfig가 준비될 때까지 기다리는 중입니다.
  • 클러스터가 준비될 때까지 기다리는 중입니다.
  • 노드 풀이 준비될 때까지 기다리는 중입니다.
  • 업그레이드가 완료될 때까지 기다리는 중입니다.

설치 또는 업그레이드가 중단되면 부트스트랩 클러스터를 사용하여 다음 명령어를 실행하여 클러스터의 스냅샷을 만들 수 있습니다.

bmctl check cluster --snapshot --cluster=CLUSTER_NAME \
    --kubeconfig=WORKSPACE_DIR/.kindkubeconfig

설치 또는 업그레이드 중단 중에 맞춤설정된 스냅샷을 만드는 방법

다음 단계는 설치 또는 업그레이드가 중단될 때 클러스터의 맞춤설정된 스냅샷을 만드는 방법을 보여줍니다.

  1. 아카이브에서 클러스터의 스냅샷 구성 파일을 검색합니다.

  2. 스냅샷에 필요한 정보가 포함되도록 스냅샷 구성 파일을 수정합니다.

  3. 다음 명령어를 실행하여 맞춤설정된 스냅샷을 만듭니다.

    bmctl check cluster --snapshot
        --snapshot-config=SNAPSHOT_CONFIG_FILE \
        --cluster=CLUSTER_NAME
        --kubeconfig=WORKSPACE_DIR/.kindkubeconfig
    

관리자 클러스터에 연결할 수 없을 때 맞춤설정된 스냅샷을 만드는 방법

관리자 클러스터에 연결할 수 없을 때 다음 명령어를 실행하여 클러스터에 대해 맞춤설정된 스냅샷을 만들 수 있습니다.

bmctl check cluster --snapshot --cluster CLUSTER_NAME
    --node-ssh-key SSH_KEY_FILE
    --nodes NODE_1_IP_ADDRESS, NODE_2_IP_ADDRESS, ...

명령어에서 다음 항목을 클러스터 환경에 해당하는 정보로 바꿉니다.

  • CLUSTER_NAME: 스냅샷을 만들려는 클러스터의 이름입니다.
  • SSH_KEY_FILE: 노드 SSH 키 파일의 경로입니다.
  • NODE_x_IP_ADDRESS: 정보가 필요한 클러스터 노드의 IP 주소입니다.

또는 노드 IP 주소를 별도의 줄에 나열할 수 있습니다.

bmctl check cluster
    --snapshot --cluster CLUSTER_NAME \
    --node-ssh-key SSH_KEY_FILE \
    --nodes NODE_1_IP_ADDRESS \
    --nodes NODE_2_IP_ADDRESS
  ...

스냅샷의 VM 정보

Google Distributed Cloud의 VM 런타임을 사용하여 베어메탈용 GKE에서 가상 머신(VM)을 만들고 관리하는 경우 스냅샷에서 관련 진단 정보를 수집할 수 있습니다. 스냅샷은 VM에서 문제를 진단하고 해결하는 데 사용되는 중요한 리소스입니다.

기본적으로 수집되는 항목

기본 스냅샷을 만들면 Google Distributed Cloud의 VM 런타임과 관련 리소스에 대한 정보가 포함됩니다. Google Distributed Cloud의 VM 런타임은 베어메탈용 GKE와 함께 번들로 제공되며 워크로드를 실행하는 클러스터에서 VMRuntime 커스텀 리소스를 사용할 수 있습니다. Google Distributed Cloud에서 VM 런타임을 사용 설정하지 않아도 스냅샷에는 계속 VMRuntime 커스텀 리소스 YAML 설명이 포함됩니다.

Google Distributed Cloud에서 VM 런타임을 사용 설정한 경우 스냅샷에는 클러스터에 있는 VM 관련 리소스(객체가 있는 경우)의 상태 및 구성 정보가 포함됩니다. VM 관련 리소스에는 포드, 배포, DaemonSet, ConfigMap과 같은 Kubernetes 객체가 포함됩니다.

vm-system 네임스페이스의 객체

다음 객체의 상태와 구성 정보는 생성된 스냅샷의 kubectlCommands/vm-system에 있습니다.

  • KubeVirt
  • VirtualMachineType
  • VMHighAvailabilityPolicy

다른 네임스페이스의 객체

VM(VirtualMachine)을 만들 때 네임스페이스를 지정할 수 있습니다. 네임스페이스를 지정하지 않으면 VM에서 default 네임스페이스를 가져옵니다. 이 섹션의 다른 객체(예: VirtualMachineInstance) 모두 해당 VM의 네임스페이스에 binding됩니다.

다음 객체의 상태와 구성 정보는 생성된 스냅샷의 kubectlCommands/VM_NAMESPACE에 있습니다. VM에 특정 네임스페이스를 설정하지 않은 경우 정보는 kubectlCommands/default에 있습니다.

  • VirtualMachine
  • VirtualMachineInstance
  • VirtualMachineDisk
  • GuestEnvironmentData
  • VirtualMachineAccessRequest
  • VirtualMachinePasswordResetRequest

네임스페이스가 아닌 객체

다음 객체는 네임스페이스가 아니므로 해당 정보는 생성된 스냅샷의 kubectlCommands에 직접 있습니다.

  • VMRuntime
  • DataVolume
  • CDI
  • GPUAllocation

스냅샷 구성 파일을 사용하여 VM 세부정보만 캡처

특히 VM의 문제를 진단하는 경우 스냅샷 구성 파일을 사용하여 수집된 정보를 VM 관련 세부정보로만 제한하고 수집된 VM 정보를 맞춤설정할 수 있습니다.

다음 스냅샷 구성 파일에서는 VM별 스냅샷을 구성하는 방법을 보여줍니다. 스냅샷에 대한 추가 정보를 수집하도록 추가 명령어를 포함할 수 있습니다.

---
kubectlCommands:
- commands:
    - kubectl get vm -o wide
    - kubectl get vmi -o wide
    - kubectl get gvm -o wide
    - kubectl get vm -o yaml
    - kubectl get vmi -o yaml
    - kubectl get gvm -o yaml
    - kubectl describe vm
    - kubectl describe vmi
    - kubectl describe gvm
  namespaces:
    - .*
- commands:
    - kubectl get virtualmachinetype -o wide
    - kubectl get virtualmachinedisk -o wide
    - kubectl get virtualmachinetype -o yaml
    - kubectl get virtualmachinedisk -o yaml
    - kubectl describe virtualmachinetype
    - kubectl describe virtualmachinedisk
  namespaces:
    - vm-system

스냅샷 구성 파일 사용 방법에 대한 자세한 내용은 이 문서의 맞춤설정된 스냅샷을 참조하세요.