Usando Grupos de Hosts de Computação para Provisionar Nós Gerenciados

Descubra como usar grupos de hosts de computação para controlar onde o Kubernetes Engine cria instâncias de nó de trabalho gerenciadas, incluindo o uso de grupos de hosts de computação configurados para reciclagem rápida.

Um grupo de hosts de computação é um recurso do serviço Compute que agrupa hosts em um compartimento e domínio de disponibilidade. No Kubernetes Engine, você pode selecionar um grupo de hosts de computação como o tipo de capacidade para uma configuração de posicionamento do pool de nós gerenciados. Quando o Kubernetes Engine cria instâncias de nó de trabalho para essa configuração de posicionamento, o serviço Compute coloca as instâncias em hosts no grupo de hosts de computação selecionado.

Use grupos de hosts de computação para controlar onde o Kubernetes Engine cria instâncias de nó de trabalho para um pool de nós gerenciados. Isso é útil para pools de nós que usam formas bare metal e exigem posicionamento de host dedicado ou comportamento de reciclagem rápida.

Reciclagem rápida é um recurso de grupo de hosts de computação que pode disponibilizar um host para reutilização mais rapidamente após o encerramento da instância do nó de trabalho no host. A reciclagem rápida só está disponível com formas suportadas. Para o Kubernetes Engine, isso significa que, quando uma instância de nó de trabalho é encerrada, o host pode se tornar disponível mais cedo para uma instância de nó de trabalho de substituição, dependendo da configuração do grupo de hosts de computação.

O Kubernetes Engine não cria grupos de hosts de computação, anexa hosts a grupos de hosts de computação ou configura níveis de reciclagem de grupos de hosts. Crie e configure o grupo de hosts de computação na API ou CLI do serviço Compute antes de selecioná-lo no Kubernetes Engine. Para obter mais informações sobre como criar e configurar grupos de hosts de computação, consulte Referência de API do ComputeHostGroup e referência de CLI do grupo de hosts de computação na documentação do serviço Compute.

A alteração do grupo de hosts de computação para uma configuração de posicionamento afeta novas instâncias do nó de trabalho. As instâncias existentes do nó de trabalho não são movidas automaticamente. Para usar o grupo de hosts de computação atualizado para nós existentes, encerre e substitua as instâncias de nós de trabalho existentes para que o serviço Compute coloque as instâncias de substituição em hosts no grupo de hosts de computação atualizado. Para obter mais informações, consulte Encerrando e Substituindo Nós de Trabalho.

Antes de usar um grupo de hosts de computação com um pool de nós gerenciados, observe o seguinte:

  • Crie e configure o grupo de hosts de computação no serviço Compute.
  • Certifique-se de que o estado do ciclo de vida do grupo de hosts de computação seja ACTIVE.
  • Certifique-se de que o grupo de hosts de computação esteja no mesmo domínio de disponibilidade que a configuração de posicionamento do pool de nós.
  • Certifique-se de que a forma do pool de nós corresponda à forma do grupo de hosts de computação.
  • Para reciclagem rápida, use uma forma que suporte reciclagem rápida e configure o nível de reciclagem do grupo de hosts de computação no serviço Compute antes de selecionar o grupo de hosts de computação no Kubernetes Engine.
  • Adicione a política de IAM necessária para que o Kubernetes Engine possa usar o grupo de hosts de computação ao iniciar instâncias do nó de trabalho.

Política de IAM Obrigatória

Para permitir que um pool de nós use um grupo de hosts de computação, deve existir uma política que permita ao controlador de recursos do pool de nós usar o grupo de hosts de computação. Por exemplo:

allow any-user to {HOST_GROUP_LAUNCH_INSTANCE} in compartment <compartment_name> where request.principal.type = 'nodepool' and target.resource.id = '<host_group_OCID>'

em que:

  • <compartment_name> é o nome do compartimento que contém o grupo de hosts de computação.
  • <host_group_OCID> é o OCID do grupo de hosts de computação.

Usando a Console

Você pode especificar um grupo de hosts de computação ao criar um cluster com um pool de nós gerenciados, criar um pool de nós gerenciados ou atualizar um pool de nós gerenciados existente.

Criando um cluster e especificando um grupo de hosts de computação para um pool de nós gerenciados

  1. Siga as instruções para criar um cluster usando o workflow 'Criação Personalizada'. Consulte Usando a Console para criar um Cluster com Definições Explicitamente Definidas no workflow 'Criação Personalizada'.
  2. Ao especificar a configuração de posicionamento de nós para um pool de nós gerenciados no cluster:
    1. Especifique o primeiro domínio de disponibilidade e a primeira sub-rede:
      • Domínio de disponibilidade: Selecione o domínio de disponibilidade no qual os nós de trabalho serão criados. Quando você seleciona um grupo de hosts de computação, o grupo de hosts de computação deve estar no mesmo domínio de disponibilidade.
      • Compartimento da sub-rede do nó de trabalho: Selecione o compartimento no qual reside a sub-rede do nó de trabalho.
      • Sub-rede do nó de trabalho: Selecione uma sub-rede regional (recomendado) ou uma sub-rede específica do AD configurada para hospedar nós de trabalho, na lista de sub-redes do compartimento especificado.
      • Domínios de falha: (Opcional) Um ou mais domínios de falha no domínio de disponibilidade no qual os nós de trabalho serão colocados.
    2. Selecione Opções avançadas e especifique o grupo de hosts de computação a ser usado:

      • Tipo de capacidade: Selecione Grupo de hosts.
      • Compartimento: Selecione o compartimento que contém o grupo de hosts de computação.
      • Grupo de hosts: Selecione na lista o grupo de hosts de computação a ser usado. O grupo de hosts de computação deve estar no mesmo domínio de disponibilidade que a configuração de posicionamento.

    3. Opcionalmente, selecione Adicionar linha para adicionar domínios de disponibilidade, sub-redes e grupos de hosts de computação à configuração de posicionamento. Se você especificar vários domínios de disponibilidade na configuração de posicionamento de um pool de nós, poderá especificar outro grupo de hosts de computação para cada domínio de disponibilidade.
  3. Crie o cluster.

O Kubernetes Engine cria o cluster e o pool de nós gerenciados. Para cada configuração de posicionamento que especifica um grupo de hosts de computação, o serviço Compute coloca instâncias de nó de trabalho em hosts no grupo de hosts de computação selecionado.

Criando um pool de nós gerenciados e especificando um grupo de hosts de computação

  1. Na página da lista Clusters, selecione o nome do cluster no qual você deseja criar um novo pool de nós. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando Clusters.
  2. Na guia Pools de nós da página de detalhes do cluster, selecione Adicionar pool de nó para criar um Novo Pool de Nós Gerenciados e especificar as propriedades necessárias para seus nós de trabalho,
  3. Ao especificar a configuração de posicionamento de nós para um pool de nós gerenciados no cluster:
    1. Especifique o primeiro domínio de disponibilidade e a primeira sub-rede:
      • Domínio de disponibilidade: Selecione o domínio de disponibilidade no qual os nós de trabalho serão criados. Quando você seleciona um grupo de hosts de computação, o grupo de hosts de computação deve estar no mesmo domínio de disponibilidade.
      • Compartimento da sub-rede do nó de trabalho: Selecione o compartimento no qual reside a sub-rede do nó de trabalho.
      • Sub-rede do nó de trabalho: Selecione uma sub-rede regional (recomendado) ou uma sub-rede específica do AD configurada para hospedar nós de trabalho, na lista de sub-redes do compartimento especificado.
      • Domínios de falha: (Opcional) Um ou mais domínios de falha no domínio de disponibilidade no qual os nós de trabalho serão colocados.
    2. Selecione Opções avançadas e especifique o grupo de hosts de computação a ser usado:

      • Tipo de capacidade: Selecione Grupo de hosts.
      • Compartimento: Selecione o compartimento que contém o grupo de hosts de computação.
      • Grupo de hosts: Selecione na lista o grupo de hosts de computação a ser usado. O grupo de hosts de computação deve estar no mesmo domínio de disponibilidade que a configuração de posicionamento.

    3. Opcionalmente, selecione Adicionar linha para adicionar domínios de disponibilidade, sub-redes e grupos de hosts de computação à configuração de posicionamento. Se você especificar vários domínios de disponibilidade na configuração de posicionamento de um pool de nós, poderá especificar outro grupo de hosts de computação para cada domínio de disponibilidade.
  4. Crie o pool de nós.

O Kubernetes Engine cria o pool de nós gerenciados. Para cada configuração de posicionamento que especifica um grupo de hosts de computação, o serviço Compute coloca instâncias de nó de trabalho em hosts no grupo de hosts de computação selecionado.

Atualizando o grupo de hosts de computação para um pool de nós gerenciados

  1. Na página da lista Clusters, selecione o nome do cluster a ser modificado. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando Clusters.
  2. Na guia Pools de nós da página de detalhes do cluster, selecione o nome do pool de nós gerenciados que você deseja modificar.
  3. Selecione Editar no menu Ações.
  4. Em Configuração de posicionamento de nós, selecione Opções avançadas e atualize o tipo de capacidade ou o grupo de hosts de computação selecionado, conforme necessário.
  5. Salve as alterações.

O grupo de hosts de computação atualizado é usado para novas instâncias do nó de trabalho. As instâncias existentes do nó de trabalho não são movidas automaticamente.

Para usar o grupo de hosts de computação atualizado para nós existentes, encerre e substitua as instâncias de nós de trabalho existentes para que o serviço Compute coloque as instâncias de substituição em hosts no grupo de hosts de computação atualizado. Para obter mais informações, consulte Encerrando e Substituindo Nós de Trabalho.

Usando a CLI

Criando um pool de nós gerenciados que usa um grupo de hosts de computação

Para usar a CLI para criar um pool de nós gerenciados que use um grupo de hosts de computação para provisionar nós gerenciados, inclua o par de chave/valor hostGroupId no array placementConfigs no parâmetro --node-config-details no formato:

oci ce node-pool create \
  --cluster-id <cluster_OCID> \
  --compartment-id <compartment_OCID> \
  --name <node_pool_name> \
  --kubernetes-version <kubernetes_version> \
  --node-shape <shape> \
  --node-config-details '{
    "size": 3,
    "placementConfigs": [
      {
        "availabilityDomain": "<availability_domain>",
        "subnetId": "<subnet_OCID>",
        "hostGroupId": "<host_group_OCID>"
      }
    ]
  }'

O grupo de hosts de computação deve estar no mesmo domínio de disponibilidade que a configuração de posicionamento, e a forma do pool de nós deve corresponder à forma do grupo de hosts de computação.

Atualizando o grupo de hosts de computação para um pool de nós gerenciados

Para usar a CLI para atualizar um pool de nós gerenciados que usa um grupo de hosts de computação para provisionar nós gerenciados, inclua o par de chave/valor hostGroupId no array placementConfigs no parâmetro --node-config-details no formato:

oci ce node-pool update \
  --node-pool-id <node_pool_OCID> \
  --node-config-details '{
    "placementConfigs": [
      {
        "availabilityDomain": "<availability_domain>",
        "subnetId": "<subnet_OCID>",
        "hostGroupId": "<host_group_OCID>"
      }
    ]
  }'

A atualização do hostGroupId afeta novas instâncias do nó de trabalho. As instâncias existentes do nó de trabalho não são movidas automaticamente. Para usar o grupo de hosts de computação atualizado para nós existentes, encerre e substitua as instâncias de nós de trabalho existentes para que o serviço Compute coloque as instâncias de substituição em hosts no grupo de hosts de computação atualizado. Para obter mais informações, consulte Encerrando e Substituindo Nós de Trabalho.

Usando a API

Ao criar ou atualizar um pool de nós gerenciados, especifique hostGroupId em cada configuração de posicionamento que use um grupo de hosts de computação.

Para criar solicitações de pool de nós, especifique:

CreateNodePoolDetails.createNodePoolNodeConfigDetails.placementConfigs[].hostGroupId

Para solicitações de atualização do pool de nós, especifique:

UpdateNodePoolDetails.updateNodePoolNodeConfigDetails.placementConfigs[].hostGroupId

Diagnóstico e Solução de Problemas

Use as informações a seguir para diagnosticar e solucionar problemas com grupos de hosts de computação em pools de nós gerenciados.

O grupo de hosts de computação não está disponível na lista

Verifique o seguinte:

  • Você selecionou o compartimento correto.
  • O grupo de hosts de computação está no mesmo domínio de disponibilidade que a configuração de posicionamento.
  • O grupo de hosts de computação está ativo.
  • Você tem permissão para exibir ou usar o grupo de hosts de computação.

Falha na criação ou atualização do pool de nós

Verifique o seguinte:

  • A forma do pool de nós corresponde à forma do grupo de hosts de computação.
  • Existe a política de IAM necessária.
  • O grupo de hosts de computação selecionado não foi excluído nem está inativo.
  • O grupo de hosts de computação selecionado está no mesmo domínio de disponibilidade que a configuração de posicionamento.

Os nós existentes não foram movidos para o grupo de hosts de computação atualizado

A alteração do grupo de hosts de computação afeta novas instâncias do nó de trabalho. As instâncias existentes do nó de trabalho não são movidas automaticamente.

Para usar o grupo de hosts de computação atualizado para nós existentes, encerre e substitua as instâncias de nós de trabalho existentes para que o serviço Compute coloque as instâncias de substituição em hosts no grupo de hosts de computação atualizado. Para obter mais informações, consulte Encerrando e Substituindo Nós de Trabalho.