Insights de utilização de endereço IP do GKE

Nesta página, descrevemos os insights do Network Analyzer sobre a utilização de endereços IP do Google Kubernetes Engine (GKE). Para informações sobre todos os tipos de insight, consulte Grupos e tipos de insight.

Ver insights na API Recommender

Para ver esses insights na CLI gcloud ou na API Recommender, use o seguinte tipo de insight:

  • google.networkanalyzer.container.ipAddressInsight

Você precisa das seguintes permissões:

  • recommender.networkAnalyzerGkeIpAddressInsights.list
  • recommender.networkAnalyzerGkeIpAddressInsights.get

Para mais informações sobre o uso da API Recommender para insights do Network Analyzer, consulte Usar a CLI e a API do recomendador.

Alta alocação de intervalos de pod do GKE

Esse insight indica que a utilização do endereço IP nos intervalos de endereços do pod para um cluster do GKE é maior que 80%. A política de alocação de endereços IP para pods do GKE varia se o cluster foi criado como um cluster nativo de VPC ou um cluster baseado em rota.

Clusters baseados em rotas

No GKE, os clusters podem ser diferenciados pela forma como encaminham o tráfego de um pod para outro. Um cluster que usa as rotas do Google Cloud é chamado de cluster baseado em rotas. Para mais informações, consulte Como criar um cluster baseado em rotas.

Um cluster baseado em rotas tem um intervalo de endereços IP que são usados para pods e serviços. Mesmo que o intervalo seja usado tanto para pods quanto para serviços, ele é chamado de intervalo de endereço de pod.

O último /20 do intervalo de endereços de pod é usado para serviços. Um intervalo /20 tem 212 = 4096 endereços. Portanto, 4096 endereços são usados para serviços e o restante do intervalo é usado para pods.

Cada nó do intervalo de endereços de pod tem um intervalo /24 de endereços IP para os pods. Um intervalo /24 tem 28 = 256 endereços. Lembre-se de que 4096 endereços no intervalo de endereços de pod são usados para serviços. A parte restante do intervalo de endereços de pod é usada para pods e deve ser grande o suficiente para armazenar o número de nós x 256 endereços.

A proporção de alocação do intervalo de endereços do pod é calculada da seguinte forma:

$\frac{\text {GKE node count} \times {256}}{\text {Pod address range size}-{4096}}$

Por exemplo, você planeja criar um cluster de nós 900. Portanto, você precisa de 900 x 256 = 230,400 endereços para pods. Agora, suponha que você tenha um intervalo de endereços de pod /14. Um intervalo /14 tem 218 = 262,144 endereços. Subtraia os 4096 endereços usados para serviços e você terá 258,048, que é suficiente para 900 nós.

Clusters nativos de VPC

No GKE, os clusters podem ser diferenciados pela forma como encaminham o tráfego de um pod para outro. Um cluster que usa intervalos de endereços IP de alias é chamado de cluster nativo de VPC. Para mais informações, consulte Clusters nativos de VPC.

Ao criar um pool de nós em um cluster nativo de VPC, você seleciona um intervalo de endereços IP secundário a fim de alocar IPs para pods do GKE. Diferentes pools de nós podem usar diferentes intervalos secundários para alocar endereços IP de pod. Para mais informações, consulte CIDR de vários pods. O Network Analyzer calcula a proporção de alocação para cada intervalo de endereços IP secundário usado para alocar endereços IP do pod para um determinado cluster. Se a proporção de alocação geral for maior que 80%, você receberá um insight de alta utilização.

A proporção de alocação de um único intervalo de endereços IP secundário é calculada da seguinte forma:

$\frac{\text {IP addresses from the secondary range allocated to nodes}}{\text {Secondary range size}}$

Por exemplo, um intervalo de pods secundário /24 pode conter 256 pods. Se houver apenas um nó 1 com os pods padrão max_pods_per_node, 110 e 16 em execução, a proporção mostrará 100% (256/256) em vez de 6,25% (16/256) porque, embora os endereços IP do pod 240 não sejam usados, eles ainda pertencem a esse nó. Outro nó novo só poderá ser criado com êxito se houver 256 endereços IP de pod não utilizados.

A alocação geral é calculada da seguinte forma:

$\frac{\text {Sum of allocated IPs across all secondary IP address ranges used to allocate Pod IP addresses}}{\text {Sum of secondary IP address range sizes used to allocate Pod IP addresses}}$

Por exemplo, se o endereço IP de pod padrão e o intervalo adicional de endereços IPv4 de pod forem definidos como /22 e houver 2 pools de nós, um pool de nós usará o intervalo de endereços IP de pod padrão e terá 3 nós, enquanto o segundo pool de nós usará um intervalo de endereços IP de pod adicional e também terá 3 nós, com o número máximo padrão de pods definido como 110. O Kubernetes atribui um intervalo CIDR /24 aos nós no cluster. Com 6 nós e um intervalo CIDR /24 alocado, há um total de 256 * 6 = 1536 endereços IP. Isso é 75% do número total de endereços IP disponíveis nos dois intervalos de endereços IP do pod (1024 * 2 = 2048).

É importante observar que, se o endereço IP secundário for compartilhado entre clusters diferentes, os insights mostrarão o valor total agregado de todos os clusters. Se você quiser ver uma única utilização do intervalo de IP do cluster, execute gcloud container cluster describe CLUSTER_NAME para ver cada status de utilização de endereço IP secundário. Substitua CLUSTER_NAME pelo nome do cluster.

Recomendações

A alocação de intervalos de pod do GKE limita o escalonamento automático

Esse insight indica que os intervalos de endereços IP do pod do cluster não têm endereços suficientes para aceitar a criação do número máximo de nós em todos os pools de nós. A página de detalhes do Insight inclui uma tabela que mostra o número de endereços IP do pod usados atualmente e o número máximo de endereços IP do pod em cada um dos intervalos de endereços IP do pod do cluster do GKE.

O Network Analyzer gera esse insight quando o valor de utilização do endereço IP totalmente escalonado automaticamente excede 100%.

O valor de uso do endereço IP totalmente escalonado excede 100% quando o número de endereços IP do pod necessários para aceitar o número máximo de nós no cluster excede o número de endereços IP nos intervalos de endereços IP do pod do cluster. O número máximo de nós no cluster é a soma do número máximo de nós em cada pool de nós do cluster (maxNodeCount).

O valor de utilização de endereço IP totalmente escalonado é calculado por meio da fórmula encontrada em Alta alocação de intervalos de pods do GKE.

Clusters baseados em rotas

Esse insight é gerado quando a proporção de alocação do intervalo de endereços do pod é maior que 100%, e todos os pools de nós são escalonados automaticamente. Os nós do GKE não serão criados devido à falta de espaço de endereço IP.

Clusters nativos de VPC

Esse insight será gerado se qualquer intervalo de endereços IP secundário usado para alocar endereços IP do pod não tiver espaço suficiente. O espaço de endereço IP insuficiente não consegue lidar com a situação quando todos os pools de nós são totalmente escalonados automaticamente.

Para mais informações, consulte Práticas recomendadas para redes do GKE e Limitação do escalonador automático de clusters.

Recomendações

  • Para clusters baseados em rotas, recrie o cluster com um intervalo de endereços de pod maior. Crie este cluster como um cluster nativo de VPC, porque esse é o modo de rede recomendado. Veja Clusters nativos de VPC e baseados em rotas
  • Para clusters nativos de VPC, adicione outros intervalos de pod ao nível do cluster usando o CIDR de vários pods e ative o provisionamento automático de nós para automatizar o escalonamento de nós com a alocação automática de endereços IP de pod. Se você quiser mais controle sobre os endereços IP de pod usados para cada pool de nós, crie os pools de nós que usam um intervalo de endereços IP secundário específico usando o CIDR de vários pods. No entanto, isso se aplica somente a clusters do Standard.