Usando Clusters de Computação para Provisionar Nós Gerenciados
Descubra como criar pools de nós gerenciados em clusters de computação usando o Kubernetes Engine (OKE) para suportar cargas de trabalho que usam formas bare metal com capacidade de RDMA.
Cluster de computação é um recurso do serviço Compute que fornece rede de alta largura de banda e baixa latência entre instâncias bare metal suportadas. No Kubernetes Engine, você pode especificar um cluster de computação ao criar um pool de nós gerenciados. Quando o Kubernetes Engine cria instâncias de nó de trabalho para o pool de nós, o serviço Compute inicia as instâncias no cluster de computação selecionado.
Use clusters de computação para pools de nós gerenciados que executam cargas de trabalho que exigem rede compatível com RDMA, como cargas de trabalho de treinamento distribuído. A especificação de um cluster de computação para um pool de nós gerenciados permite que você use a rede compatível com RDMA enquanto mantém as operações do pool de nós gerenciados do Kubernetes Engine, como dimensionamento, upgrades e substituição de nós.
O Kubernetes Engine não cria clusters de computação. Crie e configure o cluster de computação no serviço Compute antes de selecioná-lo no Kubernetes Engine. Para obter mais informações sobre clusters de computação, consulte Clusters de Computação na documentação do serviço Compute.
Quando você especifica um cluster de computação para um pool de nós gerenciados, o Kubernetes Engine ativa automaticamente os plug-ins HPC do Oracle Cloud Agent necessários para a rede RDMA, incluindo o plug-in de Autenticação RDMA HPC do Compute e o plug-in de Configuração Automática RDMA HPC do Compute. Observe que você não pode personalizar esta configuração de plug-in do Oracle Cloud Agent usando as APIs do pool de nós do Kubernetes Engine.
Você só pode especificar um cluster de computação ao criar um pool de nós gerenciados. Você não pode adicionar, remover ou alterar o cluster de computação de um pool de nós existente. Para usar outro cluster de computação, crie um novo pool de nós gerenciados.
Antes de criar um pool de nós gerenciados em um cluster de computação, observe o seguinte:
- O cluster do Kubernetes Engine deve ser um cluster aprimorado.
- Crie o cluster de computação no serviço Compute.
- Certifique-se de que o estado do ciclo de vida do cluster de computação seja
ACTIVE. - Use uma forma de pool de nós que suporte RDMA e clusters de computação (consulte Formas Suportadas na documentação do serviço Compute).
- A configuração de posicionamento do pool de nós deve incluir apenas o domínio de disponibilidade que contém o cluster de computação.
- Não especifique domínios de falha na configuração de posicionamento. Quando um cluster de computação é especificado, o posicionamento do domínio de falha é gerenciado pelo serviço Compute.
- Adicione a política de IAM necessária para que o Kubernetes Engine possa usar o cluster 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 cluster de computação, deve existir uma política que permita ao controlador de recursos do pool de nós usar o cluster de computação. Por exemplo:
allow any-user to {COMPUTE_CLUSTER_LAUNCH_INSTANCE} in compartment <compartment_name> where request.principal.type = 'nodepool' and target.resource.id = '<compute_cluster_OCID>'
em que:
<compartment_name>é o nome do compartimento que contém o cluster de computação.<compute_cluster_OCID>é o OCID do cluster da computação.
Usando a Console
Você pode especificar um cluster de computação ao criar um cluster com um pool de nós gerenciados ou ao criar um pool de nós gerenciados em um cluster aprimorado existente.
Não é possível especificar um cluster de computação ao atualizar um pool de nós gerenciados existente.
Criando um cluster e especificando um cluster de computação para um pool de nós gerenciados
- 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'.
- Ao especificar detalhes do pool de nós:
- Para Tipo de nó, selecione Gerenciado.
- Especifique a configuração de posicionamento do nó da seguinte forma:
- Domínio de disponibilidade: Selecione o domínio de disponibilidade que contém o cluster de computação.
- Compartimento da sub-rede do nó de trabalho: Selecione o compartimento que contém a sub-rede do nó de trabalho.
- Sub-rede do nó de trabalho: Selecione uma sub-rede no domínio de disponibilidade do cluster de computação.
- Domínios de falha: Não especifique domínios de falha. O posicionamento do domínio de falha é gerenciado pelo serviço Compute.
- Para Forma do nó, selecione uma forma de nó que suporte RDMA e clusters de computação.
- Selecione Opções avançadas e especifique o cluster de computação a ser usado na seção Adicionar um cluster de computação:
- Compartimento do cluster de computação: Selecione o compartimento que contém o cluster de computação.
- Cluster de computação: Selecione o cluster de cálculo.
- Crie o cluster.
O Kubernetes Engine cria o cluster e o pool de nós gerenciados. Quando o Kubernetes Engine cria instâncias de nó de trabalho para o pool de nós gerenciados, o serviço Compute inicia as instâncias no cluster de computação selecionado.
Criando um pool de nós gerenciados e especificando um cluster de computação
- Na página da lista Clusters, selecione o nome do cluster aprimorado 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.
- 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.
- Ao especificar detalhes do pool de nós:
- Para Tipo de nó, selecione Gerenciado.
- Selecione Opções avançadas e especifique o cluster de computação a ser usado na seção Adicionar um cluster de computação:
- Compartimento do cluster de computação: Selecione o compartimento que contém o cluster de computação.
- Cluster de computação: Selecione o cluster de cálculo.
- Especifique a configuração de posicionamento do nó da seguinte forma:
- Domínio de disponibilidade: Selecione o domínio de disponibilidade que contém o cluster de computação.
- Compartimento da sub-rede do nó de trabalho: Selecione o compartimento que contém a sub-rede do nó de trabalho.
- Sub-rede do nó de trabalho: Selecione uma sub-rede no domínio de disponibilidade do cluster de computação.
- Domínios de falha: Não especifique domínios de falha. O posicionamento do domínio de falha é gerenciado pelo serviço Compute.
- Para Forma do nó, selecione uma forma de nó que suporte RDMA e clusters de computação.
- Crie o pool de nós.
O Kubernetes Engine cria o pool de nós gerenciados. Quando o Kubernetes Engine cria instâncias de nó de trabalho para o pool de nós gerenciados, o serviço Compute inicia as instâncias no cluster de computação selecionado.
Usando a CLI
Para usar a CLI para criar um pool de nós gerenciados em um cluster de computação, inclua o par de chave/valor computeClusterId 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": 2,
"placementConfigs": [
{
"availabilityDomain": "<availability_domain>",
"subnetId": "<subnet_OCID>"
}
],
"computeClusterId": "<compute_cluster_OCID>"
}'
A configuração de posicionamento deve incluir apenas o domínio de disponibilidade que contém o cluster de computação. Não especifique domínios de falha.
Usando a API
Ao criar um pool de nós gerenciados, especifique computeClusterId nos detalhes de configuração do pool de nós.
Para criar solicitações de pool de nós, especifique:
CreateNodePoolDetails.createNodePoolNodeConfigDetails.computeClusterId
A propriedade computeClusterId é imutável. Não é possível especificar computeClusterId no UpdateNodePoolDetails.
Diagnóstico e Solução de Problemas
Use as informações a seguir para diagnosticar e solucionar problemas com clusters de computação em pools de nós gerenciados.
O cluster de computação não está disponível na lista
Verifique o seguinte:
- Você selecionou o compartimento correto.
- O cluster de computação está ativo.
- Você tem permissão para exibir ou usar o cluster de computação.
- O cluster do Kubernetes Engine é um cluster aprimorado.
Falha na criação do pool de nós
Verifique o seguinte:
- O cluster do Kubernetes Engine é um cluster aprimorado.
- A forma do pool de nós suporta RDMA e clusters de computação.
- A configuração de posicionamento inclui apenas o domínio de disponibilidade que contém o cluster de computação.
- Os domínios de falha não são especificados na configuração de posicionamento.
- Existe a política de IAM necessária.
- O cluster de computação selecionado não foi excluído nem está inativo.
Não consigo adicionar ou alterar o cluster de computação de um pool de nós existente
Você só pode especificar um cluster de computação ao criar um pool de nós gerenciados. Você não pode adicionar, remover ou alterar o cluster de computação de um pool de nós existente.
Para usar outro cluster de computação, crie um novo pool de nós gerenciados que especifique o cluster de computação necessário.