Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Compartilhar grupos de destino de vários clusters
Por padrão, o controlador do balanceador de carga do Modo Automático do Amazon EKS assume controle total sobre os grupos de destino que ele configura. Quando um grupo de destino é registrado no controlador, ele cancela o registro de todos os destinos que não estão atualmente no cluster. Isso garante que o grupo de destino reflita o conjunto exato de destinos gerenciados por esse cluster.
A habilitação do suporte a MultiCluster altera esse comportamento. Um grupo de destino com o suporte a MultiCluster habilitado pode ser associado a vários clusters do Kubernetes ou oferecer suporte a destinos arbitrários de outras fontes. Cada cluster registra e cancela o registro somente dos destinos que possui, em vez de cancelar o registro de destinos que pertencem a outros clusters ou fontes.
Como funciona
Quando o suporte a MultiCluster está habilitado, cada cluster rastreia o conjunto de destinos que gerencia e reconcilia somente os destinos no grupo de destino compartilhado. O Modo Automático do Amazon EKS armazena os destinos rastreados de cada cluster em um Kubernetes ConfigMap denominado eks-lbc-targets-<targetgroupbinding-name>, no mesmo namespace dos recursos do balanceador de carga.
nota
O AWS Load Balancer Controller upstream armazena esse estado em um ConfigMap com o prefixo aws-lbc-targets-. No Modo Automático do Amazon EKS, o prefixo é eks-lbc-targets-, então, ao seguir as orientações upstream, inspecione o ConfigMap eks-lbc-targets-.
O balanceador de carga distribui o tráfego igualmente em todos os destinos registrados. O controlador não é compatível com a distribuição ponderada entre clusters. O suporte a MultiCluster funciona com os tipos de destino ip e instance.
Habilitar o suporte a MultiCluster
Habilite o suporte a MultiCluster usando um dos seguintes métodos, dependendo do tipo de recurso:
-
TargetGroupBinding: defina
spec.multiClusterTargetGroup: true. -
Ingress (ALB): adicione a anotação
alb.ingress.kubernetes.io/multi-cluster-target-group: "true". -
Service (NLB): adicione a anotação
service.beta.kubernetes.io/aws-load-balancer-multi-cluster-target-group: "true".
Considerações sobre o Modo automático do Amazon EKS
O guia upstream MultiCluster Target Groups
-
O recurso
TargetGroupBindingpersonalizado está no grupo de APIseks.amazonaws.com/v1, não emelbv2.k8s.aws/v1beta1. -
O controlador
IngressClasséeks.amazonaws.com/alb. -
Não defina a anotação
alb.ingress.kubernetes.io/tags. A políticaAmazonEKSLoadBalancingPolicygerenciada restringeaws:TagKeysa uma lista de permissões, portanto, as tags personalizadas causam um erro de acesso negado e o controlador não consegue reconciliá-las. Isso pode fazer com que o finalizador do Ingress fique travado na exclusão. -
Todos os clusters participantes devem estar na mesma VPC, pois um grupo de destino tem como escopo uma única VPC.
Exemplo
Para uma explicação passo a passo que compartilha um único grupo de destino entre dois clusters (um cluster que possui o balanceador de carga por meio de um Ingress e o outro que se une por meio de um TargetGroupBinding), consulte Compartilhar um grupo de destino entre dois clusters.