Criando um Pool de Nós de Trabalho do OKE

Saiba como criar pools de nós de trabalho do OKE no Private Cloud Appliance para um cluster de carga de trabalho.

Os nós são instâncias de computação do Private Cloud Appliance. Ao criar um pool de nós de trabalho, você especifica o número de nós a serem criados e outros parâmetros que definem instâncias.

Observação

Não é possível personalizar os scripts cloud-init do OKE.

Para configurar definições de proxy, use a CLI ou a API do OCI para definir o proxy nos metadados do nó. Se o cluster estiver usando a Rede de Pods Nativos da VCN, adicione 169.254.169.254 à definição noproxy.

    1. No menu de navegação Compute Web UI, selecione Contêineres e, em seguida, selecione Clusters do Kubernetes (OKE).

      Se o cluster ao qual você deseja anexar um pool de nós não estiver listado, selecione outro compartimento no menu de compartimento na parte superior da página.

    2. Selecione o nome do cluster ao qual deseja adicionar um conjunto de nós.

    3. Na página de detalhes do cluster, role até a seção Recursos e selecione Pools de Nós.

    4. Na lista Pools de Nós, selecione o botão Adicionar Pool de Nós.

    5. Na caixa de diálogo Adicionar Pool de Nós, forneça as seguintes informações:

      • Nome: O nome do novo pool de nós. Evite digitar informações confidenciais.

      • Compartimento: O compartimento no qual o novo pool de nós será criado.

      • Opções do Pool de Nós: No campo Contagem de Nós, informe o número de nós desejados nesse pool de nós. O padrão é 0. O número máximo é 128 por cluster, que pode ser distribuído entre vários pools de nós.

      • Grupo de Segurança de Rede: Se você marcar a caixa para ativar grupos de segurança de rede, selecione Adicionar Grupo de Segurança de Rede e selecione um NSG na lista drop-down. Você pode precisar alterar o compartimento para encontrar o NSG que deseja. A VNIC principal da sub-rede do colaborador será anexada a este NSG.

      • Configuração de posicionamento

      • Imagem de Origem: Selecione uma imagem.

        1. Selecione o Tipo de Origem de Imagem da Plataforma.

        2. Selecione uma imagem na lista.

          A lista de imagens tem as colunas Sistema Operacional, Versão do Sistema Operacional e Versão do Kubernetes. Você pode usar a seta do menu drop-down à direita da Versão do Sistema Operacional ou da Versão do Kubernetes para selecionar outra versão. Se mais de uma imagem tiver a mesma versão do Kubernetes, selecione a imagem mais recente, de acordo com a data no nome da imagem.

          Se a imagem que você deseja usar não estiver listada, use o procedimento da CLI e especifique o OCID da imagem. Para obter o OCID da imagem desejada, use o comando ce node-pool get para um pool de nós no qual você usou essa imagem antes.

          Observação

          A imagem que você especifica não deve ter uma versão do Kubernetes mais recente que a versão do Kubernetes especificada quando você criou o cluster. A Versão do Kubernetes do cluster está em uma coluna da tabela de lista de clusters.

      • Forma: Selecione uma forma para os nós de trabalho. Para obter descrições de formas disponíveis, consulte Formas de Computação. Para sistemas X10 do Private Cloud Appliance, a forma é VM.PCAStandard.E5. Flexível e você não pode mudar.

        Se você selecionar uma forma que não seja flexível, a quantidade de memória e o número de OCPUs serão exibidos. Esses números correspondem aos números mostrados para essa forma na tabela em Formas de Computação.

        Se você selecionar uma forma flexível, deverá especificar o número de OCPUs desejadas. Opcionalmente, você pode especificar a quantidade total de memória desejada. O valor padrão para gigabytes de memória é 16 vezes o número especificado para OCPUs. Clique dentro de cada campo de valor para ver os valores mínimo e máximo permitidos.

        Observação

        Aloque pelo menos 2 OCPUs e 32 GB de memória para cada 10 pods em execução. Talvez seja necessário alocar mais recursos, dependendo das cargas de trabalho planejadas. Consulte Resource Management para Pods e Contêineres.

      • Volume de Inicialização: (Opcional) Marque a caixa para especificar um tamanho de volume de inicialização personalizado.

        Tamanho do volume de inicialização (GB): O tamanho do volume de inicialização padrão para a imagem selecionada é mostrado. Para especificar um tamanho maior, insira um valor de 50 a 16384 em gigabytes (50 GB a 16 TB) ou use as setas de incremento e de redução.

        Se você especificar um tamanho de volume personalizado de inicialização, será necessário aumentar o número de partições a fim de aproveitar o tamanho maior. As imagens da plataforma Oracle Linux incluem o pacote oci-utils. Use o comando oci-growfs desse pacote para estender a partição raiz e, em seguida, aumentar o sistema de arquivos. Consulte oci-growfs.

      • Comunicação de Pod (somente clusters de Rede de Pods Nativos da VCN)

        Sub-rede de Comunicação de Pod: Selecione uma sub-rede que tenha configuração como a sub-rede "pod" descrita em Criando uma Sub-rede de Pod (Pod Nativo da VCN).

        Número de Pods por nó: O número máximo de pods que você deseja executar em um único nó de trabalho em um pool de nós. O valor padrão é 31. Você pode inserir um número de 1 a 110. O número de VNICs permitidas pela forma especificada (consulte "Forma" acima) limita esse número máximo de pods. Consulte Formas de Nós e Número de Pods. Para conservar o espaço de endereço da sub-rede do pod, reduza o número máximo de pods que você deseja executar em um único nó de trabalho. Isso reduz o número de endereços IP que são pré-alocados na sub-rede do pod.

        Se você marcar a caixa Usar Regras de Segurança no NSG (Network Security Group), selecione o botão Adicionar Grupo de Segurança de Rede e selecione um NSG na lista drop-down. Você pode precisar alterar o compartimento para encontrar o NSG que deseja. As VNICs secundárias da sub-rede do pod serão anexadas a este NSG.

      • Cordão e Dreno: (Opcional) Informe o número de minutos de duração de tolerância de remoção ou use as setas para diminuir ou aumentar o número de minutos de duração de tolerância de remoção. O valor máximo e o valor padrão são 60 minutos.

        • Private Cloud Appliance Versão 3.0.2-b1261765. Especifique um número inteiro de 0 a 60. Se você inserir 0, o valor será convertido para 0,333 porque 20 segundos é a duração mínima da tolerância de remoção. Se você selecionar a seta para cima, o valor será alterado para 1.

        • Private Cloud Appliance Versão 3.0.2-b1185392. Especifique um número inteiro de 1 a 60.

        Não é possível limpar "Forçar encerramento após o período de tolerância". Os nós são excluídos depois que seus pods são despejados ou no final da duração de tolerância da remoção, mesmo que nem todos os pods sejam despejados.

        Para obter descrições da duração da tolerância de cordão e drenagem e remoção, selecione a guia CLI desta página e consulte Definições de exclusão do pool de nós e nós.

      • Chave SSH: A chave SSH pública para os nós de trabalho. Faça upload do arquivo de chave pública ou copie e cole o conteúdo do arquivo.

      • Rótulos do Kubernetes: Selecione o botão Adicionar Label do Kubernetes e informe um nome e um valor de chave. Você pode usar esses labels para pods de destino para programação em nós ou grupos de nós específicos. Para obter uma descrição e um exemplo, selecione a guia CLI nesta página e consulte Labels.

      • Tags do Pool de Nós: Tags definidas ou de formato livre para o recurso do pool de nós.

        Observação

        Não especifique valores para a tag definida OraclePCA-OKE.cluster_id ou para a tag de formato livre ClusterResourceIdentifier. Esses valores de tag são gerados pelo sistema e aplicados apenas a nós (instâncias), não ao recurso de pool de nós.

      • Tags de Nó: Tags definidas ou de formato livre que são aplicadas a cada nó no pool de nós.

        Importante

        Não especifique valores para a tag definida OraclePCA-OKE.cluster_id ou para a tag de formato livre ClusterResourceIdentifier. Esses valores de tag são gerados pelo sistema.

    6. Selecione o botão Adicionar Pool de Nós na caixa de diálogo.

      A página de detalhes do pool de nós é exibida. Role até a seção Recursos e selecione Solicitações de Serviço para ver o andamento da criação do pool de nós e ver os nós que estão sendo adicionados à lista Nós. O status da solicitação de serviço será Aceito até que o cluster esteja no estado Ativo ou com Falha.

      Para identificar esses nós em uma lista de instâncias, observe que os nomes desses nós estão no formato oke-ID, em que ID é os 32 primeiros caracteres após o pca_name no OCID do pool de nós. Procure as instâncias na lista cujos nomes contêm a string ID deste OCID do pool de nós.

    O Que Vem a Seguir:

    1. Configure quaisquer registros ou repositórios necessários para os nós de trabalho. Certifique-se de ter acesso a um registro de contêiner público ou intranet autogerenciado para usar com o serviço OKE e as imagens do seu aplicativo.

    2. Crie um serviço para expor aplicativos em contêineres fora do Private Cloud Appliance. Consulte Exposição de Aplicativos Contêinerizados.

    3. Criar armazenamento persistente para aplicativos a serem usados. Consulte Adicionando Armazenamento para Aplicativos Contêinerizados.

  • Use o comando oci ce node-pool create e os parâmetros necessários para criar um novo pool de nós.

    oci ce node-pool create --cluster-id cluster_OCID --compartment-id compartment_OCID --name pool_name --node-shape node_shape_name [OPTIONS]
    1. Obtenha as informações necessárias para executar o comando.

      • O OCID do compartimento no qual você deseja criar o pool de nós: oci iam compartment list

      • O OCID do cluster para este pool de nós: oci ce cluster list

      • O nome do pool de nós. Evite digitar informações confidenciais.

      • A configuração de posicionamento para os nós, incluindo o OCID da sub-rede de trabalho e o domínio de falha. Para obter uma descrição adicional, selecione a guia Console nesta página e consulte Configuração de posicionamento. Use o seguinte comando para mostrar o conteúdo e o formato desta opção:

        $ oci ce node-pool create --generate-param-json-input placement-configs

        Use o seguinte comando para listar domínios de falha: oci iam fault-domain list. Não especifique mais de um domínio de falha ou mais de uma sub-rede na configuração de posicionamento. Para permitir que o sistema selecione os melhores domínios de falha, não especifique nenhum domínio de falha.

      • (Somente clusters de Rede de Pods Nativos da VCN) O OCID da sub-rede de pod. Consulte Criando uma Sub-rede de Pod (Pod Nativo da VCN). Para obter uma descrição adicional, selecione a guia Console nesta página e consulte Comunicação do Pod. Use a opção --pod-subnet-ids. Embora o valor da opção --pod-subnet-ids seja um array, você só pode especificar um OCID de sub-rede de pod.

        O número máximo de pods que você deseja executar em um único nó de trabalho em um pool de nós. Use a opção --max-pods-per-node. O valor padrão é 31. Você pode inserir um número de 1 a 110. O número de VNICs permitidas pela forma especificada (consulte O nome da forma) limita esse número máximo de pods. Consulte Formas de Nós e Número de Pods. Para conservar o espaço de endereço da sub-rede do pod, reduza o número máximo de pods que você deseja executar em um único nó de trabalho. Isso reduz o número de endereços IP que são pré-alocados na sub-rede do pod.

        (Opcional) O OCID do Grupo de Segurança de Rede a ser usado para os pods neste pool de nós. Use a opção --pod-nsg-ids. Você pode especificar até cinco NSGs.

      • O OCID da imagem a ser usada para os nós deste pool de nó.

        Use o seguinte comando para obter o OCID da imagem que você deseja usar:

        $ oci compute image list --compartment-id compartment_OCID

        Se a imagem que você deseja usar não estiver listada, você poderá obter o OCID da imagem na saída do comando ce node-pool get para um pool de nós no qual você usou essa imagem antes.

        Observação

        A imagem que você especifica deve ter -OKE- em seu display-name e não deve ter uma versão do Kubernetes mais recente que a versão do Kubernetes especificada quando você criou o cluster.

        A versão do Kubernetes do cluster é mostrada na saída cluster list. A versão do Kubernetes da imagem é mostrada na propriedade display-name na saída image list. A versão do Kubernetes da imagem a seguir é 1.29.9.

        "display-name": "uln-pca-Oracle-Linux8-OKE-1.29.9-20250325.oci"

        Se mais de uma imagem tiver a mesma versão do Kubernetes, selecione a imagem mais recente, de acordo com a data no nome da imagem.

        Não especifique a opção --kubernetes-version no comando node-pool create.

        É possível especificar um tamanho de volume de inicialização personalizado em gigabytes. O tamanho do volume de inicialização padrão é de 50 GB. Para especificar um tamanho de volume de inicialização personalizado, use a opção --node-source-details para especificar o tamanho do volume de inicialização e a imagem. Não é possível especificar --node-image-id e --node-source-details. Use o comando a seguir para mostrar o conteúdo e o formato da opção de detalhes da origem do nó.

        $ oci ce node-pool create --generate-param-json-input node-source-details

        Se você especificar um tamanho de volume personalizado de inicialização, será necessário aumentar o número de partições a fim de aproveitar o tamanho maior. As imagens da plataforma Oracle Linux incluem o pacote oci-utils. Use o comando oci-growfs desse pacote para estender a partição raiz e, em seguida, aumentar o sistema de arquivos. Consulte oci-growfs.

      • O nome da forma dos nós de trabalho neste pool de nós. Para sistemas X10 do Private Cloud Appliance, a forma dos nós de plano de controle é VM.PCAStandard.E5. Flexível e você não pode mudar. Para todos os outros sistemas do Private Cloud Appliance, a forma padrão é VM.PCAStandard1.1 e você pode especificar outra forma. Para obter descrições de formas disponíveis, consulte Formas de Computação.

        Se você especificar uma forma flexível, também deverá especificar a configuração da forma, conforme mostrado no exemplo a seguir. É necessário fornecer um valor para ocpus. A propriedade memoryInGBs é opcional; o valor padrão em gigabytes é 16 vezes o número de ocpus.

        --node-shape-config '{"ocpus": 32, "memoryInGBs": 512}'
        Observação

        Aloque pelo menos 2 OCPUs e 32 GB de memória para cada 10 pods em execução. Talvez seja necessário alocar mais recursos, dependendo das cargas de trabalho planejadas. Consulte Resource Management para Pods e Contêineres.

        Se você especificar uma forma que não seja flexível, não especifique --node-shape-config. O número de OCPUs e a quantidade de memória são definidos para os valores mostrados para essa forma em "Formas Padrão" no Formas de Computação.

      • (Opcional) O OCID do Grupo de Segurança de Rede a ser usado para os nós deste pool de nós. Use a opção --nsg-ids. Não especifique mais de um NSG.

      • (Opcional) Labels. A definição de labels nos nós permite que você direcione pods para programação em nós ou grupos de nós específicos. Use essa funcionalidade para garantir que pods específicos sejam executados apenas em nós com determinadas propriedades de isolamento, segurança ou regulatórias.

        Use a opção --initial-node-labels para adicionar labels aos nós. Os labels são uma lista de pares de chave/valor a serem adicionados aos nós depois que eles se juntam ao cluster do Kubernetes. Consulte Restrições de Chave de Metadados para obter mais informações sobre limites de metadados.

        Veja a seguir um rótulo de exemplo a ser aplicado aos nós no pool de nós:

        --initial-node-labels '[{"key":"disktype","value":"ssd"}]

        Uma maneira fácil de selecionar nós com base em seus labels é usar o nodeSelector na configuração do pod. O Kubernetes só programa o pod nos nós que têm cada um dos labels especificados na seção nodeSelector.

        O trecho de exemplo a seguir de uma configuração de pod especifica que os pods que usam essa configuração devem ser executados em nós que têm o label de tipo de disco ssd:

        nodeSelector:
          disktype: ssd
      • (Opcional) Metadados do nó. Use a opção --node-metadata para anexar dados de usuário personalizados aos nós. Consulte o item de configurações de proxy a seguir para obter um exemplo específico.

        Consulte Restrições de Chave de Metadados para obter informações sobre limites de metadados. O tamanho máximo dos metadados do nó é 32.000 bytes.

      • (Opcional) Definições de proxy. Se sua rede exigir definições de proxy para permitir que os nós de trabalho acessem registros ou repositórios externos, por exemplo, crie um argumento para a opção --node-metadata.

        No argumento de opção --node-metadata, forneça valores para crio-proxy e crio-noproxy, conforme mostrado no seguinte exemplo de argumento de arquivo:

        {
          "crio-proxy": "http://your_proxy.your_domain_name:your_port",
          "crio-noproxy": "localhost,127.0.0.1,your_domain_name,ocir.io,Kubernetes_cidr,pods_cidr"
        }

        Se o cluster estiver usando a Rede de Pods Nativos da VCN, adicione 169.254.169.254 à definição noproxy, como no seguinte exemplo:

        "crio-noproxy": "localhost,127.0.0.1,your_domain_name,ocir.io,Kubernetes_cidr,pods_cidr,169.254.169.254"
      • (Opcional) Definições de exclusão de nó e pool de nós. Você pode especificar como tratar a exclusão de nós ao excluir um pool de nós, excluir um nó especificado, diminuir o tamanho do pool de nós ou alterar a configuração de posicionamento dos nós do pool de nós. Esses parâmetros de exclusão de nó também podem ser definidos ou alterados quando você atualiza o pool de nós, exclui um nó especificado ou exclui o pool de nós.

        Para especificar definições de exclusão do pool de nós, crie um argumento para a opção --node-eviction-node-pool-settings. Você pode especificar a duração da tolerância de remoção (evictionGraceDuration) para nós. Os nós são sempre excluídos depois que seus pods são removidos ou no final da duração da tolerância de remoção.

        • Duração da graça da remoção. Este valor especifica o tempo para permitir o cordão e drenagem dos nós de trabalho.

          Um nó que está conectado não pode ter novos pods colocados nele. Os pods existentes nesse nó não são afetados.

          Quando um nó é drenado, os contêineres de cada pod são finalizados normalmente e executam qualquer limpeza necessária.

          O valor da duração da tolerância de remoção é expresso no formato ISO 8601: por exemplo, PT45S, PT20M ou PT39M21S. O valor padrão e o valor máximo são 60 minutos (PT60M). O valor mínimo é 20 segundos (PT20S). O OKE sempre tenta drenar nós por pelo menos 20 segundos.

        • Impor exclusão. Os nós são sempre excluídos depois que seus pods são removidos ou no final da duração da tolerância de remoção. Após a duração de tolerância de remoção padrão ou especificada, o nó será excluído, mesmo que um ou mais contêineres de pods não sejam completamente drenados.

        A seguir é mostrado um exemplo de argumento para a opção --node-eviction-node-pool-settings. Se você incluir a propriedade isForceDeleteAfterGraceDuration, seu valor deverá ser true. Os nós são sempre excluídos depois que seus pods são removidos ou no final da duração da tolerância de remoção.

        --node-eviction-node-pool-settings '{"evictionGraceDuration": "PT30M", "isForceDeleteAfterGraceDuration": true}'
        Observação

        Se você usar o Terraform e especificar node_eviction_node_pool_settings, deverá definir explicitamente is_force_delete_after_grace_duration como true, mesmo que true seja o valor padrão. A definição da propriedade is_force_delete_after_grace_duration não será opcional se você estiver usando o Terraform.

      • (Opcional) Tags. Adicione tags definidas ou de formato livre para o recurso do pool de nós usando as opções --defined-tags ou --freeform-tags. Não especifique valores para a tag definida OraclePCA-OKE.cluster_id ou para a tag de formato livre ClusterResourceIdentifier. Esses valores de tag são gerados pelo sistema e aplicados apenas a nós (instâncias), não ao recurso de pool de nós.

        Para adicionar tags definidas ou de formato livre a todos os nós no pool de nós, use as opções --node-defined-tags e --node-freeform-tags.

        Importante

        Não especifique valores para a tag definida OraclePCA-OKE.cluster_id ou para a tag de formato livre ClusterResourceIdentifier. Esses valores de tag são gerados pelo sistema.

    2. Execute o comando create node pool.

      Exemplo:

      Consulte o procedimento Console para obter informações sobre as opções mostradas neste exemplo e outras opções, como --node-boot-volume-size-in-gbs e nsg-ids. A opção --pod-subnet-ids só será aplicável se o cluster usar a Rede de Pods Nativos da VCN.

      $ oci ce node-pool create \
      --cluster-id ocid1.cluster.unique_ID --compartment-id ocid1.compartment.unique_ID \
      --name node_pool_name --node-shape shape_name --node-image-id ocid1.image.unique_ID \
      --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"ocid1.subnet.unique_ID"}]' \
      --pod-subnet-ids '["ocid1.subnet.unique_ID"]' --size 10 --ssh-public-key "public_key_text"

      A saída desse comando node-pool create é a mesma do comando node-pool get. O OCID do cluster é mostrado e um breve resumo de cada nó é mostrado. Para obter mais informações sobre um nó, use o comando compute instance get com o OCID do nó.

      Use o comando work-request get para verificar o status da operação de criação do pool de nós. O OCID da solicitação de serviço está em created-by-work-request-id na seção metadata da saída do cluster get.

      $ oci ce work-request get --work-request-id workrequest_OCID

      O status da solicitação de serviço será ACCEPTED até que o cluster esteja no estado Ativo ou com Falha.

      Para identificar esses nós em uma lista de instâncias, observe que os nomes desses nós estão no formato oke-ID, em que ID é os 32 primeiros caracteres após o nome no OCID do pool de nós. Procure as instâncias na lista cujos nomes contêm a string ID deste OCID do pool de nós.

    Para obter uma lista completa de comandos, flags e opções da CLI, consulte a Referência de Linha de Comando.

    O Que Vem a Seguir:

    1. Configure quaisquer registros ou repositórios necessários para os nós de trabalho. Certifique-se de ter acesso a um registro de contêiner público ou intranet autogerenciado para usar com o serviço OKE e as imagens do seu aplicativo.

    2. Crie um serviço para expor aplicativos em contêineres fora do Private Cloud Appliance. Consulte Exposição de Aplicativos Contêinerizados.

    3. Criar armazenamento persistente para aplicativos a serem usados. Consulte Adicionando Armazenamento para Aplicativos Contêinerizados.

  • Use a operação CreateNodePool para criar um novo pool de nós.

    Para obter informações sobre como usar a API e assinar solicitações, consulte APIs REST e Credenciais de Segurança. Para obter informações sobre SDKs, consulte Kits de Desenvolvimento de Software e Interface de Linha de Comando.

    Próximas Etapas:

    1. Configure quaisquer registros ou repositórios necessários para os nós de trabalho. Certifique-se de ter acesso a um registro de contêiner público ou intranet autogerenciado para usar com o serviço OKE e as imagens do seu aplicativo.

    2. Crie um serviço para expor aplicativos em contêineres fora do Private Cloud Appliance. Consulte Exposição de Aplicativos Contêinerizados.

    3. Criar armazenamento persistente para aplicativos a serem usados. Consulte Adicionando Armazenamento para Aplicativos Contêinerizados.