확장 프로그램 정책을 사용하여 VM 확장 프로그램 관리

VM 확장 프로그램 관리자는 확장 프로그램 정책을 사용하여 VM 확장 프로그램을 대규모로 관리합니다. 자세한 내용은 VM 확장 프로그램 관리자 정보를 참고하세요. 이 문서에서는 VM 확장 프로그램 정책을 보고, 업데이트하고, 삭제하는 방법을 설명합니다.

IAM 역할 및 권한

VM 확장 프로그램 정책을 보고, 수정하고, 삭제하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 VM 확장 프로그램 정책을 보고, 수정하고, 삭제하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

VM 확장 프로그램 정책을 보고, 수정하고, 삭제하려면 다음 권한이 필요합니다.

  • 확장 프로그램 정책을 보려면 다음 단계를 따르세요. compute.vmExtensionPolicies.list
  • 확장 프로그램 정책의 세부정보를 보려면 다음 단계를 따르세요. compute.vmExtensionPolicies.get
  • 확장 프로그램 정책을 수정하려면 다음 권한이 필요합니다. compute.vmExtensionPolicies.update
  • 확장 프로그램 정책을 삭제하려면 compute.vmExtensionPolicies.delete 권한

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

Compute Engine의 IAM 역할 및 권한에 대한 자세한 내용은 Compute Engine 역할 및 권한을 참고하세요.

확장 프로그램 정책 보기

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 프로젝트의 VM 확장 프로그램 정책 목록을 보거나 특정 정책의 세부정보를 볼 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 VM 확장 프로그램 정책 페이지로 이동합니다.

    VM 확장 프로그램 정책으로 이동

    이 페이지에는 프로젝트의 모든 VM 확장 프로그램 정책이 나열됩니다.
  2. 특정 확장 프로그램 정책의 세부정보를 보려면 정책 이름을 클릭합니다.

gcloud

프로젝트의 모든 확장 프로그램 정책을 보려면 gcloud beta compute zone-vm-extension-policies list 명령어를 사용합니다.

gcloud beta compute zone-vm-extension-policies list \
  --project=PROJECT_ID \
  --zone=ZONE \
  --page-size=PAGE_SIZE

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • ZONE: VM 확장 프로그램 정책을 나열할 영역의 이름입니다.
  • PAGE_SIZE: 페이지당 반환할 최대 결과 수입니다.

특정 확장 프로그램 정책의 세부정보를 보려면 gcloud beta compute zone-vm-extension-policies describe 명령어를 사용합니다.

gcloud beta compute zone-vm-extension-policies describe POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE

다음을 바꿉니다.

  • POLICY_NAME: 설명할 VM 확장 프로그램 정책의 이름입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • ZONE: VM 확장 프로그램 정책이 있는 Google Cloud 영역입니다.

VM 확장 프로그램 정책을 업데이트하여 확장 프로그램 수정

정책을 업데이트하면 VM 확장 프로그램 관리자가 일반적으로 1분 이내에 모든 해당 VM에 변경사항을 출시합니다. 포함 라벨을 수정하면 업데이트된 라벨과 일치하는지 여부에 따라 새 VM에 확장 프로그램이 설치되거나 기존 VM에서 확장 프로그램이 제거될 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 VM 확장 프로그램 정책 페이지로 이동합니다.

    VM 확장 프로그램 정책으로 이동

  2. 업데이트할 정책을 선택합니다.
  3. 수정을 클릭합니다.
  4. 설명, 우선순위, 확장 프로그램 또는 대상 VM 인스턴스를 수정합니다.
  5. 저장을 클릭합니다.

gcloud

gcloud beta compute zone-vm-extension-policies update 명령어를 사용하여 기존 VM 확장 프로그램 정책을 수정합니다. gcloud를 사용하여 정책을 업데이트하면 요청이 완전한 대체 역할을 합니다. 생략한 선택적 필드는 수정된 정책의 기존 값을 유지하는 대신 기본값으로 되돌아갑니다.

VM 확장 프로그램 정책을 업데이트하려면 다음 명령어를 실행합니다.

  gcloud beta compute zone-vm-extension-policies update POLICY_NAME \
      --zone=ZONE \
      --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \
      --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \
      --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \
      --inclusion-labels=KEY_1=VALUE_1 \
      --priority=PRIORITY_NUMBER \
      --description="DESCRIPTION"

다음을 바꿉니다.

  • POLICY_NAME: 업데이트할 VM 확장 프로그램 정책의 이름입니다.
  • ZONE: 정책이 적용되는 Google Cloud 영역입니다.
  • EXTENSION_NAME_1, EXTENSION_NAME_2: 업데이트할 확장 프로그램의 이름 확장 프로그램을 하나 이상 지정해야 합니다.
  • VERSION_1: 첫 번째 VM 확장 프로그램의 버전입니다.
  • VERSION_2: 두 번째 VM 확장 프로그램의 버전입니다.
  • EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: 키가 확장 프로그램 이름이고 값이 해당 확장 프로그램의 구성 파일 경로인 쉼표로 구분된 키-값 쌍 목록입니다. 이 경로는 확장 프로그램을 설치하는 VM이 아닌 gcloud 명령어를 실행하는 VM에 있습니다.

    또는 구성을 인라인 문자열로 제공하려면 --config-from-file 대신 --config 플래그를 사용합니다(예: EXTENSION_NAME_1="CONFIG_1"). --config-from-file 또는 --config 중 하나를 사용할 수 있지만 동일한 명령어에서 둘 다 사용할 수는 없습니다.

  • KEY_1=VALUE_1: 선택기의 포함 라벨을 정의하는 쉼표로 구분된 키-값 쌍 목록입니다. VM이 타겟팅되려면 선택기에 지정된 모든 라벨이 있어야 합니다. --inclusion-labels를 여러 번 지정하면 정책은 제공된 선택기 중 하나라도 일치하는 VM을 타겟팅합니다 (논리합). 이 플래그를 생략하면 정책이 지정된 영역의 모든 VM을 타겟팅합니다.

  • PRIORITY_NUMBER: VM 확장 프로그램 정책의 우선순위 번호입니다.

  • DESCRIPTION: VM 확장 프로그램 정책에 대한 설명입니다.

VM 확장 프로그램 정책을 삭제하여 확장 프로그램 제거

정책을 삭제하면 VM 확장 프로그램 관리자가 해당 정책으로 관리되는 VM에서 확장 프로그램을 제거합니다. 하지만 다른 활성 상태의 우선순위가 낮은 정책이 VM에 적용되고 동일한 확장 프로그램을 선언하는 경우 우선순위가 낮은 정책에 따라 확장 프로그램이 해당 VM에 설치된 상태로 유지됩니다.

VM 확장 프로그램 관리자는 정책 삭제 후 1분 이내에 액세스 가능한 모든 VM에서 확장 프로그램을 삭제합니다. 게스트 에이전트가 삭제되거나 VM이 삭제되어 VM에 액세스할 수 없는 경우 VM 확장 프로그램 관리자는 확장 프로그램 삭제를 건너뜁니다. 이러한 VM을 다시 사용할 수 있게 되면 VM Extension Manager가 해당 시점에 확장 프로그램을 삭제합니다.

콘솔

  1. Google Cloud 콘솔에서 VM 확장 프로그램 정책 페이지로 이동합니다.

    VM 확장 프로그램 정책으로 이동

  2. 삭제할 정책을 클릭합니다.
  3. 삭제를 클릭합니다.
  4. 확인 대화상자에서 삭제를 클릭합니다.

gcloud

gcloud beta compute zone-vm-extension-policies delete 명령어를 사용하여 기존 VM 확장 프로그램 정책을 삭제합니다.

gcloud beta compute zone-vm-extension-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --zone=ZONE

다음을 바꿉니다.

  • POLICY_NAME: 삭제할 VM 확장 프로그램 정책의 이름입니다.
  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • ZONE: 정책이 있는 Google Cloud 영역입니다.

VM 확장 프로그램 문제 해결

이 섹션에서는 VM 확장 프로그램 관련 문제를 해결하는 방법을 설명합니다.

확장 프로그램이 설치되어 있는지 확인

VM에서 다음을 확인하여 확장 프로그램이 설치되었는지 확인할 수 있습니다.

  • VM에 연결하고 실행 중인 프로세스를 확인합니다.

    다음 표에는 각 확장 프로그램의 프로세스 이름이 나와 있습니다.

    확장 프로그램 이름 확장 프로그램 프로세스 이름
    google-cloud-sap-extension google_cloud_sap_agent
    google-cloud-workload-extension google_cloud_workload_agent
    ops-agent ops-agent

    Linux

    ps aux | grep 'EXTENSION_PROCESS_NAME'
    EXTENSION_PROCESS_NAME을 확장 프로그램의 프로세스 이름으로 바꿉니다. 예를 들어 운영 에이전트 프로세스를 확인하려면 다음 명령어를 실행합니다.
    ps aux | grep 'ops-agent'

    Windows

    tasklist | findstr "EXTENSION_PROCESS_NAME"
    EXTENSION_PROCESS_NAME을 확장 프로그램의 프로세스 이름으로 바꿉니다. 예를 들어 운영 에이전트 프로세스를 확인하려면 다음 명령어를 실행합니다.
    tasklist | findstr "ops-agent"

    Ops Agent용 Linux VM에서 ps 명령어의 출력은 다음과 비슷한 항목을 표시할 수 있습니다.

    ....
    /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3
    ....
  • 게스트 에이전트 로그 사용 설정 및 검토 확장 프로그램이 설치되고 시작된 시점은 게스트 에이전트 로그에 표시됩니다.

    다음은 운영 에이전트 확장 프로그램이 설치된 경우 게스트 에이전트 로그에 표시될 수 있는 출력의 예입니다.

    my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]]
    my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-centrall-a/ops-agent
    my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87
    my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87)
    my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87"
    my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"

설치 문제 해결하기

정책을 만든 후 VM에 확장 프로그램이 설치되지 않으면 다음 단계에 따라 문제를 해결하세요.

  1. 정책 시행을 기다립니다. 재시도를 포함하여 정책이 적용되는 데 최대 1시간이 걸릴 수 있습니다.
  2. 정책에 지정된 포함 라벨이 VM의 라벨과 일치하는지 확인합니다.
  3. 잠재적인 설치 오류를 식별하려면 게스트 에이전트의 디버그 로깅을 사용 설정하세요.
  4. 기본 문제를 해결한 후 다음 방법 중 하나를 사용하여 설치를 다시 시도하세요.

    • 정책 다시 만들기: 정책을 삭제한 다음 새 정책을 만듭니다.
    • 임시 우선순위가 높은 정책 사용: 여러 VM에 영향을 미치는 정책을 다시 만들지 않으려면 임시 우선순위가 높은 정책을 사용하여 특정 VM에 설치를 다시 시도하세요.

      1. 설치가 실패한 VM에 새 라벨을 추가합니다. 예를 들어 status=failed 라벨을 추가합니다.
      2. 새 라벨을 타겟팅하는 우선순위가 더 높은 정책을 만듭니다. 예를 들어 실패한 원래 정책의 기본 우선순위가 1000인 경우 우선순위가 더 높은 정책(예: 500)을 만듭니다.
        gcloud beta compute zone-vm-extension-policies create temp-policy  
        --project=test-project
        --zone=us-central1-f
        --extensions=ops-agent
        --config-from-file=ops-agent="/usr/ops-agent-config.yaml"
        --priority=500
        --inclusion-labels=status=failed
      3. 확장 프로그램이 성공적으로 설치되면 임시 정책을 삭제하고 VM에서 라벨을 삭제합니다. 원래 정책이 여전히 활성 상태이므로 확장 프로그램이 설치된 상태로 유지됩니다.

게스트 에이전트의 디버그 로그 보기

디버그 로깅을 사용 설정하려면 게스트 에이전트 구성 파일의 Core 섹션에 다음과 같이 로그 수준 및 상세도 설정을 추가합니다.

Linux

  1. /etc/default/instance_configs.cfg에 있는 게스트 에이전트 구성 파일을 엽니다.
  2. 파일에 다음 행을 추가합니다. [Core] 섹션이 이미 있는 경우 log_levellog_verbosity 설정을 추가합니다.

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. 다음 명령어를 실행하여 게스트 에이전트 관리자를 다시 시작합니다.

     sudo systemctl restart google-guest-agent-manager
    
  4. 확장 프로그램 설치 중 게스트 에이전트 활동의 로그를 보려면 다음 명령어를 실행합니다.

    journalctl -u google-guest-agent-manager
    

Windows

  1. C:\Program Files\Google\Compute Engine\instance_configs.cfg에 있는 게스트 에이전트 구성 파일을 엽니다.
  2. 파일에 다음 행을 추가합니다. [Core] 섹션이 이미 있는 경우 log_levellog_verbosity 설정을 추가합니다.

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. Windows 관리자로 다음 명령어를 실행하여 게스트 에이전트 관리자를 다시 시작합니다.

     net stop GCEAgentManager
     net start GCEAgentManager
    
  4. 확장 프로그램 설치 중 게스트 에이전트 활동의 로그를 보려면 PowerShell에서 다음 명령어를 실행합니다.

    Get-Eventlog -Source google_guest_agent_manager -LogName Application
    

디버그 로그를 사용 설정한 후 다음과 같은 일반적인 오류가 있는지 확인합니다.

  • 디스크 공간 부족: 로그에 디스크 공간이 부족하다고 보고되면 디스크의 공간을 확보하거나 디스크 크기를 조절하여 공간을 추가합니다.
  • 과도한 리소스 사용량: 과도한 메모리 또는 CPU 사용량으로 인해 게스트 에이전트가 확장 프로그램을 중지했음을 로그에서 나타내는 경우 VM의 머신 유형을 리소스가 더 많은 유형으로 변경합니다.

다음 단계