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 insights.

Conferir insights na API Recommender

Para conferir esses insights na gcloud CLI ou na API Recommender, use o tipo de insight a seguir:

  • google.networkanalyzer.container.ipAddressInsight

Você precisa destas 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 Recommender.

Alta alocação de intervalos de pods 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 tiver sido 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 fazem o roteamento do tráfego de um pod para outro. Um cluster que usa rotas deGoogle 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ços de pods.

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

Cada nó do intervalo de endereços do pod tem um intervalo /24 de endereços IP para os pods. Um intervalo /24 tem 28 = 256 endereços. Lembre-se de que endereços 4096 no intervalo de endereços do pod são usados para serviços. A parte restante do intervalo de endereços do pod é usada para pods e precisa 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 {Contagem de nós do GKE} \times {256}}{\text {Tamanho do intervalo de endereços IP}-{4096}}$

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

Clusters nativos de VPC

No GKE, os clusters podem ser diferenciados pela forma como fazem o roteamento do 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 os 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 do 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 {Endereços IP do intervalo secundário alocado aos nós}}{\text {Tamanho do intervalo secundário}}$

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 se houver 256 endereços IP do pod não utilizados.

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

$\frac{\text {Total de IPs alocados em todos os intervalos de endereços IP secundários usados para alocar endereços IP do pod}}{\text {Tamanho total dos intervalos de endereços IP secundários usados para alocar endereços IP do pod}}$

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 pods 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 utilização do endereço IP totalmente escalonado automaticamente 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 do endereço IP totalmente escalonado automaticamente é 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 totalmente 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 pods maior. Crie este cluster como um cluster nativo de VPC, porque esse é o modo de rede recomendado. Confira os 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 pods. Se você quiser mais controle sobre os endereços IP de pods 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.