Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Uso compartido de un grupo de destino entre dos clústeres
En el siguiente ejemplo, se comparte un grupo de destino entre dos clústeres. El primer clúster es propietario del equilibrador de carga de aplicación a través de una entrada, mientras que el segundo clúster se une al grupo de destino compartido mediante un TargetGroupBinding creado manualmente. Antes de comenzar, consulte Configuración de grupos de destino de varios clústeres para comprender cómo funciona la compatibilidad con varios clústeres y cómo habilitarla.
Clúster 1: propietario del equilibrador de carga a través de una entrada
Implemente la aplicación (por ejemplo, una implementación con un servicio NodePort) y, a continuación, cree una IngressClass y una Ingress que contenga la anotación de varios clústeres.
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb-mc spec: controller: eks.amazonaws.com/alb --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: echoserver namespace: echoserver annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: instance alb.ingress.kubernetes.io/multi-cluster-target-group: "true" spec: ingressClassName: alb-mc rules: - http: paths: - path: / pathType: Exact backend: service: name: echoserver port: number: 80
El controlador aprovisiona el equilibrador de carga y genera un TargetGroupBinding con spec.multiClusterTargetGroup: true. Tenga en cuenta los siguientes valores del TargetGroupBinding generado y del servicio, el segundo clúster necesita los tres:
-
la ,
targetGroupARN. -
El
nodePortdel servicio. -
El ID del grupo de seguridad del equilibrador de carga de
spec.networking.ingress[].from[].securityGroup.groupID.
Clúster 2: unión al grupo de destino compartido mediante TargetGroupBinding
Implemente la misma aplicación, fije el servicio al nodePort del clúster 1 y, a continuación, cree un TargetGroupBinding que haga referencia al ARN del grupo de destino y al ID del grupo de seguridad del clúster 1.
apiVersion: eks.amazonaws.com/v1 kind: TargetGroupBinding metadata: name: mc-echoserver namespace: echoserver spec: multiClusterTargetGroup: true serviceRef: name: echoserver port: 80 targetGroupARN: <cluster-1-target-group-arn> targetType: instance networking: ingress: - from: - securityGroup: groupID: <cluster-1-alb-security-group-id> ports: - port: <cluster-2-node-port> protocol: TCP
Con la compatibilidad con varios clústeres habilitada en ambos enlaces, cada clúster registra y anula el registro solo de sus propios destinos. Los nodos de ambos clústeres se mantienen en buen estado en el único grupo de destino compartido, mientras que el equilibrador de carga distribuye el tráfico entre todos ellos.