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 crear 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:
- Recupere el Amazon Resource Name (ARN) asociado a su certificado ACM mediante uno de los métodos descritos en la documentación de AWS.
- Abra la plantilla incluida en la carpeta layer-7-templates o copie el siguiente ejemplo en un archivo de su equipo 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> alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=600 #alb.ingress.kubernetes.io/inbound-cidrs: <inboundCIDRRange> #alb.ingress.kubernetes.io/security-groups: <securityGroupID1>,<securityGroupID2> labels: id: custom-ingress-resource 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.
- Sustituya los siguientes valores:
- alb.ingress.kubernetes.io/certificate-arn: proporcione el Amazon Resource Name recuperado en el paso 1.
- alb.ingress.kubernetes.io/inbound-cidrs: si desea permitir el tráfico entrante desde rangos de direcciones IP CIDR específicos, descomente esta línea y proporcione el rango. Si se especifican grupos de seguridad en la anotación alb.ingress.kubernetes.io/security-groups, esta anotación se ignora.
- alb.ingress.kubernetes.io/security-groups: si desea adjuntar grupos de seguridad existentes al Application Load Balancer, descomente esta línea y proporcione los Id. de grupo de seguridad.
- 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 y debe sustituirse en ambos casos. Asegúrese de actualizar el valor dentro de la anotación de alb.ingress.kubernetes.io/healthcheck-path.
- Guarde el archivo en su estación de trabajo cliente.
Por ejemplo, ingress.yaml.
- Cree el objeto Ingress realizando una de las siguientes acciones:
- Aplique los datos YAML de Ingress a su clúster utilizando el siguiente comando:
kubectl apply -f ingress.yaml
- Al ejecutar el script de implementación de forma silenciosa, defina CLUSTER_INGRESS_CONTROLLER_YAML_FILENAME en la ubicación del archivo YAML de Ingress.
- Aplique los datos YAML de Ingress a su clúster utilizando el siguiente comando:
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.