Configuração de discos permanentes com estado em MIGs


Configurar discos permanentes para que tenham estado permite que você se beneficie da recuperação automática de instâncias de VM e das atualizações automatizadas, preservando o estado dos discos.

Você pode configurar qualquer disco definido no modelo de instância para ter estado para todas as instâncias em um grupo de instâncias gerenciadas (MIG) adicionando o nome do dispositivo desse disco à política com estado do MIG.

Você também pode configurar discos permanentes com estado individualmente para instâncias em um MIG definindo configurações por instância ; esses discos não precisam ser definidos no modelo de instância.

Antes de começar

Limitações

Um MIG com discos com estado tem as seguintes limitações:

Um MIG com configuração com estadoum MIG com estado — tem as seguintes limitações:

  • Você não poderá usar o escalonamento automático se o seu MIG tiver configuração com estado.
  • Se quiser usar atualizações contínuas automatizadas, você deverá definir o método de substituição como RECREATE .
  • Para MIGs regionais com estado, você deve desabilitar a redistribuição proativa (definir o tipo de redistribuição como NONE ) para evitar a exclusão de instâncias com estado por meio da redistribuição automática entre zonas.
  • Se você usar uma configuração de todas as instâncias para substituir as propriedades do modelo de instância, não poderá especificar essas propriedades em nenhuma configuração por instância e ao mesmo tempo na configuração de todas as instâncias do grupo.

  • Um MIG regional com estado não orquestra automaticamente o failover entre zonas. Ao usar um MIG regional, você pode tornar seu aplicativo com estado resiliente a falhas zonais, implantando réplicas redundantes em diversas zonas e contando com a funcionalidade de replicação de dados do seu aplicativo.

Quando usar discos permanentes com estado

Use discos permanentes com estado para aproveitar a recuperação automática de VM e as atualizações automatizadas , preservando os dados nos discos. Para obter mais informações, consulte casos de uso para MIGs com estado.

Quando você configura discos com estado, esses discos são preservados por meio de recuperação automática, atualizações e recriação de instâncias de VM. Mas isso também significa que os discos com estado não podem ser recriados a partir da imagem original ou atualizados para uma nova imagem.

Como prática recomendada, recomendamos manter seus discos de inicialização sem estado.

Manter o disco de inicialização sem estado traz os seguintes benefícios:

  • Você pode reparar um disco de inicialização corrompido recriando-o a partir de sua imagem original. A recuperação automática faz esses reparos automaticamente.
  • Você pode atualizar um disco de inicialização para a imagem mais recente com novas versões e patches de segurança.

Para obter mais informações, consulte como a recuperação automática e a atualização lidam com o estado preservado.

Configurar discos permanentes com estado para todas as VMs em um MIG

Configure qualquer disco definido em um modelo de instância para ter estado adicionando o nome do dispositivo desse disco à política com estado do MIG. O MIG trata os discos com esse nome de dispositivo como stateful para todas as instâncias de VM existentes e futuras.

Configurando discos com estado na criação de MIG

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Selecione seu projeto e clique em Continuar .

  3. Clique em Criar grupo de instâncias .

  4. Selecione Novo grupo gerenciado de instâncias (com estado) .

  5. Especifique um nome para o grupo de instâncias.

  6. Selecione um modelo de instância . Se nenhum modelo estiver disponível, crie um modelo de instância .

  7. Em Número de instâncias , especifique o número de instâncias do grupo de instâncias.

  8. A seção Configuração com estado exibe os discos especificados no modelo de instância. Clique em um disco para editar sua configuração com estado.

    1. Em Stateful , selecione Sim .
    2. Na lista suspensa Na exclusão permanente da instância , selecione a ação a ser executada no disco com estado quando a instância da VM for excluída. As opções disponíveis são:

      • Desanexar disco: (Padrão.) Nunca exclua o disco; desconecte o disco quando a VM for excluída.
      • Excluir disco: exclua o disco com estado quando sua VM for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo for reduzido.
    3. Depois de concluir a configuração com estado, clique em Concluído .

  9. Clique em Criar .

gcloud

Para especificar quais discos de um modelo de instância devem ter estado na criação do MIG, use a sinalização --stateful-disk com o gcloud compute instance-groups managed create :

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Substitua o seguinte:

  • INSTANCE_GROUP_NAME : o nome do grupo de instâncias gerenciadas a ser criado.
  • INSTANCE_TEMPLATE : o nome do modelo de instância a ser usado ao criar instâncias.
  • SIZE : o número inicial de VMs necessárias neste grupo.
  • DEVICE_NAME : o nome do dispositivo de um disco especificado no modelo de instância.
  • DELETE_RULE : um valor que prescreve o que deve acontecer a um disco com estado quando uma VM é excluída. As opções disponíveis são:

    • never : (Padrão.) Nunca exclua o disco; em vez disso, desconecte o disco quando sua VM for excluída.
    • on-permanent-instance-deletion : exclua o disco quando sua instância de VM for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo diminuir.

    Independentemente do valor da regra de exclusão, os discos com estado são sempre preservados nas operações de recuperação automática, atualização e recriação da VM.

Exemplo

Você deseja implantar um banco de dados com 12 fragmentos, cada um com um disco de inicialização sem estado que contém o sistema operacional e os binários do banco de dados, e cada um com um disco de dados com estado. Use as seguintes etapas:

  1. Crie um modelo de instância com um disco de inicialização sem estado baseado na imagem img-example-db-v01 , que tem um sistema operacional e banco de dados pré-instalados e com um disco de dados com estado:

    gcloud compute instance-templates create example-database-template-v01 \
        --image img-example-db-v01 \
        --create-disk device-name=data-disk,mode=rw,image=empty10GBext4
    

    O sinalizador --create-disk instrui o MIG a:

    1. Crie um novo disco de 10 GB para cada instância de VM a partir de uma imagem ext4 vazia, preparada previamente.
    2. Anexe o disco à sua VM no modo de leitura/gravação usando o nome do dispositivo data-disk .
  2. Crie um MIG a partir do modelo de instância e defina o disco de dados como com estado:

    gcloud compute instance-groups managed create example-database-group \
      --template example-database-template-v01 \
      --base-instance-name shard \
      --size 12 \
      --stateful-disk device-name=data-disk,auto-delete=on-permanent-instance-deletion
    

    O nome do dispositivo data-disk é obtido do modelo de instância. O disco de dados é configurado para ser excluído junto com a instância da VM quando a VM é excluída permanentemente (devido à exclusão manual da instância ou à diminuição manual do tamanho do grupo). O disco de dados é preservado na recuperação automática, nas atualizações e na recriação de VM.

  3. Verifique se o disco de dados está configurado na política com estado:

    gcloud compute instance-groups managed describe example-database-group
    
    
    baseInstanceName: shard
    ...
    name: example-database-group
    ...
    statefulPolicy:
      preservedState:
        disks:
          data-disk:
            autoDelete: ON_PERMANENT_INSTANCE_DELETION
    ...
    

    Você pode ver que a política com estado declara discos com nome de dispositivo data-disk como com estado, com uma regra para excluir tais discos na exclusão permanente da VM.

Terraforma

Se você ainda não criou um modelo de instância, que especifica o tipo de máquina, a imagem do disco de inicialização, a rede e outras propriedades de VM desejadas para cada VM em seu MIG, crie um modelo de instância .

O exemplo a seguir cria um MIG zonal com um disco com estado. Para especificar qual disco do modelo de instância deve ter estado na criação do MIG, inclua o bloco stateful_disk . Para obter mais informações sobre o recurso usado no exemplo, consulte recurso google_compute_instance_group_manager . Para criar um MIG regional, use o recurso google_compute_region_instance_group_manager .

resource "google_compute_instance_group_manager" "default" {
  name               = "example-database-group"
  base_instance_name = "shard"
  target_size        = 12
  zone               = "us-central1-f"
  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  stateful_disk {
    device_name = "data-disk"
    delete_rule = "ON_PERMANENT_INSTANCE_DELETION"
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform .

DESCANSAR

Para especificar quais discos do modelo de instância devem ter estado na criação do MIG, inclua-os no campo statefulPolicy no corpo da solicitação do método instanceGroupManagers.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers

{
  "name": "NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Substitua o seguinte:

  • PROJECT : O ID do projeto para a solicitação.
  • ZONE : A zona onde o MIG está localizado (aplica-se a um MIG zonal).
    • Para um MIG regional, substitua zones/ ZONE por regions/ REGION e especifique a região do MIG.
  • NAME : O nome do MIG a ser criado.
  • TEMPLATE : O nome do modelo de instância a ser usado ao criar instâncias.
  • SIZE : O número inicial de instâncias necessárias neste grupo.
  • DEVICE_NAME : o nome do dispositivo de um disco especificado no modelo de instância.
  • DELETE_RULE : um valor que prescreve o que deve acontecer ao disco com estado quando a instância da VM for excluída. As opções disponíveis são:

    • never : (Padrão.) Nunca exclua o disco; desconecte o disco quando a VM for excluída.
    • on_permanent_instance_deletion : exclua o disco com estado quando sua VM for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo diminuir.

Exemplo

Você deseja implantar um banco de dados com 12 fragmentos, cada um com um disco de inicialização sem estado que contém o sistema operacional e os binários do banco de dados, e cada um com um disco de dados com estado. Use as etapas a seguir.

  1. Crie um modelo de instância com um disco de inicialização sem estado baseado na imagem img-example-db-v01 , com sistema operacional e banco de dados pré-instalados e com um disco de dados com estado, usando o método instanceTemplates.insert :

    POST https://compute.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates
    
    {
      "name": "example-database-template-v01",
      "properties": {
        "machineType":"e2-standard-2",
        "disks": [
          {
            "boot": true,
            "deviceName": "boot-disk",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/mg-example-db-v01"
            }
          },
          {
            "deviceName": "data-disk",
            "mode": "READ_WRITE",
            "initializeParams": {
              "sourceImage": "projects/example-project/global/images/empty10GBext4"
            }
          }
        ],
        "networkInterfaces": [
          {
            "network": "global/networks/default"
          }
        ]
      }
    }
    

    O disco de dados no modelo de instância tem o nome de dispositivo data-disk e está configurado para ser criado a partir de uma imagem ext4 vazia, preparada previamente e para ser anexada no modo de leitura/gravação.

  2. Crie um MIG a partir do modelo de instância e defina o disco de dados como com monitoração de estado usando o método instanceGroupManagers.insert :

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      "versions": [
        {
          "instanceTemplate": "global/instanceTemplates/example-database-template-v01"
        }
      ],
      "targetSize": 12,
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
    }
    

    O MIG cria 12 instâncias, cada uma com um disco com as seguintes propriedades:

    • Um nome de dispositivo, data-disk , obtido do modelo de instância.
    • Uma regra de exclusão para excluir o disco de dados quando a VM for excluída (devido à exclusão manual da instância ou à redução manual do tamanho do grupo).
    • Uma entrada no estado preservado da política ( preservedStateFromPolicy ) de cada instância gerenciada para que o disco de dados seja preservado na recuperação automática, nas atualizações e na recriação da instância.
  3. Use o método instanceGroupManagers.get para verificar se o disco de dados está configurado na política com estado do novo recurso instanceGroupManagers :

    GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    
    {
      "name": "example-database-group",
      "baseInstanceName": "shard",
      ...
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
          }
        }
      }
      ...
    }
    

    Você pode ver que a política com estado declara discos com nome de dispositivo data-disk como com estado com a regra para excluir tais discos na exclusão permanente da instância.

Definir e atualizar a configuração com estado para discos em um MIG existente

Se você executar um aplicativo com estado em um MIG sem estado (um MIG sem qualquer configuração com estado), poderá configurar os discos existentes definidos no modelo de instância para terem estado para todas as instâncias neste MIG. Isso permite preservar os discos em operações de recriação de instância, recuperação automática e atualização e, opcionalmente, em operações de exclusão.

Você pode fazer as seguintes operações:

  • Adicione discos definidos no modelo de instância à política com estado de um MIG existente para declará-los como com estado. Isso marca os discos com o nome de dispositivo fornecido como com monitoração de estado para todas as instâncias existentes e futuras no MIG.
  • Atualize a política com estado para alterar a configuração com estado dos discos.

O MIG aplica a configuração atualizada na política com estado de forma automática e assíncrona a todas as instâncias. As atualizações nas configurações de disco em uma política com estado não interrompem a execução das VMs. Para obter mais informações, consulte aplicar atualizações de políticas com estado .

Para um MIG regional, você deve desabilitar a redistribuição proativa de instâncias entre zonas antes de poder configurar discos com estado. Para obter mais informações, consulte como os grupos regionais lidam com o estado preservado .

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique no nome do grupo de instâncias no qual você deseja especificar a configuração com estado para disco.

  3. Clique em Editar para modificar o grupo de instâncias gerenciadas.

  4. Em Configuração com estado , expanda o disco que você deseja tornar com estado.

    1. Em Stateful , selecione Sim .
    2. Na lista suspensa Na exclusão permanente da instância , selecione a ação a ser executada no disco com estado quando a instância da VM for excluída.

      • Desanexar disco: (Padrão.) Nunca exclua o disco; desconecte o disco quando a VM for excluída.
      • Excluir disco: exclua o disco com estado quando sua VM for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo diminuir.

    3. Depois de atualizar a configuração com estado, clique em Concluído .

  5. Clique em Salvar para concluir a atualização.

gcloud

Para especificar quais discos do modelo de instância devem ter estado ou para atualizar a configuração do disco com estado para um MIG existente, use um ou vários sinalizadores --stateful-disk com o comando gcloud compute instance-groups managed update :

gcloud compute instance-groups managed update NAME \
  --stateful-disk device-name=DEVICE_NAME[,auto-delete=DELETE_RULE]

Substitua o seguinte:

  • NAME : o nome do grupo de instâncias gerenciadas a ser atualizado.
  • DEVICE_NAME : o nome do dispositivo de um disco especificado no modelo de instância.
  • DELETE_RULE : um valor que prescreve o que deve acontecer ao disco com estado quando uma instância de VM é excluída. As opções disponíveis são:

    • never : (Padrão.) Nunca exclua o disco, desconecte o disco quando sua instância for excluída.
    • on-permanent-instance-deletion : exclua o disco com estado quando sua instância for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância gerenciada for excluída manualmente ou quando o tamanho do grupo diminuir.

Se um nome de dispositivo especificado já estiver configurado na política com estado, o comando atualizará a configuração.

Exemplo

Você executa um banco de dados com vários fragmentos em um MIG chamado example-database- group . Cada VM no MIG armazena um fragmento em um disco adicional com nome de dispositivo data-disk , que é definido pelo modelo de instância. O MIG não tem configuração com estado e você deseja preservar os discos de dados na recriação da instância, na recuperação automática e nas atualizações. Você também deseja proteger os discos de dados contra exclusão quando uma VM for excluída.

  1. Atualize o MIG para definir o disco de dados como com monitoração de estado usando o seguinte comando:

    gcloud compute instance-groups managed update example-database-group \
      --stateful-disk device-name=data-disk,auto-delete=never
    

    Como resultado, o MIG aplica as atualizações de configuração de política com estado de forma automática e assíncrona aos discos de dados de todas as instâncias. Os discos de dados agora são preservados na recuperação automática, nas atualizações e na recriação da instância, e os discos de dados são desanexados na exclusão da instância porque a regra auto-delete está definida como never .

  2. Verifique se o disco de dados está configurado na política com estado executando o comando gcloud compute instance-groups managed describe example-database-group .

DESCANSAR

Para especificar quais discos do modelo de instância devem ter estado ou para atualizar a configuração do disco com estado para um MIG existente, configure os discos na política com estado do MIG usando o método instanceGroupManagers.patch :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" },
        "DEVICE_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Substitua o seguinte:

  • PROJECT : O ID do projeto para a solicitação.
  • ZONE : A zona onde o MIG está localizado (aplica-se a um MIG zonal).
    • Para um MIG regional, substitua zones/ ZONE por regions/ REGION e especifique a região do MIG.
  • NAME : O nome do MIG a ser atualizado.
  • DEVICE_NAME : o nome do dispositivo de um disco, especificado no modelo de instância, para o qual você gostaria de atualizar a configuração com estado.
  • DELETE_RULE : um valor que prescreve o que deve acontecer ao disco com estado quando uma instância de VM é excluída. As opções disponíveis são:

    • never : (Padrão.) Nunca exclua o disco, desconecte o disco quando sua instância for excluída.
    • on-permanent-instance-deletion : exclua o disco com estado quando sua instância for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo diminuir.

Se o nome do dispositivo especificado já estiver configurado na política com estado, o método patch atualizará sua configuração.

Exemplo

Você executa um banco de dados com vários fragmentos em um MIG chamado example-database- group . Cada VM no MIG armazena um fragmento em um disco adicional com nome de dispositivo data-disk , que é definido pelo modelo de instância. O MIG não tem configuração com estado e você deseja preservar os discos de dados na recriação da instância, na recuperação automática e nas atualizações. Você também deseja proteger os discos de dados contra exclusão quando uma VM for excluída.

  1. Corrija o MIG para definir o disco de dados como com monitoração de estado:

    PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-group
    
    {
      "statefulPolicy": {
        "preservedState": {
          "disks": {
            "data-disk": {"autoDelete": "NEVER" }
          }
        }
      }
    }
    

    O MIG aplica essa configuração com estado de forma automática e assíncrona aos discos de dados de todas as instâncias. Os discos de dados serão preservados na recuperação automática, atualizações e recriação de instâncias. Os discos de dados serão desanexados na exclusão da instância porque a regra autoDelete está definida como NEVER .

  2. Verifique se o disco de dados está configurado na política com estado visualizando o recurso instanceGroupManagers , retornado pelo método instanceGroupManagers.get .

Declarar discos permanentes anteriormente com estado como sem estado

Talvez seja necessário configurar um disco com estado para ser tratado como sem estado. Por exemplo:

  • Se você reprojetar seu aplicativo para mover o estado do disco.
  • Se você configurou o disco para ter estado por engano e gostaria de revertê-lo.

Para declarar todos os discos com um determinado nome de dispositivo como sem estado, remova a configuração do disco da política com estado.

O MIG aplica a alteração à política com estado de forma automática e assíncrona a todas as instâncias. As atualizações na configuração do disco em uma política com estado não interrompem a execução de instâncias de VM.

Para obter mais informações, consulte Aplicando atualizações de políticas com estado .

Console

  1. No console do Google Cloud, acesse a página Grupos de instâncias .

    Vá para grupos de instâncias

  2. Clique no nome do grupo de instâncias do qual você deseja remover a configuração com estado dos discos.

  3. Clique em Editar para modificar o grupo de instâncias gerenciadas.

  4. Em Configuração com estado , expanda os discos com estado que você deseja tornar sem estado.

    1. Altere a opção Stateful para No .
    2. Clique em Concluído .
  5. Depois de fazer as alterações, clique em Salvar .

gcloud

Para especificar quais discos de uma política com estado de um MIG devem ser tornados sem estado, use a sinalização --remove-stateful-disks com o comando gcloud compute instance-groups managed update :

gcloud compute instance-groups managed update NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...]

Substitua o seguinte:

  • NAME : O nome do MIG a ser atualizado.
  • DEVICE_NAME : o nome do dispositivo de um disco a ser removido da política com estado e tratado como sem estado. Você pode fornecer um ou vários nomes de dispositivos na lista.

Exemplo

Você executa um aplicativo legado com vários nós em um MIG denominado example-legacy-group . Cada VM no MIG armazena dados do aplicativo em um disco de inicialização com nome de dispositivo boot-disk , que você configurou como stateful na política stateful do MIG. Você moveu os dados do aplicativo para um disco adicional e agora deseja tornar o disco de inicialização sem estado para facilitar a atualização para novas imagens.

Para remover a configuração com estado do disco de inicialização, atualize o grupo gerenciado de instâncias:

gcloud compute instance-groups managed update example-legacy-group \
  --remove-stateful-disks boot-disk

O MIG remove a configuração com estado do nome do dispositivo boot-disk de forma automática e assíncrona para os discos de inicialização de todas as instâncias do grupo. Os discos de inicialização permanecem anexados às instâncias, mas não têm mais estado. Quando você recria ou atualiza as instâncias, ou quando as instâncias são reparadas automaticamente, o MIG recria os discos de inicialização a partir da imagem especificada no modelo de instância.

DESCANSAR

Para especificar quais discos da política com estado de um MIG devem ser tornados sem estado, remova a configuração de cada disco da política com estado do MIG usando o método instanceGroupManagers.patch :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instanceGroupManagers/NAME

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "DEVICE_NAME": null,
        ...
      }
    }
  }
}

Substitua o seguinte:

  • PROJECT : O ID do projeto para a solicitação.
  • ZONE : A zona onde o MIG está localizado (aplica-se a um MIG zonal).
    • Para um MIG regional, substitua zones/ ZONE por regions/ REGION e especifique a região do MIG.
  • NAME : O nome do MIG a ser atualizado.
  • DEVICE_NAME : o nome do dispositivo de um disco que você deseja remover da política com estado. Fornecer um valor null leva à remoção da configuração com estado desse disco. Você pode fornecer um ou vários nomes de dispositivos para remover.

Exemplo

Você executa um aplicativo legado com vários nós em um MIG denominado example-legacy-group . Cada VM no MIG armazena dados do aplicativo em um disco de inicialização com nome de dispositivo boot-disk , que você configurou como stateful na política stateful do MIG. Você moveu os dados do aplicativo para um disco adicional e agora deseja tornar o disco de inicialização sem estado para facilitar a atualização para novas imagens.

Para remover a configuração com estado do disco de inicialização, aplique patch ao grupo gerenciado de instâncias:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group

{
  "statefulPolicy": {
    "preservedState": {
      "disks": {
        "boot-disk": null
      }
    }
  }
}

O MIG remove a configuração com estado do nome do dispositivo boot-disk de forma automática e assíncrona para os discos de inicialização de todas as instâncias do grupo. Os discos de inicialização permanecem anexados às instâncias, mas não têm mais estado. Quando você recria ou atualiza as instâncias, ou quando as instâncias são reparadas automaticamente, o MIG recria os discos de inicialização a partir da imagem especificada no modelo de instância.

Remover discos permanentes com estado de um MIG

Talvez seja necessário remover completamente um disco com estado de instâncias em um MIG, por exemplo, se você reprojetar seu aplicativo e mover o estado desse disco.

Os MIGs não permitem a remoção de discos com estado, portanto, você deve executar as seguintes etapas:

  1. Remova a configuração com estado do disco da política com estado. Isso torna os discos com o nome de dispositivo fornecido sem estado.
  2. Desanexe os discos das VMs se ainda quiser mantê-los.
  3. Implemente um novo modelo de instância que não defina mais o disco com o nome de dispositivo fornecido.

Configurar discos permanentes com estado individualmente para uma VM em um MIG

Configure discos persistentes com estado para uma VM específica em um MIG adicionando o nome do dispositivo do disco à configuração por instância dessa VM. Atualize a VM para aplicar a configuração por instância e torná-la efetiva.

Configurar discos permanentes com estado individualmente para VMs específicas em um MIG será útil se você precisar:

  • Migre cargas de trabalho existentes (traga os discos existentes) de VMs autônomas para MIGs com estado para se beneficiar da recuperação automática e de atualizações fáceis.
  • Restaure backups de discos, configurados individualmente para VMs.
  • Anexe temporariamente discos com estado adicionais a uma VM específica para testar, depurar ou copiar dados.

Adicionar discos com estado existentes a novas VMs em um MIG

Você pode adicionar discos com estado existentes a novas instâncias criadas manualmente em um MIG. Isso é útil para migrar um aplicativo com estado de VMs autônomas existentes para um MIG com estado, por exemplo:

  1. Crie um modelo de instância com configuração comum para todas as instâncias de VM.
  2. Desconecte os discos de dados das instâncias autônomas e exclua essas instâncias. Você também pode desanexar discos de inicialização se eles contiverem um estado que deva ser preservado.
  3. Crie um MIG vazio usando o modelo de instância criado anteriormente.
  4. Crie instâncias no MIG com os nomes apropriados e discos associados da etapa anterior. O MIG responde à sua solicitação com as seguintes ações:

    1. Cria uma VM a partir do modelo de instância usando o nome de instância fornecido.
      • Um MIG regional cria a VM na mesma zona onde o disco está localizado. Se o disco for regional, o MIG regional criará a VM em qualquer uma das zonas de réplica do disco.
    2. Cria uma configuração por instância com a configuração com estado fornecida para os discos.
    3. Anexa os discos à nova instância.

Adicione discos com estado existentes ao criar manualmente instâncias específicas em um MIG usando a CLI gcloud ou REST. O MIG aplica a configuração imediatamente na criação da VM.

gcloud

Para criar uma VM com um nome personalizado e anexar um ou mais discos com estado existentes a essa VM, use o comando gcloud compute instance-groups managed create-instance com uma ou várias sinalizações --stateful-disk .

gcloud compute instance-groups managed create-instance NAME \
  --instance VM_NAME \
  [--zone ZONE | --region REGION] \
  --stateful-disk device-name=DEVICE_NAME,source=DISK[,mode=MODE][,auto-delete=DELETE_RULE]

Substitua o seguinte:

  • NAME : O nome do MIG no qual você precisa criar uma instância.
  • VM_NAME : o nome da nova instância a ser criada.
  • ZONE : A zona onde o MIG está localizado (aplica-se a um MIG zonal).
  • REGION : A região onde o MIG está localizado (aplica-se a um MIG regional).
  • DEVICE_NAME : o nome do dispositivo a ser usado ao anexar o disco.
  • DISK : o URI de um disco permanente existente a ser anexado ao DEVICE_NAME especificado no formato projects/ project-id /zones/ zone /disks/ disk-name para um disco zonal e projects/ project-id /regions/ region /disks/ disk-name para um disco regional.
  • MODE : Especifica o modo do disco. As opções suportadas são:
    • ro : somente leitura.
    • rw : (Padrão.) Leitura/gravação.
  • DELETE_RULE : um valor que prescreve o que deve acontecer a um disco com estado quando uma instância de VM é excluída. As opções disponíveis são:

    • never : (Padrão.) Nunca exclua o disco; em vez disso, desconecte o disco quando sua instância for excluída.
    • on-permanent-instance-deletion : exclua o disco com estado quando sua instância for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo diminuir.

    Independentemente do valor da regra de exclusão, os discos com estado são sempre preservados nas operações de recuperação automática, atualização e recriação da instância.

Exemplo

Você deseja ter recuperação automática para um servidor de banco de dados que está atualmente em execução em uma VM autônoma chamada db-instance e que atualmente armazena dados em um disco chamado db-data-disk-1 .

Crie um MIG com estado com recuperação automática, crie uma VM semelhante dentro do MIG e anexe o disco de dados existente db-data-disk-1 à nova instância como um disco com estado:

  1. Pare a VM, db-instance , durante uma janela de manutenção.
  2. Crie um modelo de instância chamado db-template usando a configuração db-instance .
  3. Desanexe db-data-disk-1 de db-instance e exclua db-instance .
  4. Crie um MIG vazio, example-database-mig , de db-template e configure a recuperação automática.
  5. Crie uma instância gerenciada com o nome de db-instance original e anexe db-data-disk-1 como um disco com monitoração de estado:

    gcloud compute instance-groups managed create-instance example-database-mig \
      --instance db-instance \
      --zone us-east1-c \
      --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/db-data-disk-1,auto-delete=never
    

    O comando cria uma instância, db-instance , no MIG, cria uma configuração correspondente por instância com db-data-disk-1 stateful disk e anexa o disco à nova VM, usando data-disk como o nome do dispositivo.

DESCANSAR

Para criar uma ou várias instâncias em um MIG, definir nomes de VM personalizados e anexar um ou vários discos com estado existentes a essas instâncias, use o método instanceGroupManagers.createInstances .

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/createInstances

{
  "instances": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      }
    },
    ...
  ]
}

Substitua o seguinte:

  • PROJECT_ID : ID do projeto da solicitação.
  • ZONE : A zona onde o MIG está localizado (aplica-se a um MIG zonal).
    • Para um MIG regional, substitua zones/ ZONE por regions/ REGION e especifique a região do MIG.
  • NAME : O nome do MIG no qual será criada uma instância.
  • VM_NAME : o nome da instância a ser criada.
  • DEVICE_NAME : o nome do dispositivo a ser usado ao anexar o disco.
  • DISK : o URI de um disco permanente existente a ser anexado ao DEVICE_NAME especificado no formato projects/ project-id /zones/ zone /disks/ disk-name para um disco zonal ou projects/ project-id /regions/ region /disks/ disk-name para um disco regional.
  • MODE : Especifica o modo do disco. As opções suportadas são:
    • READ_ONLY : Somente leitura.
    • READ_WRITE : (Padrão.) Leitura/gravação.
  • DELETE_RULE : um valor que prescreve o que deve acontecer a um disco com estado quando uma VM é excluída. As opções disponíveis são as seguintes:

    • never : (Padrão.) Nunca exclua o disco; em vez disso, desconecte o disco quando sua VM for excluída.
    • on-permanent-instance-deletion : exclua o disco com estado quando sua instância for excluída permanentemente do grupo de instâncias, por exemplo, quando a instância for excluída manualmente ou quando o tamanho do grupo diminuir.

    Independentemente do valor da regra de exclusão, os discos com estado são sempre preservados nas operações de recuperação automática, atualização e recriação da instância.

Exemplo

Você deseja ter recuperação automática para um servidor de banco de dados que está atualmente em execução em uma VM autônoma chamada db-instance e que atualmente armazena dados em um disco chamado db-data-disk-1 .

Crie um MIG com estado com recuperação automática, crie uma instância semelhante dentro do MIG e anexe o disco de dados existente db-data-disk-1 à nova VM como um disco com estado:

  1. Pare a VM, db-instance , durante uma janela de manutenção.
  2. Crie um modelo de instância chamado db-template usando a configuração db-instance .
  3. Desanexe db-data-disk-1 de db-instance e exclua db-instance .
  4. Crie um MIG vazio, example-database-mig , de db-template e configure a recuperação automática.
  5. Crie uma instância com o nome db-instance original e anexe db-data-disk-1 como um disco com estado:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/createInstances
    
    {
      "instances": [
        {
          "name": "db-instance",
          "preservedState" : {
            "disks": {
              "data-disk" : {
                "source": "projects/example-project/zones/us-east1-c/disks/db-data-disk-1",
                "mode": "READ_WRITE",
                "autoDelete": "never"
              }
            }
          }
        }
      ]
    }
    

    O método cria uma instância, db-instance , no MIG, cria uma configuração correspondente por instância com o disco com estado db-data-disk-1 e anexa o disco à nova instância, usando data-disk como o nome do dispositivo.

Adicionar, declarar e substituir discos com estado individualmente para VMs em um MIG

Configure discos com estado individualmente para uma instância gerenciada adicionando ou atualizando uma configuração de disco com estado na configuração por instância associada. Em seguida, atualize a instância para aplicar a configuração por instância à VM.

Configurar discos com estado individualmente é útil para as seguintes tarefas:

  • Adicionar um disco com estado de fora de um MIG a uma VM nesse MIG.
  • Declarar um disco anteriormente sem estado como com estado para uma VM em um MIG.
  • Substituir um disco com estado por um disco diferente para uma VM em um MIG.

Adicionar um disco com estado de fora de um MIG a uma VM nesse MIG. Você pode anexar qualquer disco de fora de um MIG a uma instância gerenciada adicionando uma configuração com estado do disco à configuração por instância associada. Depois de aplicar a configuração, o MIG anexa automaticamente o disco à instância e o trata como com monitoração de estado.

Declarar um disco permanente anteriormente sem estado como com estado. Você pode declarar um disco anteriormente sem estado, atualmente conectado a uma VM, como com estado, adicionando uma configuração com estado para esse disco, incluindo seu nome de dispositivo e URI, à configuração por instância associada. Depois de aplicar a configuração, o MIG começa a preservar o disco com estado.

Substituindo um disco com estado por um disco diferente. Substituir um disco com estado por outro disco com estado pode ser útil, por exemplo, se você precisar de acesso a um backup recuperado. Você pode trocar um disco com estado por outro atualizando o URI do disco enquanto mantém o mesmo nome de dispositivo na configuração por instância. Depois de aplicar a configuração atualizada por instância, o MIG desconecta o disco antigo e anexa o novo usando o mesmo nome de dispositivo. Ao aplicar a atualização, escolha manter a instância em execução, reiniciar ou recriá -la. A troca de um disco de inicialização requer pelo menos uma reinicialização da VM.

gcloud

Para configurar discos com estado individual individualmente para uma VM em uma MIG, adicione ou atualize a configuração de disco com estado com a configuração de instance associada. Em seguida, atualize a instância para aplicar a configuração .

Se ainda não existir uma configuração por instância, use o comando gcloud compute instance-groups managed instance-configs create --stateful-disk CONFIGS CRIE

gcloud compute instance-groups managed instance-configs create NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

Se já existir uma configuração por instância para a instância, use o comando gcloud compute instance-groups managed instance-configs update com um ou vários sinalizadores --stateful-disk .

O --update-instance (padrão) aplica as alterações imediatamente à instância. Se você usar --no-update-instance , as alterações permanecem desaprovado e são aplicadas quando você recriar ou atualizar a instância.

gcloud compute instance-groups managed instance-configs update NAME \
--instance VM_NAME \
--stateful-disk device-name=DEVICE_NAME[,source=DISK][,mode=MODE][,auto-delete=DELETE_RULE] \
[--no-update-instance | --update-instance] \
[--instance-update-minimal-action MINIMAL_ACTION]

Substitua o seguinte:

  • NAME : o nome do grupo de instância gerenciado.
  • VM_NAME : o nome da instância da VM para a qual configurar discos com estado.
  • DEVICE_NAME : o nome do dispositivo usado para conectar o disco.
  • DISK : o URI de um disco persistente existente a ser anexado sob o DEVICE_NAME especificado, nos projects/ project-id /zones/ zone /disks/ disk-name para um disco zonal e projects/ project-id /regions/ region /disks/ disk-name para um disco regional.

    O subfado source= DISK é opcional se o dispositivo já estiver definido na configuração PER-Instance da instância. Caso contrário, é necessário.

    Se omitido, o URI de disco atualmente configurado permanece inalterado.

  • MODE : especifica o modo do disco. Você só pode especificar mode se também especificar source . As opções suportadas são:

    • ro : somente leitura.
    • rw : (padrão.) Leia/gravação.

    Se omitido, o valor padrão será definido para uma nova configuração de disco com estado; O valor permanece inalterado em uma configuração existente.

  • DELETE_RULE : um valor que prescreve o que deve acontecer com um disco com estado quando uma VM é excluída. As opções disponíveis são as seguintes:

    • never : (padrão.) Nunca exclua o disco; Em vez disso, separe o disco quando sua instância for excluída.
    • on-permanent-instance-deletion : Exclua o disco com estado quando sua instância for excluída permanentemente do grupo de instância, por exemplo, quando a instância é excluída manualmente ou quando o tamanho do grupo é diminuído.

    Se omitido, o valor padrão será definido para uma nova configuração de disco com estado; O valor permanece inalterado em uma configuração existente.

    Independentemente do valor da regra de exclusão, os discos com estado são sempre preservados nas operações de criação automática, atualização e recreação.

  • MINIMAL_ACTION : execute pelo menos a ação especificada ao aplicar a atualização da configuração por instância na instância. Deve ser usado junto com o sinalizador --update-instance . O valor deve ser um dos seguintes:

    • none : sem ação.
    • refresh : aplique atualizações possíveis para aplicar sem interromper a VM.
    • restart : pare a VM e depois comece novamente.
    • replace : recrie a VM.

    Se omitido, a ação menos disruptiva exigida pela atualização é usada.

Exemplo

Os dados em um disco estacionado atualmente anexado, data-disk-1 , foram corrompidos e você deseja restaurá-lo do backup mais recente. Você criou um disco, data-disk-2 , a partir de um instantâneo para substituir o disco corrompido, por exemplo, db-instance-1 , gerenciado por um MIG com estado, example-database-mig . O data-disk-1 é anexado no nome do dispositivo data-disk com uma regra de telete automática para nunca excluir o disco.

Para substituir data-disk-1 pelo data-disk-2 , execute o seguinte comando:

gcloud compute instance-groups managed instance-configs update example-database-mig \
  --instance db-instance-1 \
  --stateful-disk device-name=data-disk,source=projects/example-project/zones/us-east1-c/disks/data-disk-2 \
  --update-instance \
  --instance-update-minimal-action restart

O comando faz o seguinte:

  1. Atualiza a configuração por Instance para db-instance-1 :
    1. Atualiza a fonte do disco com o nome do dispositivo data-disk de data-disk-1 (última configuração) para data-disk-2 (nova configuração).
    2. Mantém a regra de eliminação automática para nunca excluir o disco porque o parâmetro auto-delete é omitido no sinalizador --stateful-disk e, por padrão, a regra de exclusão never é.
  2. Aplica a atualização da configuração por instance à VM db-instance-1 imediatamente porque o sinalizador --update-instance está incluído. O MIG destaca data-disk-1 e anexa data-disk-2 no mesmo nome do dispositivo, data-disk .
  3. Como a ação mínima está definida como restart , o MIG reinicia a instância db-instance-1 para atualizar a VM, o que ajuda o aplicativo de banco de dados a iniciar o uso do novo disco.

Terraforma

Para configurar discos com estado individual individualmente para uma VM em um MIG, adicione a configuração de disco com estado na configuração de instance associada. Em seguida, atualize a instância para aplicar a configuração .

Para adicionar configuração por instance para uma VM, use o recurso google_compute_per_instance_config e inclua o bloco preserved_state conforme mostrado na amostra a seguir.

resource "google_compute_per_instance_config" "default" {
  instance_group_manager = google_compute_instance_group_manager.default.name
  zone                   = google_compute_instance_group_manager.default.zone
  name                   = "db-instance"
  preserved_state {
    disk {
      device_name = "data-disk"
      source      = google_compute_disk.default.id
      delete_rule = "NEVER"
    }
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform .

DESCANSAR

Para configurar discos com estado individualmente para VMs em um MIG, adicione ou atualize a configuração de disco com estado nas configurações de instance associadas. Em seguida, atualize as instâncias para aplicar a configuração .

Se ainda não existirem configurações por instância, use o método do instanceGroupManagers.updatePerInstanceConfigs ou regionInstanceGroupManagers.updatePerInstanceConfigs com o método com configuração de estado para um ou vários discos:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/updatePerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Se já existirem configurações de instance para as VMs especificadas, use o método do instanceGroupManagers.patchPerInstanceConfigs ou regionInstanceGroupManagers.patchPerInstanceConfigs Método com configuração estabelecida para um ou vários discos:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : {
            "source": "DISK",
            "mode": "MODE",
            "autoDelete": "DELETE_RULE"
          },
          ...
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto para a solicitação.
  • ZONE : a zona onde o MIG está localizado (aplica -se a um MIG zonal).
    • Para um MIG regional, substitua zones/ ZONE por regions/ REGION e especifique a região do MIG.
  • NAME : O nome do MIG.
  • VM_NAME : o nome da VM, para qual configurar discos com estado.
  • DEVICE_NAME : o nome do dispositivo usado para conectar o disco.
  • DISK : o URI de um disco persistente existente a ser anexado sob o DEVICE_NAME especificado, nos projects/ project-id /zones/ zone /disks/ disk-name para um disco zonal e projects/ project-id /regions/ region /disks/ disk-name para um disco regional.

    O campo "source": " DISK " é opcional se o dispositivo já estiver definido na configuração por instance da instância. Caso contrário, é necessário.

    Se o campo source for omitido, o URI de disco atualmente configurado permanecerá inalterado.

  • MODE : (Opcional.) Especifica o modo do disco. mode só pode ser especificado se source for fornecida. As opções suportadas são:

    • READ_ONLY : somente leitura.
    • READ_WRITE : (padrão.) Leia/gravação.

    Se omitido, o valor padrão será definido para uma nova configuração de disco com estado; O valor permanece inalterado em uma configuração existente.

  • DELETE_RULE : (opcional.) Um valor que prescreve o que deve acontecer com um disco com estado quando uma VM é excluída. As opções disponíveis são as seguintes:

    • nunca: (padrão.) Nunca exclua o disco; Em vez disso, separe o disco quando sua instância for excluída.
    • on-permanent-instance-deletion : Exclua o disco com estado quando sua instância for excluída permanentemente do grupo de instância, por exemplo, quando a instância é excluída manualmente ou quando o tamanho do grupo é diminuído.

    Se o campo autoDelete for omitido, o valor padrão será definido para uma nova configuração de disco com estado; O valor permanece inalterado em uma configuração existente.

    Independentemente do valor da regra de exclusão, os discos com estado são sempre preservados nas operações de criação automática, atualização e recreação.

  • FINGERPRINT : (opcional). A impressão digital para a configuração fornecida se ela já existir. Usado para bloqueio otimista. Para ver as últimas impressões digitais, faça uma solicitação get() para recuperar o recurso.

Os métodos updatePerInstanceConfigs e patchPerInstanceConfigs atualizam as configurações de instance especificadas, mas não aplicam as atualizações de configuração às VMs gerenciadas associadas. As alterações são aplicadas a uma instância quando o MIG é instruído a recriar ou atualizar a instância. Você também pode atualizar seletivamente a instância para aplicar as alterações.

Exemplo

Os dados em um disco estacionado atualmente anexado, data-disk-1 , foram corrompidos e você deseja restaurá-lo do backup mais recente. Você criou um disco, data-disk-2 , a partir de um instantâneo para substituir o disco corrompido, por exemplo, db-instance-1 , gerenciado por um MIG com estado, example-database-mig . O data-disk-1 é anexado no nome do dispositivo data-disk com uma regra de telete automática para nunca excluir o disco.

Para atualizar a configuração PER-Instance para db-instance-1 com o novo disco, ligue para o método patchPerInstanceConfigs :

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "db-instance-1",
      "preservedState" : {
        "disks": {
          "data-disk" : {
            "source": "projects/example-project/zones/us-east1-c/disks/data-disk-2"
          }
        }
      }
    }
  ]
}

O método corrige a configuração PER-Instance para db-instance-1 :

  1. Atualiza a source para um disco com o nome do dispositivo data-disk do data-disk-1 (última configuração) para data-disk-2 (nova configuração).
  2. Mantém os parâmetros mode e autoDelete inalterados porque os parâmetros são omitidos na solicitação.

A atualização de configuração ainda não foi aplicada à VM db-instance-1 . O MIG aplica a atualização de configuração ao recriar ou atualizar a instância.

Para aplicar a atualização de configuração por instance à VM db-instance-1 , ligue para o método do instanceGroupManagers.applyUpdatesToInstances para a instância:

POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-database-mig/applyUpdatesToInstances
{
  "instances": ["/zones/us-east1-c/instances/db-instance-1"],
  "minimalAction": "RESTART"
}

O método atualiza o estado preservado da instância gerenciada, destacando data-disk-1 e a anexação data-disk-2 no mesmo nome do dispositivo data-disk . Como a minimalAction está definida para RESTART , o método reinicia a VM db-instance-1 , que permite que o aplicativo de banco de dados comece a usar o novo disco.

Destacar um disco com estado ou declarar -o sem estado para uma VM individual

Pode ser necessário destacar um disco com estado ou configurá -lo para ser tratado como apátrida para uma VM individual. Por exemplo:

  • Se você pesquisar seu aplicativo para mover o estado para fora do disco.
  • Se você configurar o disco para ser um estado por engano e gostaria de revertê -lo.

Desconecte um disco com estado ou torne-o sem estado para uma VM individual, removendo a configuração com estado do disco da configuração per-instance associada ou excluindo toda a configuração por instance. Quando você aplica a mudança:

  • Se o disco não estiver definido no modelo de instância, o MIG desafia o disco.
    • O MIG não exclui o disco quando você exclui sua configuração da configuração PER-Instance, independentemente da regra de eletância automática na configuração.
  • Se o disco for definido pelo modelo de instância, o MIG tratará o disco como sem estado, o que significa que o MIG recria o disco de sua fonte no modelo de instância na recreação subsequente de instância, atualização ou eventos de criação automática.

A remoção de uma configuração de disco de uma configuração por instância não reinicia uma instância em execução da VM, a menos que você opte explicitamente.

Para obter mais informações, consulte Aplicação de atualizações de configurações por instância .

gcloud

Para destacar os discos com estado ou declará-los sem estado individualmente para uma VM em um MIG, remova a configuração do disco com estado da configuração por instância associada ou exclua toda a configuração por instância se não contiver nenhum outro estado. Atualize a instância para aplicar a configuração.

Para remover uma configuração de disco com estado da configuração per-instance associada, use o comando gcloud compute instance-groups managed instance-configs update com o sinalizador --remove-stateful-disks . O --update-instance (padrão) aplica as alterações imediatamente à instância. Se você usar --no-update-instance , as alterações permanecem desaprovado e são aplicadas quando você recriar ou atualizar a instância.

gcloud compute instance-groups managed instance-configs update NAME \
  --instance VM_NAME \
  --remove-stateful-disks DEVICE_NAME[,DEVICE_NAME,...] \
  [--no-update-instance | --update-instance] \
  [--instance-update-minimal-action MINIMAL_ACTION]

Substitua o seguinte:

  • NAME : O nome do MIG.
  • VM_NAME : nome da VM para remover a configuração do estado.
  • DEVICE_NAME : o nome do dispositivo usado para conectar o disco.
  • MINIMAL_ACTION : execute pelo menos a ação especificada ao atualizar a VM com sua configuração PER-Instance. Só pode ser usado junto com --update-instance . O valor deve ser um a seguir:

    • none : sem ação.
    • refresh : aplique atualizações possíveis para aplicar sem interromper a VM.
    • restart : pare a VM e depois comece novamente.
    • replace : recrie a VM.

    Se omitido, a ação menos disruptiva exigida pela atualização é usada.

Exemplo

Você executa um aplicativo herdado em um MIG chamado example-legacy-group . Cada VM nos dados do aplicativo MIG armazena em um disco de inicialização com o nome do dispositivo, boot-disk . Usando configurações por instância, você configurou cada disco de inicialização para ser um estado. Agora você moveu os dados do aplicativo para um disco adicional e deseja tornar o disco de inicialização sem firmeza para cada VM para facilitar a atualização para novas imagens.

Para cada instância, por exemplo, para node-1 , execute o comando:

gcloud compute instance-groups managed instance-configs update example-legacy-group \
  --instance node-1 \
  --remove-stateful-disks boot-disk \
  --update-instance

O comando faz o seguinte:

  1. Remove a configuração para o disco com o nome do dispositivo boot-disk da configuração PER-Instance para node-1 .
  2. Aplica a atualização da configuração por instance para a VM node-1 imediatamente porque o sinalizador --update-instance está incluído. O MIG remove o disco de inicialização do preservedStateFromConfig da instância Gerenciado e trata o disco de inicialização como sem estado, o que significa que o MIG recria o disco de sua imagem de inicialização no modelo de instância na recreação de instância subsequente, atualização ou eventos de auto -criação.

DESCANSAR

Para destacar os discos com estado ou declará-los sem estado individualmente para uma VM em um MIG, remova a configuração do disco com estado da configuração por instância associada ou exclua toda a configuração por instância se não contiver nenhum outro estado. Em seguida, atualize a instância para aplicar a configuração .

Para remover uma configuração de disco com estado da configuração per-instance associada , use o método do instanceGroupManagers.patchPerInstanceConfigs ou regionInstanceGroupManagers.patchPerInstanceConfigs Método :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "VM_NAME",
      "preservedState" : {
        "disks": {
          "DEVICE_NAME" : null
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
      ...
    }
  ]
}

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto para a solicitação.
  • ZONE : a zona onde o MIG está localizado (aplica -se a um MIG zonal).
    • Para um MIG regional, substitua zones/ ZONE por regions/ REGION e especifique a região do MIG.
  • NAME : O nome do MIG.
  • VM_NAME : o nome da VM para remover a configuração do estado.
  • DEVICE_NAME : o nome do dispositivo usado para conectar o disco.
  • FINGERPRINT : a impressão digital para a configuração fornecida se já existir. Usado para bloqueio otimista. Para ver as últimas impressões digitais, faça uma solicitação get() para recuperar o recurso.

O método patchPerInstanceConfigs corra as configurações especificadas por Instance, mas não aplica as alterações às VMs associadas. As alterações são aplicadas a uma VM quando você recrie ou atualiza a instância. Você pode aplicar as alterações manualmente ou usar atualizações automatizadas de rolagem.

Exemplo

Você executa um aplicativo herdado em um MIG chamado example-legacy-group . Cada VM nos dados do aplicativo MIG armazena em um disco de inicialização com o nome do dispositivo boot-disk . Você configurou o disco de inicialização como com estado nas configurações por instance do MIG ao migrar as VMs independentes para o MIG. Você moveu os dados do aplicativo para um disco adicional e agora deseja tornar o disco de inicialização semeado para cada VM para facilitar a atualização de novas imagens.

  1. Ligue para o método patchPerInstanceConfigs para as instâncias, por exemplo, para o node-1 com um valor null para o disco de inicialização:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/patchPerInstanceConfigs
    
    {
      "perInstanceConfigs": [
        {
          "name": "node-1",
          "preservedState" : {
            "disks": {
              "boot-disk" : null
            }
          }
        }
      ]
    }
    

    O método remove a configuração para o disco com o nome do dispositivo boot- disk da configuração PER-Instance para node-1 . A atualização de configuração ainda não foi aplicada à instância node-1 VM. A atualização de configuração será aplicada na próxima recreação ou atualização da instância.

  2. Para aplicar a atualização da configuração por instance na instância do node-1 VM, ligue para o método do instanceGroupManagers.applyUpdatesToInstances para a instância:

    POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-east1-c/instanceGroupManagers/example-legacy-group/applyUpdatesToInstances
    {
      "instances": ["/zones/us-east1-c/instances/node-1"]
    }
    

    O MIG remove o disco de inicialização do preservedStateFromConfig para a instância node-1 e trata o disco como sem estado. Ou seja, o MIG recria o disco de sua imagem de inicialização no modelo de instância em eventos subsequentes de recreação, atualização ou criação de automóveis subsequentes.

Opinião

Queremos aprender sobre seus casos de uso, desafios e feedback sobre os MIGs com estado. Compartilhe seus comentários com nossa equipe em mig-discuss@google.com .

O que vem a seguir