Como otimizar a alocação de endereços IP

Nesta página, explicamos como configurar o número máximo de pods que podem ser executados em um nó. Esse valor determina o tamanho dos intervalos de endereços IP atribuídos aos nós no Google Kubernetes Engine. Os pods executados em um nó são endereços IP alocados do intervalo CIDR do pod do nó.

Visão geral

Por padrão, o GKE configura os nós para executar, no máximo, 110 pods. O Kubernetes atribui a cada nó um intervalo de endereços IP, um bloco CIDR, para que cada pod tenha um endereço IP exclusivo. O tamanho do bloco CIDR corresponde ao número máximo de pods por nó.

Com o máximo padrão de 110 pods por nó, o Kubernetes atribui um bloco CIDR /24 (256 endereços) a cada um dos nós. Tendo aproximadamente o dobro de endereços IP disponíveis, o Kubernetes é capaz de mitigar a reutilização de endereços IP à medida que os pods são adicionados e removidos dos nós.

Se você reduzir o máximo de pods por nó do valor padrão, o Kubernetes atribuirá ao nó um bloco CIDR proporcionalmente menor. O bloco sempre contém, pelo menos, o dobro de endereços do número máximo de pods por nó. A tabela abaixo lista o tamanho do bloco CIDR que o Kubernetes atribui a cada nó com base nos pods máximos por nó:

Número máximo de pods por nó Intervalo CIDR por nó
8 /28
9 a 16 /27
17 a 32 /26
33 a 64 /25
65 a 110 /24

Ao configurar o número máximo de pods por nó, você está indiretamente configurando o espaço de endereços IP necessário para cada nó do cluster. Por exemplo, se você definir o máximo de 30 pods por nó, então, de acordo com a tabela acima, um intervalo CIDR /26 será usado e cada nó terá 64 endereços IP. Se você não configurar o número máximo de pods por nó, um intervalo CIDR /24 será usado e cada nó receberá 256 endereços IP.

Reduzir o número máximo de pods por nó permite que o cluster tenha mais nós, já que cada um deles exige uma parte menor do espaço total de endereços IP. Uma alternativa é fornecer o mesmo número de nós no cluster, especificando um espaço de endereços IP menor para pods no momento da criação do cluster.

Reduzir o número máximo de pods por nó também permite criar clusters menores que exigem menos endereços IP. Por exemplo, com oito pods por nó, cada pod recebe um CIDR /28. Esses intervalos de endereços IP do pod mais os intervalos secundários e de sub-rede definidos pelo usuário determinam o número de endereços IP necessários para criar um cluster com êxito.

É possível configurar o número máximo de pods por nó no momento da criação do cluster e do pool de nós.

Restrições

  • Só é possível configurar o máximo de pods por nó em clusters nativos de VPC.
  • A criação de nós é limitada pelo número de endereços disponíveis no intervalo de endereços do pod. Consulte esta tabela para ver os tamanhos padrão, mínimo e máximo do intervalo.

Como configurar o máximo de pods por nó

Você pode configurar o número máximo de pods por nó ao criar um cluster ou um pool de nós. Não será possível alterar essa configuração depois que o cluster ou o pool de nós for criado.

Defina o tamanho do intervalo de endereços do pod ao criar um cluster com a gcloud ou o Console do Google Cloud Platform.

Para criar um cluster com um máximo de 110 pods por nó:

gcloud

gcloud beta container clusters create \
 --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
 --create-subnetwork=name='my-cluster-subnet',range=10.4.32.0/27 \
 --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=110 \
 my-cluster

Console

  1. Ao criar um cluster, expanda a seção Opções avançadas e selecione Ativar cluster nativo de VPC (usando o IP do alias) na seção Rede.
  2. Defina o campo Número máximo de pods por nó. O GKE usa esse valor para ajustar o tamanho do intervalo de endereços IP atribuído aos nós.

Isso cria um cluster que pode conter até oito nós. Com base no máximo de pods por nó, o Kubernetes concede a cada nó um intervalo CIDR /24 para uso. Como esse cluster atribui endereços IP do pod de um intervalo CIDR /21 (cluster-ipv4-cidr), pode haver até oito nós (24-21 = 3, 23 = 8). A opção default-max-pods-per-node pode ser omitida porque 110 é o valor padrão.

Para criar um cluster com um máximo de oito pods por nó:

gcloud

gcloud beta container clusters create \
  --enable-ip-alias --cluster-ipv4-cidr=10.0.0.0/21 \
  --create-subnetwork=name='my-cluster-subnet',range=10.4.32.0/21 \
  --services-ipv4-cidr=10.4.0.0/19 --default-max-pods-per-node=8 \
  my-cluster

Console

  1. Ao criar um cluster, expanda a seção Opções avançadas e selecione Ativar cluster nativo de VPC (usando o IP do alias) na seção Rede.
  2. Defina o campo Número máximo de pods por nó. O GKE usa esse valor para ajustar o tamanho do intervalo de endereços IP atribuído aos nós.

Isso cria um cluster que pode conter até 128 nós. Com base no máximo de pods por nó, o Kubernetes concede a cada nó um intervalo CIDR /28 para uso. Como o intervalo disponível para todos os pods (cluster-ipv4-cidr) é um intervalo /21, isso significa que pode haver até 128 nós (28-21 = 7, 27 = 128).

Também é possível especificar o número máximo de pods por nó ao criar um pool de nós em um cluster atual. A criação de um novo pool de nós permite otimizar a alocação de endereços IP, mesmo em clusters atuais em que o max-pods-per-node não foi configurado no nível do cluster.

gcloud

gcloud beta container node-pools create \
  my-pool --cluster=my-cluster \
  --max-pods-per-node=30

Console

  1. Na página de edição do cluster, clique em Adicionar pool de nós
  2. Defina o campo Número máximo de pods por nó. O GKE usa esse valor para ajustar o tamanho do intervalo de endereços IP atribuído aos nós.

Esse valor substitui a opção default-max-pods-per-node que é aplicada no nível do cluster. Se você omitir a opção max-pods-per-node ao criar um pool de nós, a configuração padrão no nível do cluster será usada.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Kubernetes Engine