Sustituir, quitar o eliminar políticas de emplazamiento


En este documento se describe cómo sustituir, retirar o eliminar políticas de emplazamiento.

Sustituir, quitar o eliminar políticas de emplazamiento es útil en los siguientes casos:

  • Sustituye una política de colocación en una instancia de máquina virtual (VM) para mover la VM a una posición diferente con respecto a otras VMs.

  • Quita una política de colocación de una VM cuando ya no te interese su posición relativa con respecto a otras VMs.

  • Eliminar una política de emplazamiento cuando ya no la necesites.

Antes de empezar

  • Consulta las restricciones de las políticas de emplazamiento.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para sustituir, quitar o eliminar políticas de colocación, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (roles/compute.instanceAdmin.v1) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para sustituir, quitar o eliminar políticas de emplazamiento. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para sustituir, quitar o eliminar políticas de emplazamiento, se necesitan los siguientes permisos:

  • Para sustituir o quitar una política de emplazamiento de una máquina virtual, sigue estos pasos: compute.instances.update on the project
  • Para eliminar una política de emplazamiento, sigue estos pasos: compute.resourcePolicies.delete on the project

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

Sustituir una política de colocación en una VM

Antes de sustituir una política de colocación dispersa por una política de colocación compacta en una VM, asegúrate de que la VM utilice un tipo de máquina y una política de mantenimiento del host compatibles. Si necesitas actualizar la VM antes de sustituir su política de emplazamiento, haz una o ambas de las siguientes acciones:

Después de sustituir la política de colocación en una VM, debes reiniciar la VM para que la política de colocación recién aplicada surta efecto.

Para sustituir una política de colocación en una VM, selecciona una de las siguientes opciones:

gcloud

  1. Crea un archivo YAML vacío.

  2. Para exportar las propiedades de una VM al archivo YAML que acabas de crear, usa el comando gcloud compute instances export.

    gcloud compute instances export VM_NAME \
        --destination=FILE_PATH \
        --zone=ZONE
    

    Haz los cambios siguientes:

    • VM_NAME: el nombre de una VM que especifica una política de colocación.

    • FILE_PATH: la ruta al archivo YAML que has creado en el paso anterior.

    • ZONE: la zona en la que se encuentra la VM.

  3. En el archivo de configuración YAML, edita el valor del campo resourcePolicies para especificar otra política de colocación.

    resourcePolicies:
    - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que se encuentra la política de emplazamiento. Solo puedes especificar una política de asignación que se encuentre en el mismo proyecto que la VM.

    • REGION: la región en la que se encuentra la política de emplazamiento.

    • POLICY_NAME: el nombre de la política de emplazamiento.

  4. Para actualizar la máquina virtual y reiniciarla, usa el comando gcloud compute instances update-from-file con la marca --most-disruptive-allowed-action definida como RESTART.

    gcloud compute instances update-from-file VM_NAME \
        --most-disruptive-allowed-action=RESTART \
        --source=YAML_FILE \
        --zone=ZONE
    

    Haz los cambios siguientes:

    • VM_NAME: el nombre de la VM.

    • YAML_FILE: la ruta al archivo YAML con los datos de configuración que has modificado en el paso anterior.

    • ZONE: la zona en la que se encuentra la VM.

REST

  1. Crea un archivo JSON vacío.

  2. Para ver las propiedades de una VM, envía una solicitud GET al método instances.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto en el que se encuentra la VM.

    • ZONE: la zona en la que se encuentra la VM.

    • VM_NAME: el nombre de una VM que especifica una política de colocación.

  3. En el archivo JSON vacío que has creado en los pasos anteriores, haz lo siguiente:

    1. Introduce las propiedades de la VM de la salida de la solicitud GET.

    2. Busque el campo resourcePolicies y, a continuación, edite su valor para especificar otra política de colocación.

      "resourcePolicies": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ]
      

      Haz los cambios siguientes:

      • PROJECT_ID: el ID del proyecto en el que se encuentra la política de emplazamiento. Solo puedes especificar una política de colocación que se encuentre en el mismo proyecto que la VM.

      • REGION: la región en la que se encuentra la política de emplazamiento.

      • POLICY_NAME: el nombre de la política de emplazamiento.

  4. Para actualizar la VM y reiniciarla, haz una solicitud PUT al método instances.update. En la solicitud, haz lo siguiente:

    • En la URL de la solicitud, incluya el parámetro de consulta most_disruptive_allowed_action con el valor RESTART.

    • En el cuerpo de la solicitud, usa los detalles de configuración de la VM del archivo JSON que has creado y actualizado en los pasos anteriores.

    PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART
    
    {
      ...
      "resourcePolicies": [
        "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
      ],
      ...
    }
    

Para obtener más información sobre cómo actualizar las propiedades de una VM, consulta Actualizar las propiedades de una VM.

Quitar una política de emplazamiento de una VM

Si quieres quitar una política de colocación dispersa con dos o más dominios de disponibilidad de una VM, puedes hacerlo sin detenerla. Si quieres quitar una política de colocación compacta o una política de colocación dispersa con un solo dominio de disponibilidad, primero debes detener la VM antes de quitar la política de colocación asociada.

Si quitas una política de colocación de una VM, no se verá afectada su ubicación física. Sin embargo, si la máquina virtual se está migrando en tiempo real, Compute Engine podría moverla a otra ubicación física.

Para quitar una política de colocación de una VM, selecciona una de las siguientes opciones:

gcloud

Para quitar una política de colocación de una VM, usa el comando gcloud compute instances remove-resource-policies.

gcloud compute instances remove-resource-policies VM_NAME \
    --resource-policies=POLICY_NAME \
    --zone=ZONE

Haz los cambios siguientes:

  • VM_NAME: el nombre de una VM que especifica una política de colocación.

  • POLICY_NAME: nombre de la política de colocación aplicada a la VM. Para verificar el nombre de la política de emplazamiento, consulta los detalles de la VM y comprueba el valor del campo resourcePolicies.

  • ZONE: la zona en la que se encuentra la VM.

REST

Para quitar una política de colocación de una VM, envía una solicitud POST al método instances.removeResourcePolicies.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/removeResourcePolicies

{
  "resourcePolicies": [
    "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
  ]
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la VM.

  • ZONE: la zona en la que se encuentra la VM.

  • VM_NAME: el nombre de una VM que especifica una política de colocación.

  • REGION: la región en la que se encuentra la política de emplazamiento.

  • POLICY_NAME: nombre de la política de colocación aplicada a la VM. Para verificar el nombre de la política de emplazamiento, consulta los detalles de la VM y comprueba el valor del campo resourcePolicies.

Eliminar una política de emplazamiento

Solo puedes eliminar una política de emplazamiento si no se ha aplicado a ningún recurso de Compute Engine. De lo contrario, no se podrá eliminar la política de emplazamiento. Si quiere eliminar una política de emplazamiento que se haya aplicado a uno o varios recursos de Compute Engine, haga una de las siguientes acciones:

  • Si la política solo se aplica a las VMs y quieres conservarlas, haz lo siguiente:

    1. Elimina la política de asignación de las VMs tal como se describe en este documento.

    2. Elimina la política de emplazamiento tal como se describe en esta sección.

  • De lo contrario, haz lo siguiente:

    1. Opcional: Quita la política de colocación de las VMs que quieras conservar tal como se describe en este documento.

    2. Elimina todos los demás recursos de Compute Engine a los que se aplique la política de colocación en el siguiente orden:

      1. VMs

      2. Reservas

      3. Plantillas de instancia

    3. Elimina la política de emplazamiento tal como se describe en esta sección.

Para eliminar una política de emplazamiento, seleccione una de las siguientes opciones:

gcloud

Para eliminar una política de emplazamiento, usa el comando gcloud compute resource-policies delete.

gcloud compute resource-policies delete POLICY_NAME \
    --region=REGION

Haz los cambios siguientes:

  • POLICY_NAME: el nombre de una política de emplazamiento.

  • REGION: la región en la que se encuentra la política de emplazamiento.

REST

Para eliminar una política de emplazamiento, haz una solicitud DELETE al método resourcePolicies.delete.

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la política de emplazamiento.

  • REGION: la región en la que se encuentra la política de emplazamiento.

  • POLICY_NAME: el nombre de una política de emplazamiento.

Siguientes pasos