Criando Nós Virtuais e Pools de Nós Virtuais em um Novo Cluster

Descubra como criar nós virtuais e pools de nós virtuais em um novo cluster usando o Kubernetes Engine (OKE).

Você pode criar nós virtuais criando um pool de nós virtuais em um novo cluster. Só é possível criar nós virtuais e pools de nós virtuais em clusters aprimorados.

Consulte também Criando um Pool do Nó Virtual.

Você pode criar nós virtuais e pools de nós virtuais usando a Console, a CLI e a API.

  • Para criar um cluster com um pool de nós virtuais e nós virtuais usando a Console:

    1. Siga as instruções em Usando a Console para criar um Cluster com Definições Explicitamente Definidas no workflow 'Criação Personalizada' para criar um novo cluster.
    2. Na página Configuração de rede, especifique rede de pods nativa da VCN como o tipo de rede do cluster.
    3. Na página Pools de nós, especifique um Nome e um Compartimento para o pool de nós virtuais que você deseja criar.
    4. Especifique o Tipo de nó: dos nós de trabalho neste pool de nós como Virtual.
    5. Defina o pool de nós virtuais:
      1. Especifique os detalhes de configuração do pool de nós virtuais:
        • Configuração de posicionamento de nó:
          • Domínio de disponibilidade: Um domínio de disponibilização no qual serão colocados nós virtuais.
          • Domínios de falha: (Opcional) Um ou mais domínios de falha no domínio de disponibilidade no qual os nós virtuais serão colocados.

          Quando os nós virtuais são criados, eles são distribuídos o mais uniformemente possível nos domínios da disponibilidade e nos domínios da falha selecionados. Considere as seguintes recomendações:

          • Defina Contagem de nós como no mínimo três. Em regiões com vários domínios de disponibilidade, distribua nós entre os domínios de disponibilidade. Em regiões com um único domínio de disponibilidade, distribua nós entre os domínios de falha.
          • Não especifique domínios de falha (em outras palavras, deixe Domínios de falha vazios) para permitir que os nós virtuais criem pods em qualquer domínio de falha que tenha capacidade de computação disponível. Essa abordagem é recomendada se você não precisar de controle detalhado sobre o posicionamento e quiser evitar possíveis restrições de capacidade.
          • Para suportar alta disponibilidade, especifique três linhas para configuração de posicionamento do nó. Em regiões com vários domínios de disponibilidade, tenha uma linha por domínio de disponibilidade. Em regiões com um único domínio de disponibilidade, tenha uma linha por domínio de falha.
        • Contagem de nós: O número de nós virtuais a criar no pool de nó virtual, colocado nos domínios de disponibilidade que você seleciona e na sub-rede regional (recomendado) ou sub-rede específica do AD que você especifica para cada domínio de disponibilidade.
        • Forma do pod: A forma a ser usada para pods em execução em nós virtuais no pool de nós virtuais. A forma determina o tipo de processador no qual o pod será executado.

          Somente as formas disponíveis na sua tenancy que são suportadas pelo Kubernetes Engine são mostradas. Consulte Imagens Suportadas (Incluindo Imagens Personalizadas) e Formas para Nós de Trabalho.

          Observe que você especifica explicitamente os requisitos de recursos de CPU e memória para nós virtuais na especificação de pod (consulte Designar Recursos de Memória a Contêineres e Pods e Designar Recursos de CPU a Contêineres e Pods na documentação do Kubernetes).

        • Comunicação de nó virtual:
          • Compartimento de sub-rede: O compartimento no qual reside a sub-rede do nó virtual.
          • Sub-rede: Uma sub-rede regional (recomendada) ou sub-rede específica do AD configurada para hospedar nós virtuais. Se você especificou sub-redes de balanceadores de carga, as sub-redes de nó virtual deverão ser diferentes. As sub-redes especificadas podem ser privadas (recomendadas) ou públicas e podem ser regionais (recomendadas) ou específicas do AD. Recomendamos que a sub-rede de pod e a sub-rede de nó virtual sejam a mesma sub-rede (nesse caso, a sub-rede de nó virtual deve ser privada). Consulte Configuração da Sub-rede.
          • Usar regras de segurança no Grupo de Segurança de Rede (NSG): Controle o acesso à sub-rede de nó virtual usando regras de segurança definidas para um ou mais grupos de segurança de rede (NSGs) que você especificar (até cinco no máximo). Você pode usar regras de segurança definidas para NSGs em vez de, ou também, aquelas definidas para listas de segurança (os NSGs são recomendados). Para obter mais informações sobre as regras de segurança a serem especificadas para o NSG, consulte Regras de Segurança para Nós de Trabalho e Pods.
        • Comunicação de pod: Os pods em execução em nós virtuais usam a rede de pods nativa da VCN. Especifique como os pods no pool de nós se comunicam entre si usando uma sub-rede de pod:
          • Compartimento de sub-rede: O compartimento no qual reside a sub-rede do pod.
          • Sub-rede: Uma sub-rede regional configurada para hospedar pods. A sub-rede de pod especificada para nós virtuais deve ser privada. Recomendamos que a sub-rede de pod e a sub-rede de nó virtual sejam a mesma sub-rede (nesse caso, a Oracle recomenda definir regras de segurança em grupos de segurança de rede em vez de em listas de segurança). Consulte Configuração da Sub-rede.
          • Usar regras de segurança no Grupo de Segurança de Rede (NSG): Controle o acesso à sub-rede do pod usando regras de segurança definidas para um ou mais grupos de segurança de rede (NSGs) que você especificar (até cinco no máximo). Você pode usar regras de segurança definidas para NSGs em vez de, ou também, aquelas definidas para listas de segurança (os NSGs são recomendados). Para obter mais informações sobre as regras de segurança a serem especificadas para o NSG, consulte Regras de Segurança para Nós de Trabalho e Pods.

          Para obter mais informações sobre comunicação de pod, consulte Rede de Pod.

      2. Aceite os padrões para opções avançadas de pool de nós virtuais ou selecione Opções avançadas e especifique alternativas da seguinte forma:

        • Tags de pool de nós: (Opcional) Uma ou mais tags para adicionar ao pool de nós virtuais. A marcação permite agrupar recursos diferentes entre compartimentos e também permite anotar recursos com seus próprios metadados. Consulte Marcando com Tag Recursos Relacionados ao Cluster do Kubernetes.
        • Rótulos do Kubernetes: (Opcional) um ou mais labels (além de um label padrão) a serem acrescentados a nós virtuais no pool do nó virtual para ativar o direcionamento de workloads em pools de nó específicos. Para obter mais informações, consulte Atribuindo Pods a Nós na documentação do Kubernetes.
        • Taints do Kubernetes: (Opcional) Um ou mais taints a serem adicionados a nós virtuais no pool de nós virtuais. Os taints permitem que os nós virtuais repelem pods, garantindo assim que os pods não sejam executados em nós virtuais em um pool de nós virtuais específico. Observe que você só pode aplicar taints a nós virtuais. Para obter mais informações, consulte Atribuindo Pods a Nós na documentação do Kubernetes.
    6. Selecione Próximo para revisar os detalhes informados para o novo cluster.
    7. Selecione Criar cluster para criar o novo cluster.
  • Use os comandos oci ce cluster create e oci ce virtual-node-pool create (e os parâmetros necessários) para criar um novo cluster com um pool de nós virtuais e nós virtuais:

    1. Crie um novo cluster, especificando o plug-in CNI da Rede de Pod Nativa da VCN do OCI para a rede de pods:
      oci ce cluster create \
      --compartment-id <compartment-ocid> \
      --name <cluster-name> \
      --vcn-id <vcn-ocid> \
      --type ENHANCED_CLUSTER \
      --kubernetes-version <kubernetes-version> \
      --service-lb-subnet-ids "[\"<lb-subnet-ocid>\"]" \
      --endpoint-subnet-id <api-endpoint-subnet-ocid> \
      --endpoint-public-ip-enabled <true|false> \
      --endpoint-nsg-ids "[\"<api-endpoint-nsg-ocid>"]" \
      --cluster-pod-network-options '[{"cniType":"OCI_VCN_IP_NATIVE"}]'

      Por exemplo:

      oci ce cluster create \
      --compartment-id ocid1.compartment.oc1..aaaaaaaa______n5q \
      --name sales \
      --vcn-id ocid1.vcn.oc1.phx.aaaaaaaa______lhq \
      --type ENHANCED_CLUSTER \
      --kubernetes-version v1.25.4 \
      --service-lb-subnet-ids "[\"ocid1.subnet.oc1.phx.aaaaaaaa______g7q"]" \
      --endpoint-subnet-id ocid1.subnet.oc1.phx.aaaaaaaa______sna \
      --endpoint-public-ip-enabled true \
      --endpoint-nsg-ids "[\"ocid1.networksecuritygroup.oc1.phx.aaaaaaaa______5qq\"]" \
      --cluster-pod-network-options '[{"cniType":"OCI_VCN_IP_NATIVE"}]'
    2. Obtenha o OCID do novo cluster para uso na próxima etapa.
    3. Crie um novo pool de nós virtuais no cluster:
      oci ce virtual-node-pool create \
      --cluster-id <cluster-ocid> \
      --compartment-id <compartment-ocid> \
      --display-name <node-pool-name> \
      --kubernetes-version <kubernetes-version> \
      --placement-configurations "[{\"availabilityDomain\":\"<ad-name>\",\"faultDomain\":[\"FAULT-DOMAIN-<n>\"],\"subnetId\":\"<virtualnode-subnet-ocid>\"}]" \
      --nsg-ids "[\"<virtual-node-nsg-ocid>\"]" \
      --pod-configuration "{\"subnetId\":\"<pod-subnet-ocid>\",\"nsgIds\":[\"<pod-nsg-ocid>\"],\"shape\":\"<shape-name>\"}" \
      --size <number-of-nodes>
      em que:
      • <ad-name> é o nome do domínio de disponibilidade no qual colocar nós virtuais. Para descobrir o nome do domínio de disponibilidade a ser usado, execute:
        oci iam availability-domain list
      • <shape-name> é um de Pod.Standard.E3.Flex, Pod.Standard.E4.Flex.

      Por exemplo:

      oci ce virtual-node-pool create \
      --cluster-id ocid1.cluster.oc1.phx.aaaaaaaa______w5q \
      --compartment-id ocid1.compartment.oc1..aaaaaaaa______n5q \
      --display-name sales-vnp \
      --kubernetes-version v1.24.1 \
      --placement-configurations "[{\"availabilityDomain\":\"GMvH:PHX-AD-1\",\"faultDomain\":[\"FAULT-DOMAIN-1\"],\"subnetId\":\"ocid1.subnet.oc1.phx.aaaaaaaa______sra\"}]" \
      --nsg-ids "[\"ocid1.networksecuritygroup.oc1.phx.aaaaaaaa______hpa\"]" \
      --pod-configuration "{\"subnetId\":\"ocid1.subnet.oc1.phx.aaaaaaaa______o7q\",\"nsgIds\":[\"ocid1.networksecuritygroup.oc1.phx.aaaaaaaa______osq\"],\"shape\":\"Pod.Standard.E4.Flex\"}" \
      --size 1

    Para ver uma lista completa de parâmetros e valores para comandos CLI, consulte a Referência de Comando CLI.

  • Execute a operação CreateVirtualNodePool para criar um pool de nós virtuais e nós virtuais em um cluster existente.