Utilizar equilibrio de carga de aplicaciones en Amazon Elastic Kubernetes Service

Se puede utilizar un controlador de entrada a nivel de clúster para enrutar el tráfico a una implementación de ArcGIS Enterprise en Amazon Elastic Kubernetes Service (EKS). Para obtener más información, consulte Controladores de entrada a nivel de clúster.

Nota:

Este flujo de trabajo debe realizarse antes de configurar una organización de ArcGIS Enterprise. Se puede acceder a ArcGIS Enterprise Manager desde un navegador una vez que se ha implementado y configurado un equilibrador de carga.

Requisitos previos

Revise los requisitos previos generales y asegúrese de que se cumplen los siguientes requisitos previos específicos de EKS:

  • Debe haber preparado un clúster Kubernetes en Amazon EKS, incluida la implementación de AWS Load Balancer Controller.
  • El CLI de AWS debe estar instalado en su máquina cliente. Asegúrese de que puede autenticarse desde el CLI en la cuenta en la que existe su clúster de EKS.
  • Kubectl debe estar instalado en su máquina cliente. Asegúrese de que puede conectarse y emitir comandos al servidor API de Kubernetes asociado al clúster que ha creado.
  • Su clúster de EKS, VPC y los recursos asociados cumplen los requisitos establecidos en Equilibrio de carga de aplicaciones en Amazon EKS.
  • Debe disponer de un certificado TLS. Puede utilizar Amazon Certificate Manager (ACM) para crear o importar este certificado.

Implementar un controlador de entrada a nivel de clúster

Para implementar un controlador de entrada a nivel de clúster para enrutar el tráfico a una implementación de ArcGIS Enterprise en Amazon EKS, realice los pasos siguientes:

  1. Recupere el Amazon Resource Name (ARN) asociado a su certificado ACM mediante uno de los métodos descritos en la documentación de AWS.
  2. Copie los siguientes datos YAML en un archivo de su máquina cliente:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      namespace: <deploymentNamespace>
      name: arcgis-enterprise-ingress
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/target-type: ip
        alb.ingress.kubernetes.io/backend-protocol: HTTPS
        alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
        alb.ingress.kubernetes.io/healthcheck-port: '443'
        alb.ingress.kubernetes.io/healthcheck-protocol: HTTPS
        alb.ingress.kubernetes.io/healthcheck-path: /<context>/admin
        alb.ingress.kubernetes.io/success-codes: '200-399'
        alb.ingress.kubernetes.io/certificate-arn: <ACMCertificateARN>
    spec:
      ingressClassName: alb
      rules:
      - host: <deploymentFQDN>
        http:
          paths:
          - path: /<context>
            pathType: Prefix
            backend:
              service:
                name: arcgis-ingress-nginx
                port:
                  number: 443
    

    Para obtener más información sobre algunas de las anotaciones, consulte la sección Descripciones de las anotaciones.

  3. Sustituya los siguientes valores:
    • alb.ingress.kubernetes.io/certificate-arn: proporcione el Amazon Resource Name recuperado en el paso 1.
    • namespace: proporcione el espacio de nombres en el que ha implementado ArcGIS Enterprise on Kubernetes.
    • deploymentFQDN: proporcione el nombre de dominio completamente cualificado que se especificó durante la implementación inicial.
    • context: proporcione el contexto que se especificó durante la implementación.
      Nota:

      Este valor aparece dos veces en los datos YAML y debe sustituirse en ambos casos. Asegúrese de actualizar el valor dentro de la anotación de alb.ingress.kubernetes.io/healthcheck-path.

  4. Guarde estos datos YAML en un archivo en su máquina cliente.

    Por ejemplo, ingress.yaml.

  5. Aplique los datos YAML a su clúster mediante el siguiente comando:
    kubectl apply -f ingress.yaml
    

Una vez completado este flujo de trabajo, se crea un objeto Ingress llamado arcgis-enterprise-ingress. Si es la primera vez que utiliza un controlador de entrada para administrar el acceso externo a su clúster de EKS, debería ver un equilibrador de carga de aplicaciones que se encuentra en estado de aprovisionamiento dentro de la cuenta de AWS en la que está trabajando actualmente. AWS Load Balancer Controller aprovisionará este equilibrador de carga de aplicaciones y los componentes auxiliares de acuerdo con los datos YAML que se aplicaron al espacio de nombres. Una vez que el equilibrador de carga ha entrado en el estado activo, su implementación de ArcGIS Enterprise debería ser accesible y puede crearse un registro CNAME DNS que dirija a los clientes desde el nombre de dominio completamente cualificado, especificado durante la implementación inicial al equilibrador de carga aprovisionado.

Nota:

Puede que sea necesario actualizar la implementación de arcgis-ingress-controller para establecer una conexión adecuada a través del Ingress recién creado. Si recibe un error al acceder a ArcGIS Enterprise Manager después de crear el Ingress, intente ejecutar lo siguiente:

kubectl rollout restart deployment/arcgis-ingress-controller -n <deploymentNamespace>

Descripciones de anotaciones

Para obtener más información sobre algunas de las anotaciones, consulte lo siguiente:

  • alb.ingress.kubernetes.io/scheme: internet-facing: esto creará un equilibrador de carga de aplicaciones accesible a través de Internet. Para exponer el equilibrador de carga de aplicaciones (ALB) únicamente desde dentro de su VPC, puede utilizar alternativamente la anotación alb.ingress.kubernetes.io/scheme: internal.
  • alb.ingress.kubernetes.io/target-type: ip: esta anotación permitirá equilibrar la carga del tráfico hacia las direcciones IP de los pods back-end directamente.