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.
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.
-
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.
-
Selecione o nome do cluster ao qual deseja adicionar um conjunto de nós.
-
Na página de detalhes do cluster, em Recursos, selecione Pools de Nós.
-
Na lista Pools de Nós, selecione Adicionar Pool de Nós.
-
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
-
Sub-rede de Nó de Colaborador: Selecione uma sub-rede que tenha configuração, como a sub-rede "trabalhador" descrita em Criando uma Sub-rede de Colaborador (Sobreposição de Canal) ou Criando uma Sub-rede de Colaborador (Pod Nativo da VCN). Para um cluster público, crie a versão privada NAT da sub-rede "worker". Para um cluster privado, crie a versão privada somente da VCN da sub-rede "trabalhador". Selecione apenas uma sub-rede. A sub-rede deve ter regras definidas para se comunicar com o ponto final do plano de controle. A sub-rede deve usar uma tabela de roteamento privada e deve ter uma lista de segurança como a lista de segurança worker-seclist descrita em Creating a Worker Subnet (Flannel Overlay) ou Creating a Worker Subnet (VCN-Native Pod).
-
Domínio de Falha: selecione um domínio de falha ou Selecione automaticamente o melhor domínio de falha, que é a opção padrão.
-
-
Imagem de Origem: Selecione uma imagem.
-
Selecione o Tipo de Origem da Imagem da Plataforma.
-
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 comandooci-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.
-
-
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 queID
tem os primeiros 32 caracteres após opca_name
no OCID do pool de nós. Procure as instâncias na lista cujos nomes contenham a stringID
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:
-
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.
-
Crie um serviço para expor aplicativos conteinerizados fora do Compute Cloud@Customer. Consulte Exposição de Aplicativos Contêinerizados.
-
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]
-
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 seudisplay-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 propriedadedisplay-name
na saídaimage 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 comandonode-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 comandooci-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 propriedadememoryInGBs
é opcional; o valor padrão em gigabytes é 16 vezes o número deocpus
.--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
. Não especifique mais de um NSG.--nsg-ids
-
(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çãonodeSelector
.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
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.--node-metadata
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
, forneça valores para--node-metadata
crio-proxy
ecrio-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 propriedadeisForceDeleteAfterGraceDuration
, seu valor deverá sertrue
. 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 explicitamenteis_force_delete_after_grace_duration
como true, mesmo que verdadeiro seja o valor padrão. A definição da propriedadeis_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.
-
-
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
ensg-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á emcreated-by-work-request-id
na seçãometadata
da saídacluster 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 queID
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 stringID
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:
-
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.
-
Crie um serviço para expor aplicativos conteinerizados fora do Compute Cloud@Customer. Consulte Exposição de Aplicativos Contêinerizados.
-
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.
-
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.
-
Crie um serviço para expor aplicativos conteinerizados fora do Compute Cloud@Customer. Consulte Exposição de Aplicativos Contêinerizados.
-
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.
-