Visão geral a rede CNI do Azure no AKS (Serviço de Kubernetes do Azure)
Por padrão, os clusters do AKS usam o kubenet e criam uma rede virtual e uma sub-rede. Com o kubenet, os nós obtém um endereço IP de uma sub-rede da rede virtual. Em seguida, o NAT (conversão de endereços de rede) é configurado nos nós e os pods recebem um endereço IP "oculto" por trás do IP do nó. Essa abordagem reduz o número de endereços IP que você precisa reservar no espaço de rede para uso dos pods.
Com a CNI (Interface de Rede de Contêiner) do Azure, cada pod obtém um endereço IP da sub-rede e pode ser acessado diretamente. Os sistemas na mesma rede virtual que o cluster do AKS veem o IP do pod como o endereço de origem para qualquer tráfego vindo do pod. Os sistemas fora da rede virtual do cluster do AKS veem o IP do nó como o endereço de origem de qualquer tráfego vindo do pod. Esses endereços IP devem ser exclusivos em todo o seu espaço de rede e devem ser planejados com antecedência. Cada nó tem um parâmetro de configuração para o número máximo de pods aos quais ele dá suporte. O número equivalente de endereços IP por nó é então reservado com antecedência para esse nó. Essa abordagem exige mais planejamento e, muitas vezes, leva à exaustão do endereço IP ou à necessidade de recriar os clusters em uma sub-rede maior conforme as demandas de aplicativo aumentam.
Observação
Esse artigo apresenta apenas a CNI tradicional do Azure. Para Sobreposição de CNI do Azure, VNet CNI do Azure para alocação de IP dinâmico e VNet CNI do Azure – alocação de bloco estático (versão prévia). Em vez disso, consulte a documentação deles.
Pré-requisitos
A rede virtual do cluster do AKS deve permitir conectividade com a Internet de saída.
Os clusters do AKS não podem usar
169.254.0.0/16
,172.30.0.0/16
,172.31.0.0/16
ou192.0.2.0/24
para o intervalo de endereços do serviço do Kubernetes, o intervalo de endereços do pod ou o intervalo de endereços da rede virtual do cluster.A identidade do cluster usada pelo cluster do AKS precisa ter, pelo menos, permissões de Colaborador de Rede na sub-rede da rede virtual. Se você quiser definir uma função personalizada em vez de usar a função de Colaborador de Rede interna, as seguintes permissões serão necessárias:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Authorization/roleAssignments/write
A sub-rede atribuída ao pool de nós do AKS não pode ser uma sub-rede delegada.
O AKS não aplica NSGs (grupos de segurança de rede) à sua sub-rede e não muda nenhum dos NSGs associados a essa sub-rede. Se você fornecer sua própria sub-rede e adicionar os NSGs associados a ela, verifique se as regras de segurança nos NSGs permitem o tráfego dentro do intervalo de CIDR do nó. Para saber mais, confira Grupos de segurança de rede.
Parâmetros de implantação
Quando você cria um cluster do AKS, os seguintes parâmetros são configuráveis para a rede CNI do Azure:
Rede virtual: a rede virtual na qual você deseja implantar o cluster do Kubernetes. Se você quiser criar uma nova rede virtual para o cluster, selecione Criar nova e siga as etapas na seção Criar rede virtual. Se você quiser selecionar uma rede virtual existente, verifique se ela está no mesmo local e na mesma assinatura do Azure que o cluster do Kubernetes. Para obter mais informações sobre limites e cotas para uma rede virtual do Azure, consulte Limites, cotas e restrições de assinatura e serviço do Azure.
Sub-rede: a sub-rede dentro da rede virtual em que você quer implantar o cluster. Se você quiser criar uma nova sub-rede na rede virtual para o cluster, selecione Criar nova e siga as etapas na seção Criar sub-rede. Para conectividade híbrida, o intervalo de endereços não deve se sobrepor a nenhuma outra rede virtual em seu ambiente.
Plug-in de rede do Azure: quando o plug-in de rede do Azure é usado, o serviço LoadBalancer interno com "externalTrafficPolicy=Local" não pode ser acessado por meio de VMs com um IP em clusterCIDR que não pertence ao cluster do AKS.
Intervalo de endereços do serviço do Kubernetes: este parâmetro é o conjunto de IPs virtuais que o Kubernetes atribui aos serviços internos no seu cluster. Esse intervalo não poderá ser atualizado depois que você criar o cluster. Você pode usar qualquer intervalo de endereço particular que atenda aos seguintes requisitos:
- Não deve estar dentro do intervalo de endereços IP da rede virtual do cluster
- Não deve se sobrepor a nenhuma outra rede virtual com a qual a rede virtual do cluster está emparelhada
- Não deve sobrepor IPs locais
- Não deve estar dentro dos intervalos
169.254.0.0/16
,172.30.0.0/16
,172.31.0.0/16
ou192.0.2.0/24
Embora seja tecnicamente possível especificar um intervalo de endereços de serviço na mesma rede virtual do cluster, isso não é recomendado. Um comportamento imprevisível pode ocorrer se forem usados intervalos de IP sobrepostos. Para mais informações, consulte a seção FAQ deste artigo. Para obter mais informações sobre os serviços do Kubernetes, consulte Serviços na documentação do Kubernetes.
Endereço IP do serviço DNS do Kubernetes: O endereço IP para o serviço DNS do cluster. Esse endereço deve estar dentro do intervalo de endereços do serviço Kubernetes. Não use o primeiro endereço IP no intervalo de endereços. O primeiro endereço no seu intervalo de sub-rede é usado para o endereço kubernetes.default.svc.cluster.local.
Perguntas frequentes
Posso implantar VMs na sub-rede do cluster?
Sim. No entanto, para a CNI do Azure para alocação de IP dinâmica, as VMs não podem ser implantadas na sub-rede do pod.
Qual IP de origem os sistemas externos veem em um tráfego originado em um pod com o CNI do Azure habilitado?
Os sistemas na mesma rede virtual que o cluster do AKS veem o IP do pod como o endereço de origem para qualquer tráfego vindo do pod. Os sistemas fora da rede virtual do cluster do AKS veem o IP do nó como o endereço de origem de qualquer tráfego vindo do pod.
No entanto, para a CNI do Azure para alocação de IP dinâmica, não importa se a conexão está dentro da mesma rede virtual ou redes virtuais cruzadas, o IP do pod é sempre o endereço de origem para qualquer tráfego do pod. Isso ocorre porque a CNI do Azure para alocação de IP dinâmica implementa a infraestrutura de Rede de Contêiner do Microsoft Azure, que oferece experiência de ponta a ponta. Portanto, elimina o uso de
ip-masq-agent
, que ainda é usado pela CNI tradicional do Azure.Posso configurar políticas de rede por pod?
Sim, a política de rede do Kubernetes está disponível no AKS. Para obter mais informações, consulte Proteger o tráfego entre os pods usando as políticas de rede no AKS.
O número máximo de pods implantados em um nó é configurável?
Sim, ao implantar um cluster com a CLI do Azure ou um modelo do Resource Manager. Consulte Máximo de pods por nó.
Não é possível alterar o número máximo de pods por nó em um cluster existente.
Como configurar propriedades adicionais para a sub-rede que criei durante a criação do cluster AKS? Por exemplo, pontos de extremidade do serviço.
A lista completa de propriedades para a rede virtual e as sub-redes que você cria durante a criação do cluster do AKS pode ser configurada na página de configuração de rede virtual padrão no portal do Azure.
Eu posso usar uma sub-rede diferente na rede virtual do cluster para o intervalo de endereços de serviço do Kubernetes?
Não é recomendado, mas essa configuração é possível. O intervalo de endereços do serviço é um conjunto de VIPs (IPs virtuais) que o Kubernetes atribui aos serviços internos no cluster. O Azure Networking não tem visibilidade do intervalo de IP de serviço do cluster do Kubernetes. A falta de visibilidade no intervalo de endereços de serviço do cluster pode levar a problemas. É possível criar posteriormente uma nova sub-rede na rede virtual do cluster que se sobrepõe ao intervalo de endereços de serviço. Se tal sobreposição ocorrer, o Kubernetes poderá atribuir um serviço a um IP que já esteja em uso por outro recurso na sub-rede, causando comportamento ou falhas imprevisíveis. Ao garantir que você use um intervalo de endereços fora da rede virtual do cluster, é possível evitar esse risco de sobreposição.
Próxima etapa
Saiba mais sobre a rede no AKS nos seguintes artigos:
Azure Kubernetes Service