Sostituire, rimuovere o eliminare le policy di posizionamento


Questo documento descrive come sostituire, rimuovere o eliminare le policy di posizionamento.

La sostituzione, la rimozione o l'eliminazione delle policy di posizionamento è utile nei seguenti casi:

  • Sostituisci una policy di posizionamento in un'istanza di macchina virtuale (VM) per spostare la VM in una posizione diversa rispetto alle altre VM.

  • Rimuovi una policy di posizionamento da una VM quando non ti interessa più la sua posizione rispetto alle altre VM.

  • Elimina una policy di posizionamento quando non ti serve più.

Prima di iniziare

  • Consulta le limitazioni per le norme sul posizionamento.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle API. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

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

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per sostituire, rimuovere o eliminare le norme di posizionamento, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per sostituire, rimuovere o eliminare i criteri di posizionamento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per sostituire, rimuovere o eliminare le policy di posizionamento sono necessarie le seguenti autorizzazioni:

  • Per sostituire o rimuovere una policy di posizionamento da una VM: compute.instances.update on the project
  • Per eliminare una policy di posizionamento: compute.resourcePolicies.delete on the project

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Sostituisci una policy di posizionamento in una VM

Prima di sostituire una policy di posizionamento distribuito in una VM con una policy di posizionamento compatto, assicurati che la VM utilizzi un tipo di macchina e una policy di manutenzione dell'host supportati. Se devi aggiornare la VM prima di sostituire le relative norme di posizionamento, esegui una o entrambe le seguenti operazioni:

Dopo aver sostituito la policy di posizionamento in una VM, devi riavviarla per rendere effettiva la policy di posizionamento appena applicata.

Per sostituire una policy di posizionamento in una VM, seleziona una delle seguenti opzioni:

gcloud

  1. Crea un file YAML vuoto.

  2. Per esportare le proprietà di una VM nel file YAML che hai appena creato, utilizza il comando gcloud compute instances export.

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

    Sostituisci quanto segue:

    • VM_NAME: il nome di una VM esistente che specifica una policy di posizionamento.

    • FILE_PATH: il percorso del file YAML che hai creato nel passaggio precedente.

    • ZONE: la zona in cui si trova la VM.

  3. Nel file di configurazione YAML, modifica il valore del campo resourcePolicies per specificare un criterio di posizionamento diverso.

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui si trova la normativa di posizionamento. Puoi specificare solo una policy di posizionamento che si trova nello stesso progetto della VM.

    • REGION: la regione in cui si trova la policy di posizionamento.

    • POLICY_NAME: il nome della policy di posizionamento.

  4. Per aggiornare la VM e riavviarla, utilizza il comando gcloud compute instances update-from-file con il flag --most-disruptive-allowed-action impostato su RESTART.

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

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM.

    • YAML_FILE: il percorso del file YAML con i dati di configurazione modificati nel passaggio precedente.

    • ZONE: la zona in cui si trova la VM.

REST

  1. Crea un file JSON vuoto.

  2. Per visualizzare le proprietà di una VM esistente, invia una richiesta GET al metodo instances.get.

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto in cui si trova la VM.

    • ZONE: la zona in cui si trova la VM.

    • VM_NAME: il nome di una VM esistente che specifica una policy di posizionamento.

  3. Nel file JSON vuoto che hai creato nei passaggi precedenti, procedi in questo modo:

    1. Inserisci le proprietà della VM dall'output della richiesta GET.

    2. Individua il campo resourcePolicies e modifica il valore per specificare un criterio di posizionamento diverso.

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

      Sostituisci quanto segue:

      • PROJECT_ID: l'ID del progetto in cui si trova la normativa di posizionamento. Puoi specificare solo una norma di posizionamento che si trova nello stesso progetto della VM.

      • REGION: la regione in cui si trova la norma di posizionamento.

      • POLICY_NAME: il nome della policy di posizionamento.

  4. Per aggiornare la VM e riavviarla, effettua una richiesta PUT al metodo instances.update. Nella richiesta, segui questi passaggi:

    • Nell'URL della richiesta, includi il parametro di query most_disruptive_allowed_action impostato su RESTART.

    • Per il corpo della richiesta, utilizza i dettagli di configurazione della VM dal file JSON che hai creato e aggiornato nei passaggi precedenti.

    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"
      ],
      ...
    }
    

Per ulteriori informazioni sull'aggiornamento delle proprietà di una VM, consulta Aggiorna le proprietà della VM.

Rimuovi una policy di posizionamento da una VM

Se vuoi rimuovere una policy di posizionamento spread con due o più domini di disponibilità da una VM, puoi farlo senza arrestare la VM. Se vuoi rimuovere una policy di posizionamento compatta o una policy di posizionamento distribuita con un solo dominio di disponibilità, devi prima arrestare la VM prima di rimuovere la policy di posizionamento collegata.

La rimozione di una policy di posizionamento da una VM non influisce sulla sua posizione fisica. Tuttavia, se la VM è in fase di migrazione live, Compute Engine potrebbe spostarla in una posizione fisica diversa.

Per rimuovere un criterio di posizionamento da una VM, seleziona una delle seguenti opzioni:

gcloud

Per rimuovere una policy di posizionamento da una VM, utilizza il comando gcloud compute instances remove-resource-policies.

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

Sostituisci quanto segue:

  • VM_NAME: il nome di una VM esistente che specifica una policy di posizionamento.

  • POLICY_NAME: il nome del criterio di posizionamento applicato alla VM. Per verificare il nome della norma di posizionamento, visualizza i dettagli della VM e controlla il valore del campo resourcePolicies.

  • ZONE: la zona in cui si trova la VM.

REST

Per rimuovere una policy di posizionamento da una VM, invia una richiesta POST al metodo 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"
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la VM.

  • ZONE: la zona in cui si trova la VM.

  • VM_NAME: il nome di una VM esistente che specifica una policy di posizionamento.

  • REGION: la regione in cui si trova la policy di posizionamento.

  • POLICY_NAME: il nome del criterio di posizionamento applicato alla VM. Per verificare il nome della norma di posizionamento, visualizza i dettagli della VM e controlla il valore del campo resourcePolicies.

Elimina una policy di posizionamento

Puoi eliminare una policy di posizionamento solo se non è applicata a nessuna risorsa Compute Engine. In caso contrario, l'eliminazione della policy di posizionamento non riesce. Se vuoi eliminare una norma di posizionamento applicata a una o più risorse Compute Engine, esegui una delle seguenti operazioni:

  • Se la norma viene applicata solo alle VM e vuoi conservarle, procedi nel seguente modo:

    1. Rimuovi la policy di posizionamento dalle VM come descritto in questo documento.

    2. Elimina la policy di posizionamento come descritto in questa sezione.

  • In caso contrario, procedi nel seguente modo:

    1. (Facoltativo) Rimuovi la policy di posizionamento da qualsiasi VM che vuoi conservare come descritto in questo documento.

    2. Elimina ogni altra risorsa Compute Engine a cui viene applicata la policy di posizionamento nel seguente ordine:

      1. VM

      2. Prenotazioni

      3. Modelli di istanza

    3. Elimina la policy di posizionamento come descritto in questa sezione.

Per eliminare un criterio di posizionamento, seleziona una delle seguenti opzioni:

gcloud

Per eliminare una policy di posizionamento, utilizza il comando gcloud compute resource-policies delete.

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

Sostituisci quanto segue:

  • POLICY_NAME: il nome di una norma di posizionamento esistente.

  • REGION: la regione in cui si trova la policy di posizionamento.

REST

Per eliminare una policy di posizionamento, invia una richiesta DELETE al metodo resourcePolicies.delete.

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui si trova la policy di posizionamento.

  • REGION: la regione in cui si trova la policy di posizionamento.

  • POLICY_NAME: il nome di una norma di posizionamento esistente.

Passaggi successivi