Usando Reservas de Capacidade para Provisionar Nós Gerenciados

Descubra como reservar capacidade de computação para clusters que você criou usando o Kubernetes Engine (OKE).

O serviço Compute permite criar reservas de capacidade para garantir que a capacidade de computação esteja disponível para cargas de trabalho quando necessário durante eventos críticos, como recuperação de desastres ou picos inesperados de carga de trabalho. Para obter mais informações sobre como o serviço Compute aloca capacidade, quanta capacidade é reservada e como limites e cotas são aplicados, consulte Reservas de Capacidade.

Tendo criado uma reserva de capacidade no serviço Compute, você pode especificar essa reserva de capacidade ao usar o Kubernetes Engine para definir a configuração de posicionamento de um pool de nós gerenciado. A especificação da reserva de capacidade garante que os nós gerenciados do pool de nós sejam criados usando instâncias de computação da capacidade reservada.

Observe o seguinte:

  • Antes de especificar uma reserva de capacidade na configuração de posicionamento de um pool de nós, a reserva de capacidade já deve existir. Para ver as etapas para criar uma reserva de capacidade, consulte Gerenciando Reservas de Capacidade.
  • Certifique-se de que a forma do nó, o domínio de disponibilidade e o domínio de falha na configuração de posicionamento do pool de nós correspondam ao tipo de instância, ao domínio de disponibilidade e ao domínio de falha da reserva de capacidade, respectivamente.
  • Se você especificar vários domínios de disponibilidade na configuração de posicionamento de um pool de nós, poderá especificar uma reserva de capacidade diferente para cada domínio de disponibilidade.
  • As alterações feitas nas propriedades do nó de trabalho só se aplicam aos novos nós de trabalho. A atualização da reserva de capacidade associada a um pool de nós não afeta as propriedades dos nós de trabalho existentes.

Políticas Obrigatórias do Serviço IAM para Usar Reservas de Capacidade

Para usar uma reserva de capacidade ao definir a configuração de posicionamento de um pool de nós, você deve pertencer a um grupo que recebeu permissão para usar reservas de capacidade. Para conceder essa permissão, crie a seguinte política:

Allow group <group-name> to use compute-capacity-reservations in <location>

Observe que, se um grupo não estiver no domínio de identidades padrão, coloque o nome do grupo no formato group '<identity-domain-name>'/'group-name' como prefixo. Você também pode especificar um grupo usando seu OCID, no formato group id <group-ocid>.

Para provisionar nós gerenciados de uma reserva de capacidade, você deve conceder ao Kubernetes Engine permissão para iniciar instâncias usando reservas de capacidade. Para conceder essa permissão, crie uma política com as seguintes instruções de política:

Allow service oke to use compute-capacity-reservations in tenancy
Allow any-user to use compute-capacity-reservations in tenancy where request.principal.type = 'nodepool'

Para obter mais informações, consulte Política do Serviço IAM Obrigatória.

Reservas de Capacidade Padrão

O Kubernetes Engine suporta o uso de reservas de capacidade padrão ao iniciar nós gerenciados. Com reservas de capacidade padrão, você pode garantir que a mesma reserva de capacidade seja usada toda vez que uma instância for iniciada no domínio de disponibilidade e na tenancy associados à reserva. Depois de criar uma reserva de capacidade padrão, todas as instâncias (incluindo nós gerenciados) iniciadas nesse domínio de disponibilidade e na tenancy usarão a capacidade da reserva de capacidade padrão sempre que possível. Para obter mais informações, consulte Reservas de Capacidade Padrão.

Pode haver ocasiões em que você não deseja provisionar nós de trabalho de uma reserva de capacidade padrão. Você pode selecionar uma reserva de capacidade alternativa ou optar por não usar nenhuma reserva de capacidade.

Usando a Console

Criando um Cluster e Especificando Reservas de Capacidade

  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 Configuradas Explicitamente no workflow 'Criação Personalizada'.
  2. Ao especificar a Configuração de Posicionamento 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 associado à reserva de capacidade que você pretende usar.
      • Domínio de Falha: (Opcional) Um ou mais domínios de falha no domínio de disponibilidade no qual colocar nós de trabalho.
      • Sub-rede: Selecione a sub-rede associada à reserva de capacidade que você pretende usar.
    2. Clique em Mostrar Opções Avançadas e especifique a reserva de capacidade a ser usada:

      • Tipo de Capacidade: Selecione Reserva de Capacidade.
      • Reserva de Capacidade: Selecione na lista a reserva de capacidade a ser usada. Se você não selecionar explicitamente uma reserva de capacidade e uma reserva de capacidade padrão tiver sido criada para o domínio de disponibilidade, a reserva de capacidade padrão será usada. Se você não quiser usar a reserva de capacidade padrão ou qualquer outra reserva de capacidade, selecione Desativar a reserva padrão.

    3. Opcionalmente, clique em Outra Linha para adicionar domínios de disponibilidade, sub-redes e reservas de capacidade adicionais à 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 uma reserva de capacidade diferente para cada domínio de disponibilidade.

Criando um Pool de Nós Gerenciados e Especificando Reservas de Capacidade

  1. Abra o menu de navegação e clique em Serviços ao Desenvolvedor. Em Contêineres e Artefatos, clique em Clusters do Kubernetes (OKE).
  2. Escolha um Compartimento no qual você tem permissão para trabalhar.
  3. Na página Lista de Clusters, clique no nome do cluster em que você deseja criar um novo pool de nós.
  4. Na página Cluster, exiba a guia Grupos de Nós e, em seguida, clique em Adicionar Pool de Nós para criar um novo pool de nós gerenciados e especificar as propriedades necessárias para seus nós de trabalho.
  5. Ao especificar a Configuração de Posicionamento 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 associado à reserva de capacidade que você pretende usar.
      • Domínio de Falha: (Opcional) Um ou mais domínios de falha no domínio de disponibilidade no qual colocar nós de trabalho.
      • Sub-rede: Selecione a sub-rede associada à reserva de capacidade que você pretende usar.
    2. Clique em Mostrar Opções Avançadas e especifique a reserva de capacidade a ser usada:

      • Tipo de Capacidade: Selecione Reserva de Capacidade.
      • Reserva de Capacidade: Selecione na lista a reserva de capacidade a ser usada. Se você não selecionar explicitamente uma reserva de capacidade e uma reserva de capacidade padrão tiver sido criada para o domínio de disponibilidade, a reserva de capacidade padrão será usada. Se você não quiser usar a reserva de capacidade padrão ou qualquer outra reserva de capacidade, selecione Desativar a reserva padrão.

    3. Opcionalmente, clique em Outra Linha para adicionar domínios de disponibilidade, sub-redes e reservas de capacidade adicionais à 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 uma reserva de capacidade diferente para cada domínio de disponibilidade.

Atualizando um Pool de Nós Gerenciados e Especificando Reservas de Capacidade

  1. Abra o menu de navegação e clique em Serviços ao Desenvolvedor. Em Contêineres e Artefatos, clique em Clusters do Kubernetes (OKE).
  2. Escolha um Compartimento no qual você tem permissão para trabalhar.
  3. Na página Lista de Clusters, clique no nome do cluster que você deseja modificar.
  4. Clique em Pools de Nós em Recursos e clique no nome do pool de nós gerenciado que você deseja modificar.
  5. Na página Detalhes do Pool de Nós, clique em Editar.
  6. Ao especificar a Configuração de Posicionamento 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 associado à reserva de capacidade que você pretende usar.
      • Domínio de Falha: (Opcional) Um ou mais domínios de falha no domínio de disponibilidade no qual colocar nós de trabalho.
      • Sub-rede: Selecione a sub-rede associada à reserva de capacidade que você pretende usar.
    2. Clique em Mostrar Opções Avançadas e especifique a reserva de capacidade a ser usada:

      • Tipo de Capacidade: Selecione Reserva de Capacidade.
      • Reserva de Capacidade: Selecione na lista a reserva de capacidade a ser usada. Se você não selecionar explicitamente uma reserva de capacidade e uma reserva de capacidade padrão tiver sido criada para o domínio de disponibilidade, a reserva de capacidade padrão será usada. Se você não quiser usar a reserva de capacidade padrão ou qualquer outra reserva de capacidade, selecione Desativar a reserva padrão.

    3. Opcionalmente, clique em Outra Linha para adicionar domínios de disponibilidade, sub-redes e reservas de capacidade adicionais à 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 uma reserva de capacidade diferente para cada domínio de disponibilidade.
  7. Salvar alterações.

Usando a CLI

Para obter informações sobre como usar a CLI, consulte Interface de Linha de Comando (CLI). Para obter uma lista completa de flags e opções disponíveis para comandos da CLI, consulte a Referência da Linha de Comando.

Criando um Pool de Nós Gerenciados e Especificando Reservas de Capacidade

Para usar a CLI para criar um pool de nós gerenciados que use uma reserva de capacidade para provisionar nós gerenciados, inclua o par de chave/valor capacityReservationId no parâmetro --placement-configs.

Por exemplo:

oci ce node-pool create \
--cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd \
--name test-node \
--node-image-id ocid1.image.oc1.iad.aaaaaaaa6______nha \
--compartment-id oocid1.compartment.oc1..aaaaaaaay______t6q \
--kubernetes-version v1.21.5 \
--node-shape VM.Standard2.1 \
--placement-configs "[{\"availability-domain\":\"IqDk:US-ASHBURN-AD-2\", \"capacityReservationId\":\"ocid1.capacityreservation.oc1.iad.anuwcljt2ah______yeq\", \"subnet-id\":\"ocid1.subnet.oc1.iad.aaaaaaaa2xpk______zva\", \"faultDomains\":[\"FAULT-DOMAIN-3\", \"FAULT-DOMAIN-1\"]}, {\"availability-domain\":\"IqDk:US-ASHBURN-AD-1\", \"subnet-id\":\"ocid1.subnet.oc1.iad.aaaaaaaauhls______bpq\", \"faultDomains\": [\"FAULT-DOMAIN-1\", \"FAULT-DOMAIN-2\"]}]" \
--size 1 \
--region=us-ashburn-1 \

Se uma reserva de capacidade padrão tiver sido criada para o domínio de disponibilidade no qual você está criando o pool de nós, essa reserva de capacidade será usada por padrão. Se você não quiser usar a reserva de capacidade padrão ou qualquer outra reserva de capacidade, defina o valor da chave capacityReservationId como uma string vazia entre aspas duplas, ou seja, \"capacityReservationId\":\"".

Se você especificar vários domínios de disponibilidade na configuração de posicionamento de um pool de nós, poderá especificar uma reserva de capacidade diferente para cada domínio de disponibilidade.

Usando a API

Para obter informações sobre como usar a API e assinar solicitações, consulte a documentação da API REST e Credenciais de Segurança. Para obter informações sobre SDKs, consulte SDKs e a CLI.

Use o atributo placementConfigs do objeto nodeConfigDetails para especificar reservas de capacidade ao criar ou atualizar pools de nós gerenciados.

Se uma reserva de capacidade padrão tiver sido criada para o domínio de disponibilidade no qual você está criando o pool de nós gerenciados, essa reserva de capacidade será usada por padrão. Se você não quiser usar a reserva de capacidade padrão ou qualquer outra reserva de capacidade, defina o valor do campo capacityReservationId como uma string vazia entre aspas duplas, ou seja, "capacityReservationId":"".

Se você especificar vários domínios de disponibilidade na configuração de posicionamento de um pool de nós, poderá especificar uma reserva de capacidade diferente para cada domínio de disponibilidade.