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.
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.
-
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.
-
Selecione o nome do cluster ao qual deseja adicionar um conjunto de nós.
-
Na página de detalhes do cluster, role até a seção Recursos e selecione Pools de Nós.
-
Na lista Pools de Nós, selecione o botão 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 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
-
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 Selecionar automaticamente o melhor domínio de falha, que é a opção padrão.
-
-
Imagem de Origem: Selecione uma imagem.
-
Selecione o Tipo de Origem de Imagem da Plataforma.
-
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 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 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.
-
-
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 queID
é os 32 primeiros caracteres após opca_name
no OCID do pool de nós. Procure as instâncias na lista cujos nomes contêm a stringID
deste OCID do pool de nós.
O Que Vem a Seguir:
-
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.
-
Crie um serviço para expor aplicativos em contêineres fora do Private Cloud Appliance. Consulte Exposição de Aplicativos Contêinerizados.
-
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]
-
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 seudisplay-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 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"
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 comandonode-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 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 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 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.
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
. Não especifique mais de um NSG.--nsg-ids
-
(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çã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 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 paracrio-proxy
ecrio-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 propriedadeisForceDeleteAfterGraceDuration
, seu valor deverá sertrue
. 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 explicitamenteis_force_delete_after_grace_duration
como true, mesmo que true 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 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.
-
-
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
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"
A saída desse comando
node-pool create
é a mesma do comandonode-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 comandocompute 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á emcreated-by-work-request-id
na seçãometadata
da saída docluster 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
é 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 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 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.
-
Crie um serviço para expor aplicativos em contêineres fora do Private Cloud Appliance. Consulte Exposição de Aplicativos Contêinerizados.
-
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:
-
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.
-
Crie um serviço para expor aplicativos em contêineres fora do Private Cloud Appliance. Consulte Exposição de Aplicativos Contêinerizados.
-
Criar armazenamento persistente para aplicativos a serem usados. Consulte Adicionando Armazenamento para Aplicativos Contêinerizados.
-