Práticas recomendadas para isolamento de cluster no Azure Kubernetes Service (AKS)

À medida que você gerencia clusters no Serviço de Kubernetes do Azure (AKS), geralmente é necessário isolar equipes e cargas de trabalho. O AKS oferece flexibilidade em como você executa clusters de vários inquilinos e isola recursos. Para maximizar seu investimento no Kubernetes, é importante entender os recursos de multilocação e de isolamento do Serviço de Kubernetes do Azure.

Este artigo de práticas recomendadas se concentra no isolamento para operadores de cluster. Neste artigo, você aprenderá como:

  • Planejar clusters de vários inquilinos e separação de recursos.
  • Use isolamento lógico ou físico em seus clusters do AKS.

Design de clusters para multi locação

O Kubernetes permite isolar logicamente as equipes e as cargas de trabalho no mesmo cluster. A meta é fornecer o menor número de privilégios no escopo dos recursos de que cada equipe precisa. Um namespace no Kubernetes cria um limite de isolamento lógico. Outros recursos e considerações adicionais do Kubernetes para isolamento e multilocação incluem as seguintes áreas:

Agendamento

O agendamento usa recursos básicos, como cotas de recursos e orçamentos de interrupção de pod. Para obter mais informações sobre esses recursos, consulte Práticas recomendadas para recursos básicos do agendador no AKS.

Os recursos mais avançados do agendador incluem:

  • Taints e tolerâncias.
  • Seletores de nó.
  • Afinidade ou antiafinidade de nó e Pod.

Para obter mais informações sobre esses recursos, consulte Práticas recomendadas para recursos avançados do agendador no AKS.

Rede

Rede usa políticas de rede para controlar o fluxo de tráfego para dentro e para fora dos pods.

Autenticação e autorização

Autenticação e autorização usa:

  • RBAC (controle de acesso bem função).
  • Integração do Microsoft Entra.
  • Identidades de pod.
  • Segredos no Azure Key Vault.

Para obter mais informações sobre esses recursos, consulte Práticas recomendadas para autenticação e autorização no AKS.

Contêineres

Os contêineres incluem:

  • O complemento do Azure Policy para o Serviço de Kubernetes do Azure para impor a segurança de pod.
  • Admissão de segurança de pod.
  • Verificação de imagens e do runtime em busca de vulnerabilidades.
  • Uso de Armadura de aplicativo ou Seccomp (Computação segura) para restringir o acesso de contêiner ao nó subjacente.

Clusters isolados logicamente

Orientação de melhor prática

Separe equipes e projetos usando isolamento lógico. Minimize o número de clusters de Serviço de Kubernetes do Azure físicos que você implanta para isolar equipes ou aplicativos.

Com o isolamento lógico, você pode usar um único cluster do AKS para várias cargas de trabalho, equipes ou ambientes. Os namespaces do Kubernetes formam o limite de isolamento lógico para cargas de trabalho e recursos.

Logical isolation of a Kubernetes cluster in AKS

A separação lógica de clusters geralmente fornece uma densidade mais alta de pod do que os clusters isolados fisicamente, com menos capacidade de computação em excesso colocada ociosa no cluster. Quando combinado com o auto escalador de cluster do Kubernetes, você pode dimensionar o número de nós para cima ou para baixo para atender às demandas. Essa abordagem recomendada para o dimensionamento automático minimiza os custos ao executar apenas o número de nós necessários.

Os ambientes Kubernetes não são completamente seguros para uso de vários locatários hostis. Em um ambiente multilocatário, vários locatários trabalham em uma infraestrutura compartilhada. Se nenhum dos locatários for confiável, você precisará de um planejamento extra para impedir que os locatários afetem a segurança e o serviço de outros.

Outros recursos de segurança, como o RBAC do Kubernetes para nós, bloqueiam explorações com eficiência. Para uma verdadeira segurança ao executar cargas de trabalho multilocatário hostil, você só deve confiar em um hipervisor. O domínio de segurança para o Kubernetes se torna o cluster inteiro e não um nó individual.

Para esses tipos de cargas de trabalho de vários locatários hostis, você deve usar clusters fisicamente isolados.

Clusters isolados fisicamente

Orientação de melhor prática

Minimize o uso de isolamento físico para cada equipe ou implantação de aplicativo separada e use isolamento lógico em vez disso.

A separação física de clusters AKS é uma abordagem comum ao isolamento de cluster. Neste modelo de isolamento, as equipes ou cargas de trabalho são atribuídas a seu próprio cluster AKS. Embora o isolamento físico possa parecer a maneira mais fácil de isolar cargas de trabalho ou equipes, ele adiciona gerenciamento e sobrecarga financeira. Com clusters isolados fisicamente, você precisa manter vários clusters e fornecer acesso e atribuir permissões individualmente. Você também é cobrado por cada nó individual.

Physical isolation of individual Kubernetes clusters in AKS

Clusters isolados fisicamente geralmente têm uma baixa densidade de pod. Como cada equipe ou carga de trabalho possui seu próprio cluster AKS, o cluster geralmente é provisionado em excesso com recursos de computação. Geralmente, poucos pods são agendados nesses nós. A capacidade de nó não solicitada não pode ser usada para aplicativos ou serviços em desenvolvimento por outras equipes. Esses recursos em excesso contribuem para os custos adicionais em clusters isolados fisicamente.

Próximas etapas

Este artigo concentra-se em isolamento de cluster. Para obter mais informações sobre operações de cluster no AKS, confira os seguintes artigos de melhores práticas: