En este documento, se explica cómo crear una política de posición dispersa y aplicarla a una o más instancias de máquina virtual (VM) para mejorar la confiabilidad.
Una política de posición dispersa especifica que tus VMs deben colocarse físicamente muy separadas entre sí mediante la colocación en diferentes dominios de disponibilidad. Usa una política de posición distribuida para asegurarte de que tus VM se coloquen en hardware diferente, lo que reduce el impacto de las fallas de hardware subyacentes o optimiza la migración en vivo.
Puedes aplicar una política de posición distribuida cuando haces lo siguiente:
- Creas o actualizas una VM.
- Creas VMs de forma masiva.
- Crea una plantilla de instancias. Luego, la plantilla de instancias aplica la política de posición distribuida cuando la usas para hacer lo siguiente:
- Crea una VM.
- Creas o actualizas un grupo de instancias administrado (MIG).
Antes de comenzar
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:
gcloud init
- Set a default region and zone.
-
Para crear políticas de posición:
compute.resourcePolicies.create
en el proyecto -
Para aplicar una política de posición a una VM existente:
compute.instances.addResourcePolicies
en el proyecto Solo puedes aplicar una política de posición dispersa a 8 VMs como máximo.
No puedes aplicar políticas de posición dispersa a las reservas de las VMs.
No puedes verificar la ubicación física de las VMs.
POLICY_NAME
: El nombre de la política de posición dispersa que se creará.DOMAIN_COUNT
: La cantidad distinta de dominios de disponibilidad en los que se colocarán tus VMs. Cada dominio tiene su propia fuente de energía, enfriamiento y redes independiente. El valor debe estar entre2
y8
, que es la cantidad máxima de VMs a las que puedes aplicar una política de posición dispersa.REGION
: la región en la que se creará la política.PROJECT_ID
: el ID del proyecto en el que deseas crear la política.REGION
: la región en la que deseas crear la política.POLICY_NAME
: El nombre de la política de posición dispersa que se creará.DOMAIN_COUNT
: La cantidad distinta de dominios de disponibilidad en los que se colocarán tus VMs. Cada dominio tiene su propia fuente de energía, enfriamiento y redes independiente. El valor debe estar entre2
y8
, que es la cantidad máxima de VMs a las que puedes aplicar una política de posición dispersa.- Aplica una política de posición distribuida a una VM existente
- Crea una VM que especifique una política de posición distribuida.
- Crea VMs de forma masiva que especifiquen una política de posición distribuida.
- Crea una plantilla de instancias en la que se especifique una política de posición distribuida.
- Aplica una política de posición distribuida a las VMs en un MIG.
VM_NAME
: el nombre de una VM existente.POLICY_NAME
: el nombre de una política de posición dispersa existente.ZONE
: la zona donde existe la VM, que debe estar dentro de la región en la que se encuentra la política de posición dispersa.PROJECT_ID
: el ID del proyecto en el que se encuentran la política de posición distribuida y la VM.ZONE
: la zona donde existe la VM, que debe estar dentro de la región en la que se encuentra la política de posición dispersa.VM_NAME
: el nombre de una VM existente.REGION
: la región en la que se encuentra la política de posición dispersa.POLICY_NAME
: el nombre de una política de posición dispersa existente.VM_NAME
: El nombre de la VM que se creará.POLICY_NAME
: el nombre de una política de posición dispersa existente.ZONE
: la zona donde se creará la VM. Solo puedes crear una VM en una zona que esté dentro de la región en la que se encuentra la política de posición de expansión que especifiques.PROJECT_ID
: el ID del proyecto en el que se encuentra la política de posición distribuida.ZONE
: la zona donde se creará la VM. Solo puedes crear una VM en una zona que esté dentro de la región en la que se encuentra la política de posición dispersa que especifiques.VM_NAME
: El nombre de la VM que se creará.REGION
: la región en la que se encuentra la política de posición dispersa.POLICY_NAME
: el nombre de una política de posición dispersa existente.COUNT
: la cantidad de VMs que se crearán.NAME_PATTERN
: el patrón de nombre para las VMs que se crearán. Usa el carácter de hash (#
) para reemplazarlo por una secuencia de números. Por ejemplo, si especificasvm-#
, se crean VMs con los nombresvm-1
,vm-2
, etc., hasta el número de VMs especificadas enCOUNT
.POLICY_NAME
: el nombre de una política de posición dispersa existente.ZONE
: la zona en la que se crearán las VMs de forma masiva. Solo puedes crear VMs en zonas que se encuentren dentro de la región de la política de posición de expansión que especifiques.PROJECT_ID
: el ID del proyecto en el que se encuentra la política de posición distribuida.ZONE
: la zona en la que se crearán las VMs de forma masiva. Solo puedes crear VMs en zonas que se encuentren dentro de la región de la política de posición dispersa que especifiques.COUNT
: la cantidad de VMs que se crearán.NAME_PATTERN
: el patrón de nombre para las VMs que se crearán. Usa el carácter de hash (#
) para reemplazarlo por una secuencia de números. Por ejemplo, si especificasvm-#
para crear VMs con nombresvm-1
,vm-2
, y así sucesivamente, hasta el número de VMs especificadas enCOUNT
.REGION
: la región en la que se encuentra la política de posición dispersa.POLICY_NAME
: el nombre de una política de posición dispersa existente.Aplica una política de posición dispersa a las VMs en un MIG.
Crea una instancia de VM a partir de una plantilla de instancias.
INSTANCE_TEMPLATE_NAME
: es el nombre de la plantilla de instancias.PROJECT_ID
: El ID del proyecto en el que se encuentra la política de posición distribuida que deseas aplicar a la plantilla de instancias.POLICY_NAME
: El nombre de una política de posición de expansión existente.PROJECT_ID
: el ID del proyecto en el que se encuentra la plantilla de instancias a la que deseas aplicar la política de posición distribuida.INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancias.POLICY_NAME
: el nombre de una política de posición dispersa existente.MIG_NAME
: el nombre del MIG que se creará.REGION
: la región en la que se crea el MIG, que debe coincidir con la región en la que se encuentra la política de posición dispersa.SIZE
: el tamaño del MIG.INSTANCE_TEMPLATE_NAME
: el nombre de una plantilla de instancias existente que especifica una política de posición dispersa.PROJECT_ID
: el ID del proyecto en el que se encuentran la política de posición distribuida y la plantilla de instancias que especifica la política de posición.REGION
: la región en la que se crea el MIG, que debe coincidir con la región en la que se encuentra la política de posición dispersa.MIG_NAME
: el nombre del MIG que se creará.INSTANCE_TEMPLATE_NAME
: el nombre de una plantilla de instancias existente que especifica una política de posición dispersa.SIZE
: el tamaño del MIG.MIG_NAME
: el nombre de un MIG existente.REGION
: la región en la que se encuentra el MIG. Solo puedes aplicar la política de posición distribuida a un MIG que se encuentre en la misma región.INSTANCE_TEMPLATE_NAME
: el nombre de una plantilla de instancias existente que especifica una política de posición dispersa.PROJECT_ID
: el ID del proyecto que usaste para crear un MIG existente, la política de posición distribuida y la plantilla de instancias que especifica la política de posición distribuida.REGION
: la región en la que se encuentra el MIG. Solo puedes aplicar la política de posición distribuida a un MIG que se encuentre en la misma región.MIG_NAME
: el nombre de un MIG existente.INSTANCE_TEMPLATE_NAME
: el nombre de una plantilla de instancias existente que especifica una política de posición dispersa.Obtén más información para ver las políticas de posición.
Obtén más información para reemplazar, quitar o borrar políticas de posición.
Obtén información sobre cómo hacer lo siguiente con una VM que especifica una política de posición:
Obtén más información sobre el proceso de migración en vivo durante los eventos de mantenimiento.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Funciones obligatorias
Para obtener los permisos que necesitas para crear y aplicar una política de posición distribuida a las VMs, pídele a tu administrador que te otorgue el rol de IAM de Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1
) en la VM o el proyecto. Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.Este rol predefinido contiene los permisos necesarios para crear y aplicar una política de posición distribuida a las VMs. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y aplicar una política de posición dispersa a las VMs:
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Restricciones
Además de las restricciones generales para las políticas de posición, las políticas de posición distribuida tienen las siguientes restricciones:
Crea una política de posición dispersa
Puedes crear una política de posición distribuida con gcloud CLI y REST.
gcloud
Para crear una política de posición dispersa, usa el comando
gcloud compute resource-policies create group-placement
con la marca--availability-domain-count
.gcloud compute resource-policies create group-placement POLICY_NAME \ --availability-domain-count=DOMAIN_COUNT \ --region=REGION
Reemplaza lo siguiente:
REST
Para crear una política de posición distribuida, realiza una solicitud
POST
al métodoresourcePolicies.insert
. En el cuerpo de la solicitud, incluye el campoavailabilityDomainCount
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies { "name": "POLICY_NAME", "groupPlacementPolicy": { "availabilityDomainCount": DOMAIN_COUNT } }
Reemplaza lo siguiente:
Aplica políticas de posición dispersa
Puedes aplicar una política de posición dispersa a una VM existente o cuando creas VM, plantillas de instancias o MIGs.
Para crear un recurso de Compute Engine que especifique una política de posición dispersa, o aplicar la política de posición dispersa a una VM existente, elige uno de los siguientes métodos:
Aplica una política de posición dispersa a una VM existente
Puedes aplicar una política de posición distribuida a una VM existente con gcloud CLI y REST.
gcloud
Para aplicar una política de posición distribuida a una VM existente, usa el comando
gcloud compute instances add-resource-policies
con la marca--resource-policies
.gcloud compute instances add-resource-policies VM_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
Reemplaza lo siguiente:
REST
Para aplicar una política de posición distribuida a una VM existente, realiza una solicitud
POST
al métodoinstances.addResourcePolicies
. En el cuerpo de la solicitud, incluye el camporesourcePolicies
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addResourcePolicies { "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ] }
Reemplaza lo siguiente:
Crea una VM que especifique una política de posición dispersa
Puedes crear una VM que especifique una política de posición distribuida existente con gcloud CLI y REST.
gcloud
Para crear una VM que especifique una política de posición dispersa, usa el comando
gcloud compute instances create
con la marca--resource-policies
.Por ejemplo, para crear una VM que tenga propiedades predeterminadas y especifique una política de posición dispersa, ejecuta el siguiente comando:
gcloud compute instances create VM_NAME \ --resource-policies=POLICY_NAME \ --zone=ZONE
Reemplaza lo siguiente:
REST
Para crear una VM que especifique una política de posición distribuida, realiza una solicitud
POST
al métodoinstances.insert
. En el cuerpo de la solicitud, incluye el camporesourcePolicies
.Por ejemplo, para crear una VM que tenga propiedades predeterminadas y especifique una política de posición dispersa, realiza la siguiente solicitud
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ] }
Reemplaza lo siguiente:
Si deseas obtener más información sobre las opciones de configuración y los roles de IAM para crear una VM, consulta Crea e inicia una instancia de VM.
Crea VMs de forma masiva que especifiquen una política de posición dispersa
Puedes crear VMs de forma masiva que especifiquen una política de posición distribuida existente con gcloud CLI y REST.
gcloud
Para crear VMs de forma masiva que especifiquen una política de posición dispersa, usa el comando
gcloud compute instances bulk create
con las marcas--async
y--resource-policies
.Por ejemplo, para crear VMs de forma masiva que tengan propiedades predeterminadas y especifiquen la misma política de posición dispersa, ejecuta el siguiente comando:
gcloud compute instances bulk create \ --async \ --count=COUNT \ --name-pattern=NAME_PATTERN \ --resource-policies=POLICY_NAME \ --zone=ZONE
Reemplaza lo siguiente:
REST
Para crear VMs de forma masiva que especifiquen una política de posición distribuida, realiza una solicitud
POST
al métodoinstances.bulkInsert
. En el cuerpo de la solicitud, incluye el camporesourcePolicies
.Por ejemplo, para crear VMs de forma masiva que tengan propiedades predeterminadas y especifique la misma política de posición dispersa, realiza la siguiente solicitud
POST
:POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": "COUNT", "namePattern": "NAME_PATTERN", "instanceProperties": { "resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ] } }
Reemplaza lo siguiente:
Para obtener más información sobre las opciones de configuración o los roles de IAM para crear VMs de forma masiva, consulta Crea VMs de forma masiva.
Crea una plantilla de instancias que especifique una política de posición dispersa
Puedes crear una plantilla de instancias que especifique una política de posición distribuida existente mediante gcloud CLI y REST.
Después de crear una plantilla de instancias, puedes usarla para hacer lo siguiente:
gcloud
Para crear una plantilla de instancias que especifique una política de posición dispersa, usa el comando
gcloud compute instance-templates create
con la marca--resource-policies
.Por ejemplo, para crear una plantilla de instancias global que tenga propiedades de VM predeterminadas e incluya una política de posición distribuida, ejecuta el siguiente comando:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --resource-policies=POLICY_NAME
Reemplaza lo siguiente:
REST
Para crear una plantilla de instancias que especifique una política de posición de expansión, realiza una solicitud
POST
al métodoinstanceTemplates.insert
. En el cuerpo de la solicitud, incluye el camporesourcePolicies
.Por ejemplo, para crear una plantilla de instancias global que tenga propiedades de VM predeterminadas y especifique una política de posición distribuida, realiza la siguiente solicitud
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "resourcePolicies": { "POLICY_NAME" } } }
Reemplaza lo siguiente:
Si quieres obtener más información sobre las opciones de configuración para crear una plantilla de instancias, consulta Crea plantillas de instancias.
Aplica una política de posición a las VMs en un MIG
Después de crear una plantilla de instancias que especifique una política de posición dispersa, puedes usar la plantilla para hacer lo siguiente:
Si deseas aplicar una política de posición a un MIG, se recomienda crear o aplicar la política a un MIG regional con la forma dispersa cualquier zona. De esta manera, cada vez que un MIG regional necesita escalar horizontalmente mediante la creación de VM, elige la zona en la que se crearán las VMs según tus cuotas y requisitos de hardware.
Crea un MIG que especifique una política de posición dispersa
Puedes crear un MIG con una plantilla de instancias que especifique una política de posición distribuida mediante gcloud CLI y REST.
gcloud
Para crear un MIG mediante una plantilla de instancias que especifique una política de posición dispersa, usa el comando
gcloud compute instance-groups managed create
con la marca--template
establecida en el nombre de la plantilla existente.Por ejemplo, para crear un MIG regional con propiedades de VMs predeterminadas y la forma dispersa cualquier zona, ejecuta el siguiente comando:
gcloud compute instance-groups managed create MIG_NAME \ --region=REGION \ --size=SIZE \ --target-distribution-shape=any-single-zone \ --template=INSTANCE_TEMPLATE_NAME
Reemplaza lo siguiente:
REST
Para crear un MIG mediante una plantilla de instancias que especifique una política de posición distribuida, realiza una solicitud
POST
a los métodosinstanceGroupManagers.insert
oregionInstanceGroupManagers.insert
. En el cuerpo de la solicitud, incluye el campoinstanceTemplate
y configúralo en el nombre de la plantilla existente.Por ejemplo, para crear un MIG regional con propiedades de VM predeterminadas y la forma dispersa cualquier zona, realiza la siguiente solicitud
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "MIG_NAME", "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "targetSize": SIZE, "distributionPolicy": { "targetShape": "ANY_SINGLE_ZONE" } }
Reemplaza lo siguiente:
Para obtener más información sobre las opciones de configuración y los roles de IAM para crear MIG, consulta Situaciones básicas para crear MIG.
Aplica una política de posición dispersa a una MIG existente
Puedes aplicar una política de posición distribuida a un MIG existente con una plantilla de instancias que especifique la misma política de posición con gcloud CLI y REST.
gcloud
Para actualizar un MIG para usar una plantilla de instancias que especifique una política de posición dispersa, usa el comando
gcloud compute instance-groups managed rolling-action start-update
.Por ejemplo, para actualizar un MIG regional para usar una plantilla de instancias que especifique una política de posición dispersa y reemplazar las VMs existentes del MIG con VMs nuevas que especifiquen las propiedades de la plantilla, ejecuta el siguiente comando:
gcloud compute instance-groups managed rolling-action start-update MIG_NAME \ --region=REGION \ --type=proactive \ --version=template=INSTANCE_TEMPLATE_NAME
Reemplaza lo siguiente:
REST
Para actualizar un MIG para usar una plantilla de instancias que especifique una política de posición de expansión y aplicar de forma automática las propiedades de la plantilla y la política de posición a las VMs existentes en el MIG, realiza una solicitud
PATCH
a los métodosinstanceGroupManagers.insert
oregionInstanceGroupManagers.insert
.Por ejemplo, para actualizar un MIG regional para usar una plantilla de instancias que especifique una política de posición dispersa y reemplazar las VMs existentes del MIG con VMs nuevas que especifiquen las propiedades de la plantilla, haz la siguiente solicitud
PATCH
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME { "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME", "updatePolicy": { "type": "PROACTIVE" } }
Reemplaza lo siguiente:
Si deseas obtener más información sobre las opciones de configuración y los roles de IAM para actualizar las VMs en un MIG, consulta Actualiza y aplica configuraciones nuevas a las VM en un MIG.
Próximos pasos
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-05-29 (UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema de traducción" },{ "type": "thumb-down", "id": "otherDown", "label":"Otro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de comprender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Resolvió mi problema" },{ "type": "thumb-up", "id": "otherUp", "label":"Otro" }] -