Administra extensiones de VM con políticas de extensión

VM Extension Manager usa políticas de extensión para administrar tus extensiones de VM a gran escala. Para obtener más información, consulta Acerca de VM Extension Manager. En este documento, se describe cómo ver, actualizar y borrar políticas de extensión de VM.

Permisos y funciones de IAM

Para obtener los permisos que necesitas para ver, modificar y borrar políticas de extensiones de VM, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para ver, modificar y borrar las políticas de extensiones de VM. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para ver, modificar y borrar las políticas de extensión de VM:

  • Para ver las políticas de extensiones, haz lo siguiente: compute.vmExtensionPolicies.list
  • Para ver los detalles de una política de extensiones, haz lo siguiente: compute.vmExtensionPolicies.get
  • Para modificar las políticas de extensiones, haz lo siguiente: compute.vmExtensionPolicies.update
  • Para borrar políticas de extensiones, haz lo siguiente: compute.vmExtensionPolicies.delete

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener más información sobre los roles y permisos de IAM en Compute Engine, consulta Roles y permisos de Compute Engine.

Consulta las políticas de extensiones

Puedes ver una lista de las políticas de extensiones de VM en tu proyecto o los detalles de una política específica con la consola de Google Cloud o la CLI de Google Cloud.

Console

  1. En la consola de Google Cloud , ve a la página Políticas de extensiones de VM.

    Ir a Políticas de extensión de VM

    En esta página, se enumeran todas las políticas de extensión de VM en tu proyecto.
  2. Para ver los detalles de una política de extensión específica, haz clic en el nombre de la política.

gcloud

Para ver todas las políticas de extensiones en un proyecto, usa el comando 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

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
  • ZONE: Es el nombre de la zona en la que deseas enumerar las políticas de extensión de VM.
  • PAGE_SIZE: Es la cantidad máxima de resultados que se mostrarán por página.

Para ver los detalles de una política de extensión específica, usa el comando gcloud beta compute zone-vm-extension-policies describe:

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

Reemplaza lo siguiente:

  • POLICY_NAME: Es el nombre de la política de extensión de VM que deseas describir.
  • PROJECT_ID: El ID de tu proyecto Google Cloud .
  • ZONE: Es la Google Cloud zona en la que se encuentra la política de extensión de VM.

Modifica extensiones actualizando una política de extensión de VM

Cuando actualizas una política, VM Extension Manager implementa los cambios en todas las VMs aplicables, por lo general, en un plazo de un minuto. Si modificas las etiquetas de inclusión, es posible que las extensiones se instalen en VMs nuevas o se desinstalen de VMs existentes según si coinciden con las etiquetas actualizadas.

Console

  1. En la consola de Google Cloud , ve a la página Políticas de extensiones de VM.

    Ir a Políticas de extensión de VM

  2. Selecciona la política que deseas actualizar.
  3. Haz clic en Editar.
  4. Modifica la Descripción, la Prioridad, las Extensiones o las Instancias de VM de destino.
  5. Haz clic en Guardar.

gcloud

Usa el comando gcloud beta compute zone-vm-extension-policies update para modificar una política de extensión de VM existente. Cuando actualizas una política con gcloud, la solicitud actúa como un reemplazo completo. Los campos opcionales que omitas volverán a sus valores predeterminados en lugar de conservar los valores existentes de la política modificada.

Para actualizar una política de extensión de VM, ejecuta el siguiente comando:

  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"

Reemplaza lo siguiente:

  • POLICY_NAME: Es el nombre de la política de extensión de VM que se actualizará.
  • ZONE: Es la Google Cloud zona en la que se aplica la política.
  • EXTENSION_NAME_1, EXTENSION_NAME_2: Son los nombres de las extensiones que se actualizarán. Debes especificar al menos una extensión.
  • VERSION_1: Es la versión de la primera extensión de VM.
  • VERSION_2: Es la versión de la segunda extensión de VM.
  • EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: Es una lista separada por comas de pares clave-valor en la que la clave es el nombre de la extensión y el valor es la ruta de acceso al archivo de configuración de esa extensión. Esta ruta de acceso se encuentra en la VM en la que ejecutas el comando gcloud, no en la VM en la que instalas la extensión.

    Como alternativa, para proporcionar la configuración como una cadena intercalada, usa la marca --config en lugar de --config-from-file, por ejemplo, EXTENSION_NAME_1="CONFIG_1". Puedes usar --config-from-file o --config, pero no ambos en el mismo comando.

  • KEY_1=VALUE_1: Es una lista separada por comas de pares clave-valor que definen etiquetas de inclusión para un selector. Las VMs deben tener todas las etiquetas especificadas en un selector para que se les aplique la segmentación. Si especificas --inclusion-labels varias veces, la política se aplica a las VMs que coinciden con cualquiera de los selectores proporcionados (OR lógica). Si omites esta marca, la política se aplicará a todas las VMs de la zona especificada.

  • PRIORITY_NUMBER: Es el número de prioridad de la política de extensión de VM.

  • DESCRIPTION: Es una descripción de la política de extensiones de VM.

Desinstala extensiones borrando una política de extensión de VM

Cuando borras una política, VM Extension Manager desinstala las extensiones de las VMs que administra esa política. Sin embargo, si otra política activa de menor prioridad se aplica a una VM y declara la misma extensión, la extensión permanecerá instalada en esa VM según la política de menor prioridad.

VM Extension Manager quita las extensiones de todas las VMs accesibles en el plazo de un minuto después de que se borra la política. Si no se puede acceder a una VM porque se quitó el agente invitado o se borró la VM, VM Extension Manager omitirá el borrado de la extensión. Si una VM de este tipo vuelve a estar disponible, VM Extension Manager quitará las extensiones en ese momento.

Console

  1. En la consola de Google Cloud , ve a la página Políticas de extensiones de VM.

    Ir a Políticas de extensión de VM

  2. Selecciona la política que deseas borrar.
  3. Haz clic en Borrar.
  4. En el diálogo de confirmación, haz clic en Borrar.

gcloud

Usa el comando gcloud beta compute zone-vm-extension-policies delete para borrar una política de extensión de VM existente.

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

Reemplaza lo siguiente:

  • POLICY_NAME: Es el nombre de la política de extensión de VM que deseas borrar.
  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
  • ZONE: Es la Google Cloud zona en la que se encuentra la política.

Soluciona problemas de extensiones de VM

En esta sección, se describe cómo solucionar problemas con las extensiones de VM.

Cómo verificar que una extensión esté instalada

Para verificar que una extensión esté instalada, comprueba lo siguiente en la VM:

  • Conéctate a la VM y verifica si hay procesos en ejecución.

    En la siguiente tabla, se enumeran los nombres de los procesos para cada extensión:

    Nombre de la extensión Nombre del proceso de la extensión
    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'
    Reemplaza EXTENSION_PROCESS_NAME por el nombre del proceso de la extensión. Por ejemplo, para verificar el proceso del agente de operaciones, ejecuta el siguiente comando:
    ps aux | grep 'ops-agent'

    Windows

    tasklist | findstr "EXTENSION_PROCESS_NAME"
    Reemplaza EXTENSION_PROCESS_NAME por el nombre del proceso de la extensión. Por ejemplo, para verificar el proceso del agente de operaciones, ejecuta el siguiente comando:
    tasklist | findstr "ops-agent"

    El resultado del comando ps en una VM de Linux para el agente de operaciones podría mostrar una entrada similar a la siguiente:

    ....
    /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3
    ....
  • Habilita y revisa los registros del agente de invitado. En los registros del agente invitado, se muestra cuándo se instala y se inicia una extensión.

    A continuación, se muestra un ejemplo del resultado que podrías ver en los registros del agente invitado cuando se instala una extensión del Agente de operaciones:

    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"

Soluciona problemas de instalación

Si no se instala una extensión en una VM después de crear una política, sigue estos pasos para solucionar el problema:

  1. Espera a que se aplique la política. La aplicación de una política puede tardar hasta una hora, incluidos los reintentos.
  2. Verifica que las etiquetas de inclusión especificadas en la política coincidan con las etiquetas de la VM.
  3. Para identificar posibles errores de instalación, habilita el registro de depuración para el agente invitado.
  4. Después de solucionar el problema subyacente, vuelve a intentar la instalación con uno de los siguientes métodos:

    • Vuelve a crear la política: Borra la política y, luego, crea una nueva.
    • Usa una política temporal de alta prioridad: Si quieres evitar volver a crear una política que afecte a muchas VMs, usa una política temporal de mayor prioridad para volver a intentar la instalación en VMs específicas:

      1. Agrega una etiqueta nueva a las VMs en las que falló la instalación. Por ejemplo, agrega una etiqueta status=failed.
      2. Crea una política con una prioridad más alta que se oriente a la nueva etiqueta. Por ejemplo, si la política original que falló tenía la prioridad predeterminada de 1000, crea una política con una prioridad más alta, como 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. Después de que la extensión se instale correctamente, borra la política temporal y quita la etiqueta de las VMs. La extensión permanece instalada porque la política original sigue activa.

Cómo ver los registros de depuración del agente invitado

Para habilitar el registro de depuración, agrega la configuración de nivel de registro y detalle a la sección Core del archivo de configuración del agente invitado de la siguiente manera:

Linux

  1. Abre el archivo de configuración del agente invitado ubicado en /etc/default/instance_configs.cfg.
  2. Agrega las siguientes líneas al archivo. Si la sección [Core] ya existe, agrégale los parámetros de configuración log_level y log_verbosity.

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. Reinicia el administrador de agentes invitados con el siguiente comando:

     sudo systemctl restart google-guest-agent-manager
    
  4. Para ver los registros de la actividad del agente invitado durante la instalación de la extensión, ejecuta el siguiente comando:

    journalctl -u google-guest-agent-manager
    

Windows

  1. Abre el archivo de configuración del agente invitado ubicado en C:\Program Files\Google\Compute Engine\instance_configs.cfg.
  2. Agrega las siguientes líneas al archivo. Si la sección [Core] ya existe, agrégale los parámetros de configuración log_level y log_verbosity.

    [Core]
    log_level = 4
    log_verbosity = 4
    
  3. Ejecuta el siguiente comando como administrador de Windows para reiniciar el administrador de agentes invitados:

     net stop GCEAgentManager
     net start GCEAgentManager
    
  4. Para ver los registros de la actividad del agente invitado durante la instalación de la extensión, ejecuta el siguiente comando en PowerShell:

    Get-Eventlog -Source google_guest_agent_manager -LogName Application
    

Después de habilitar los registros de depuración, verifica los siguientes errores comunes:

  • No hay suficiente espacio en el disco: Si los registros indican que no hay suficiente espacio en el disco, libera espacio o cambia el tamaño del disco para agregar más espacio.
  • Uso excesivo de recursos: Si los registros indican que el agente invitado detuvo la extensión debido a un uso excesivo de memoria o CPU, cambia el tipo de máquina de la VM por uno con más recursos.

¿Qué sigue?