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 que você entenda os recursos de multilocação e isolamento do AKS.

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.

Projetar clusters para multilocaçã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

Agendamento utiliza recursos básicos, como cotas de recursos e limites de interrupção de pods. 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 anti-afinidade 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 utiliza políticas de rede para controlar o fluxo de tráfego que entra e sai dos pods.

Para mais informações, consulte Proteger o tráfego entre os pods usando as políticas de rede no AKS.

Autenticação e autorização

Autenticação e autorização usa:

  • RBAC (controle de acesso baseado em função).
  • Integração do Microsoft Entra.
  • Identidades de pod.
  • Segredos no Cofre de Chaves do Azure.

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 Azure Policy para AKS para impor segurança de pod.
  • Admissão de segurança de pod.
  • Verificação de imagens e do runtime em busca de vulnerabilidades.
  • Usar App Armor ou Seccomp (Computação Segura) para restringir o acesso do 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 físicos do Azure Kubernetes Service (AKS) 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.

Isolamento lógico de um cluster do Kubernetes em AKS

A separação lógica de clusters geralmente oferece uma densidade de pod maior do que clusters fisicamente isolados, com menos capacidade de computação excedente 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 melhor prática 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 aplicações hostis em ambientes multiusuário, você deve usar clusters fisicamente separados.

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 clusters. Neste modelo de isolamento, as equipes ou cargas de trabalho são atribuídas ao seu próprio cluster do 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.

Isolamento físico de clusters de Kubernetes individuais em 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. Frequentemente, alguns pods são agendados nesses nós. A capacidade de nó não reivindicada 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: