Extensões de cluster

Os gráficos do Helm ajudam você a gerenciar aplicativos Kubernetes fornecendo os blocos de construção necessários para definir, instalar e atualizar até mesmo os aplicativos Kubernetes mais complexos. O recurso de extensão de cluster se baseia nos componentes de empacotamento do Helm, fornecendo uma experiência orientada pelo Azure Resource Manager para instalação e gerenciamento do ciclo de vida de diferentes recursos do Azure, além do seu cluster Kubernetes.

Um operador de cluster ou administrador pode usar o recurso de extensões de cluster para:

  • Instale e gerencie as ofertas de gerenciamento de chaves, dados e aplicativos no cluster Kubernetes.
  • Use Azure Policy para automatizar a implantação em escala de extensões de cluster em todos os clusters em seu ambiente.
  • Assine as trens de liberação (por exemplo, visualização ou estável) para cada extensão.
  • Configure a atualização automática para extensões ou fixe para uma versão específica e atualize as versões manualmente.
  • Atualize as propriedades de extensão ou exclua as instâncias de extensão.

Para obter uma lista de todas as extensões com suporte no momento, consulte Extensões disponíveis para clusters do Kubernetes habilitados para Azure Arc.

Arquitetura

Cluster extensions architecture

A instância de extensão de cluster é criada como um recurso Azure Resource Manager extensão (Microsoft.KubernetesConfiguration/extensions ) sobre o recurso do Kubernetes habilitado para Azure Arc (representado por Microsoft.Kubernetes/connectedClusters) no Azure Resource Manager. Essa representação Azure Resource Manager permite que você crie uma política que verifica todos os recursos Azure Arc Kubernetes habilitados com ou sem uma extensão de cluster específica. Depois de determinar quais clusters estão com extensões de cluster ausentes com os valores de propriedade desejados, você pode corrigir esses recursos não compatíveis usando Azure Policy.

Oconfig-agent em execução no cluster rastreia recursos de extensão novos e atualizados no Azure Arc do Kubernetes habilitado. O extensions-manager agente em execução no cluster lê o tipo de extensão que precisa ser instalado e efetua pull do gráfico Helm associado do Registro de Contêiner do Azure ou Microsoft Container Registry e o instala no cluster.

Tanto o config-agent e extensions-manager componentes em execução no cluster tratam as atualizações de instância de extensão, atualizações de versão e exclusão de instância de extensão. Esses agentes usam a identidade gerenciada atribuída pelo sistema do cluster para se comunicar com segurança com os serviços do Azure.

Observação

config-agent verifica as instâncias de extensão novas ou atualizadas sobre o cluster Kubernetes habilitado para Arc do Azure. Os agentes exigem conectividade para o estado desejado da extensão a ser puxada para o cluster. Se os agentes não puderem se conectar ao Azure, a propagação do estado desejado para o cluster será atrasada.

As definições de configuração protegidas para uma instância de extensão são armazenadas por até 48 horas nos serviços kubernetes habilitados para o Arc do Azure. Como resultado, se o cluster permanecer desconectado durante as 48 horas após o recurso de extensão ter sido criado no Azure, a extensão será alterada de um estado Pending para o estado Failed. Para evitar isso, recomendamos colocar os clusters online regularmente.

Importante

Atualmente, as extensões de cluster do Kubernetes habilitadas para Azure Arc não têm suporte em clusters baseados em ARM64, exceto para o Flux (GitOps). Para instalar e usar outras extensões de cluster, o cluster deve ter pelo menos um nó de sistema operacional e arquitetura do tipo linux/amd64.

Escopo da extensão

Cada tipo de extensão define o escopo no qual eles operam no cluster. As instalações de extensão nos clusters do Kubernetes habilitado para Arc têm escopo de cluster ou escopo de namespace.

Uma extensão com escopo de cluster será instalada no release-namespace especificado durante a criação da extensão. Normalmente, apenas uma instância da extensão com escopo de cluster e seus componentes, como pods, operadores e CRDs (Definições de Recursos Personalizados), são instalados no namespace de versão no cluster.

Uma extensão com escopo de namespace pode ser instalada em um determinado namespace fornecido usando a propriedade –namespace. Como a extensão pode ser implantada em um escopo de namespace, várias instâncias da extensão com escopo de namespace e seus componentes podem ser executadas no cluster. Cada instância de extensão tem permissões no namespace no qual é implantada. Todas as extensões acima têm escopo de cluster, exceto pela Grade de Eventos no Kubernetes.

Todas as extensões disponíveis no momento têm escopo de cluster, exceto pelo Gerenciamento de API do Azure no Azure Arc.

Próximas etapas