Melhores práticas para isolamento de clusters no Azure Kubernetes Service (AKS)

À medida que gere clusters no Azure Kubernetes Service (AKS), muitas vezes tem de isolar equipas e cargas de trabalho. O AKS permite flexibilidade na forma como executa clusters multi-inquilinos e isola recursos. Para maximizar o seu investimento no Kubernetes, é importante que compreenda as funcionalidades de múltiplos inquilinos e isolamento do AKS.

Este artigo de melhores práticas centra-se no isolamento dos operadores de cluster. Neste artigo, vai aprender a:

  • Planeie clusters multi-inquilinos e separação de recursos.
  • Utilize o isolamento lógico ou físico nos clusters do AKS.

Criar clusters para multi-inquilinos

O Kubernetes permite-lhe isolar logicamente equipas e cargas de trabalho no mesmo cluster. O objetivo consiste em fornecer o menor número de privilégios orientados para os recursos necessários para cada equipa. Um Espaço de Nomes do Kubernetes cria um limite de isolamento lógico. Outras funcionalidades e considerações do Kubernetes para isolamento e multi-inquilino incluem as seguintes áreas:

Agendamento

O agendamento utiliza funcionalidades básicas, como quotas de recursos e orçamentos de interrupção de pods. Para obter mais informações sobre estas funcionalidades, veja Melhores práticas para funcionalidades básicas do agendador no AKS.

As funcionalidades mais avançadas do agendador incluem:

  • Taints e tolerâncias.
  • Seletores de nós.
  • Afinidade de nó e pod ou anti-afinidade.

Para obter mais informações sobre estas funcionalidades, veja Melhores práticas para funcionalidades avançadas do agendador no AKS.

Rede

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

Autenticação e autorização

A autenticação e a autorização utilizam:

  • Controlo de acesso baseado em funções (RBAC).
  • Integração do Azure Active Directory (AD).
  • Identidades do pod.
  • Segredos no Azure Key Vault.

Para obter mais informações sobre estas funcionalidades, veja Melhores práticas para autenticação e autorização no AKS.

Contentores

Os contentores incluem:

  • O suplemento Azure Policy para o AKS impor a segurança do pod.
  • Admissão de segurança do pod.
  • Analisar imagens e runtime para obter vulnerabilidades.
  • Utilizar o App Armor ou o Seccomp (Computação Segura) para restringir o acesso de contentor ao nó subjacente.

Clusters logicamente isolados

Orientação sobre melhores práticas

Separar equipas e projetos com isolamento lógico. Minimize o número de clusters físicos do AKS que implementa para isolar equipas ou aplicações.

Com o isolamento lógico, pode utilizar um único cluster do AKS para várias cargas de trabalho, equipas ou ambientes. Os Espaços de Nomes do Kubernetes formam o limite de isolamento lógico para cargas de trabalho e recursos.

Isolamento lógico de um cluster do Kubernetes no AKS

Normalmente, a separação lógica dos clusters fornece uma densidade de pod mais elevada do que os clusters fisicamente isolados, com menos capacidade de computação em excesso no cluster. Quando combinado com o dimensionador automático do cluster do Kubernetes, pode aumentar ou reduzir verticalmente o número de nós para satisfazer as exigências. Esta abordagem de melhores práticas minimiza os custos ao executar apenas o número necessário de nós.

Os ambientes do Kubernetes não são totalmente seguros para utilização hostil de vários inquilinos. Num ambiente multi-inquilino, vários inquilinos trabalham numa infraestrutura partilhada. Se não for possível confiar em todos os inquilinos, precisa de planeamento adicional para impedir que os inquilinos afetem a segurança e o serviço de outras pessoas.

Outras funcionalidades de segurança, como o RBAC do Kubernetes para nós, bloqueiam explorações de forma eficiente. Para uma verdadeira segurança ao executar cargas de trabalho multi-inquilino hostis, só deve confiar num hipervisor. O domínio de segurança do Kubernetes torna-se todo o cluster e não um nó individual.

Para estes tipos de cargas de trabalho multi-inquilino hostis, deve utilizar clusters fisicamente isolados.

Clusters fisicamente isolados

Orientação sobre melhores práticas

Minimize a utilização do isolamento físico para cada equipa ou implementação de aplicações separada e utilize o isolamento lógico .

Separar fisicamente clusters do AKS é uma abordagem comum ao isolamento do cluster. Neste modelo de isolamento, as equipas ou as cargas de trabalho são atribuídas ao seu próprio cluster do AKS. Embora o isolamento físico possa parecer a forma mais fácil de isolar cargas de trabalho ou equipas, adiciona gestão e sobrecarga financeira. Com clusters fisicamente isolados, tem de manter vários clusters e fornecer individualmente permissões de acesso e atribuição. Também lhe é faturado cada nó individual.

Isolamento físico de clusters individuais do Kubernetes no AKS

Normalmente, os clusters fisicamente isolados têm uma baixa densidade de pods. Uma vez que cada equipa ou carga de trabalho tem o seu próprio cluster do AKS, o cluster é muitas vezes sobreaprovisionado com recursos de computação. Muitas vezes, são agendados alguns pods nesses nós. A capacidade de nó não reclamada não pode ser utilizada para aplicações ou serviços em desenvolvimento por outras equipas. Estes recursos em excesso contribuem para os custos adicionais em clusters fisicamente isolados.

Passos seguintes

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