Criando um Pool de Nós de Trabalho do OKE

Saiba como criar pools de nós de trabalho do OKE no Compute Cloud@Customer para um cluster de carga de trabalho.

Os nós são instâncias de computação do Compute Cloud@Customer. 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 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 painel de controle da Console do Compute Cloud@Customer, selecione Contêineres / Exibir Clusters 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 compartimentos 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, em Recursos, selecione Pools de Nós.

    4. Na lista Pools de Nós, selecione 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 criar o novo pool de nós.

      • 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 localizar o NSG desejado. 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 da Imagem da Plataforma.

        2. Selecionar uma imagem na lista.

          A lista de imagens tem as colunas Sistema Operacional, Versão do SO e Versão do Kubernetes. Você pode usar a seta do menu drop-down à direita da Versão do SO ou da Versão do Kubernetes para selecionar outra versão.

          Se a imagem que você deseja usar não estiver listada, use o procedimento 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 especificada não deve ter uma versão do Kubernetes que seja 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. A forma é VM.PCAStandard.E5. Flex e você não pode alterá-lo.

        Especifique o número de OCPUs que deseja. 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. Selecione dentro de cada campo de valor para ver os valores mínimo e máximo permitidos.

      • 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, digite um valor de 50 a 16384 em gigabytes (50 GB a 16 TB) ou use as setas de incremento e decréscimo.

        Se você especificar um tamanho de volume de inicialização personalizado, será necessário estender a partição para tirar proveito do 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 Drenagem: (Opcional) Use as setas para diminuir ou aumentar o número de minutos de duração da tolerância para remoção. Não é possível desmarcar "Forçar encerramento após período de tolerância". Os nós são excluídos depois que seus pods são expulsos ou no final da duração da tolerância de remoção, mesmo que nem todos os pods sejam expulsos.

        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 dos 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. Consulte a descrição e o exemplo no procedimento CLI.

      • 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 do pool de nós.

      • Tags de Nó: Tags definidas ou de formato livre que são aplicadas a cada nó do 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 Adicionar Pool de Nós.

      A página de detalhes do pool de nós é exibida. Em Recursos, 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 tem os primeiros 32 caracteres após o pca_name no OCID do pool de nós. Procure as instâncias na lista cujos nomes contenham a string ID deste OCID do pool de nós.

      Para identificar esses nós em uma lista de instâncias, observe que os nomes desses nós contêm os primeiros 32 caracteres após o ccc_name do OCID do pool de nós e contêm o OCID do cluster na tag OraclePCA-OKE/cluster_id.

    O Que Vem a Seguir:

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

    2. Crie um serviço para expor aplicativos conteinerizados fora do Compute Cloud@Customer. Consulte Exposição de Aplicativos Contêinerizados.

    3. Crie armazenamento persistente para os aplicativos usarem. Consulte Adicionando Armazenamento para Aplicativos Contêinerizados.

    Para alterar as propriedades dos nós existentes, você pode criar um novo pool de nós com as novas definições e mover o trabalho para os novos nós.

  • 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. Consulte a descrição "Configuração de posicionamento" no procedimento Console. 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). Consulte também a descrição no Pod Communication no procedimento de Console anterior. 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" abaixo) 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 neste pool de nós.

        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 de um pool de nós no qual usou essa imagem antes.

        Observação

        A imagem especificada deve ter -OKE- em seu display-name e não deve ter uma versão do Kubernetes que seja 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"

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

        É possível especificar um tamanho do volume de inicialização personalizado em gigabytes. O tamanho do volume de inicialização padrão é 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. Você não pode 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 de inicialização personalizado, será necessário estender a partição para tirar proveito do 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 Compute Cloud@Customer X10, a forma dos nós do plano de controle é VM.PCAStandard.E5. Flex.

        Especifique a configuração da forma, conforme mostrado no exemplo a seguir. Forneça 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.

      • (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 direcionar 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. Há restrições de chave de metadados. Consulte Restrições de Chave 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 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. 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 argumento de arquivo de exemplo a seguir:

        {
          "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 expulsos ou no final da duração da tolerância de remoção.

        • Duração da tolerância de remoção. Este valor especifica o tempo para permitir o isolamento e a drenagem dos nós de trabalho.

          Um nó que está doado 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 terminam normalmente e executam qualquer limpeza necessária.

          O valor da duração da tolerância de remoção é expresso no formato ISO 8601. 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 expulsos 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ó é excluído, mesmo que um ou mais contêineres de pod não sejam completamente drenados.

        Veja a seguir 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 expulsos 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, defina explicitamente is_force_delete_after_grace_duration como true, mesmo que verdadeiro 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 de formato livre para o recurso de 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 do pool de nós.

        Para adicionar tags de formato livre a todos os nós do 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.

      Por exemplo:

      Consulte o procedimento Usando a 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"

      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 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 tem os primeiros 32 caracteres após o nome no OCID do pool de nós. Procure as instâncias na lista cujos nomes contenham 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 os registros ou repositórios necessários aos nós de trabalho. Certifique-se de ter acesso a um registro de contêiner de intranet ou público autogerenciado para usar com o serviço OKE e as imagens do aplicativo.

    2. Crie um serviço para expor aplicativos conteinerizados fora do Compute Cloud@Customer. Consulte Exposição de Aplicativos Contêinerizados.

    3. Crie armazenamento persistente para os aplicativos usarem. Consulte Adicionando Armazenamento para Aplicativos Contêinerizados.

    Para alterar as propriedades dos nós existentes, você pode criar um novo pool de nós com as novas definições e mover o trabalho para os novos nós.

  • 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.

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

    2. Crie um serviço para expor aplicativos conteinerizados fora do Compute Cloud@Customer. Consulte Exposição de Aplicativos Contêinerizados.

    3. Crie armazenamento persistente para os aplicativos usarem. Consulte Adicionando Armazenamento para Aplicativos Contêinerizados.

    Para alterar as propriedades dos nós existentes, você pode criar um novo pool de nós com as novas definições e mover o trabalho para os novos nós.