Controladores de entrada a nivel de clúster

Las organizaciones pueden tener requisitos específicos para la gestión del tráfico de clientes que se enruta a una implementación de ArcGIS Enterprise on Kubernetes. Estos requisitos pueden hacer necesario el uso de funciones avanzadas ofrecidas por soluciones de equilibrio de carga específicas del proveedor que operan en la capa 7 (L7) del modelo OSI, como funciones de firewall de aplicaciones web, enrutamiento basado en rutas y hosts, u otro comportamiento de enrutamiento determinista basado en las cabeceras de las solicitudes de los clientes.

Como administrador, puede utilizar un controlador de entrada a nivel de clúster para enrutar el tráfico de entrada a su implementación de ArcGIS Enterprise on Kubernetes. Estos controladores de entrada a nivel de clúster permiten que las organizaciones aprovechen estas entidades. Los controladores de entrada traducen los objetos de Kubernetes Ingress a reglas de enrutamiento funcionales en las respectivas implementaciones del equilibrador de carga L7. La especificación dentro de un objeto Ingress contiene un conjunto de reglas de enrutamiento a uno o más objetos de servicio backend dentro de un espacio de nombres de Kubernetes.

Estos objetos Ingress se actualizan en última instancia a través de equilibradores de carga con la capa 7 habilitada en proveedores de la nube administrada como Amazon Elastic Kubernetes Service (EKS), Microsoft Azure Kubernetes Service (AKS) y Google Kubernetes Engine. La creación de objetos Ingress con anotaciones específicas y nombres ingressClass puede desencadenar el aprovisionamiento y la configuración de los equilibradores de carga, incluidos los agentes de escucha del front-end y back-end y la configuración del grupo objetivo. Estos controladores de entrada a nivel de clúster administran el enrutamiento del tráfico desde el borde de un clúster hasta los servicios expuestos internamente.

Para obtener más información sobre cómo se puede utilizar un controlador de entrada a nivel de clúster para enrutar el tráfico a una implementación de ArcGIS Enterprise, consulte lo siguiente:

Para cada plataforma de implementación, se proporcionan datos YAML que permitirán la implementación y configuración iniciales de los equilibradores de carga de capa 7 mediante la creación de objetos de Kubernetes Ingress. Puede agregar más configuración a estos objetos Ingress para adaptarse a los objetivos de la organización, como la aplicación de anotaciones adicionales de objetos Ingress. También se pueden realizar anotaciones al servicio de controlador de entrada NGINX existente en el clúster cuando sea necesario, y se proporcionan instrucciones sobre cómo realizar estas anotaciones.

Nota:

Algunos proveedores pueden requerir que se actualice la implementación de arcgis-ingress-controller para realizar 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>

Requisitos previos

Al realizar la implementación de ArcGIS Enterprise on Kubernetes inicialmente, debe indicar que desea utilizar un controlador de entrada a nivel de clúster para enrutar el tráfico a su implementación. La forma de hacerlo dependerá del modo en que ejecute la secuencia de comandos de implementación:

  • Si ejecuta la secuencia de comandos en modo automático, tendrá que configurar INGRESS_SERVICE_USE_CLUSTER_IP=true en su archivo deploy.properties. Esta propiedad anulará cualquier valor que se establezca para el parámetro INGRESS_TYPE.
  • Si ejecuta la secuencia de comandos en modo interactivo, tendrá que responder no cuando se le pregunte si desea aprovisionar un equilibrador de la nube y, a continuación, yes cuando se le pregunte si va a utilizar un controlador de entrada a nivel de clúster para enrutar el tráfico a su implementación. Esto permitirá que se cree el servicio de controlador de entrada NGINX en el clúster, que permite el enrutamiento adecuado del tráfico del cliente a los extremos de ArcGIS Enterprise solicitados, como tipo ClusterIP.

El equilibrador de carga de capa 7 servirá como punto de acceso para el tráfico del cliente a los servicios dentro del clúster. En ArcGIS Enterprise on Kubernetes, el controlador de entrada a nivel de clúster debe configurarse para pasar tráfico al controlador de entrada integrado implementado como parte de la aplicación.

Nota:

Antes de ArcGIS Enterprise 11.2, la capacidad de crear un servicio de controlador de entrada en el clúster como tipo ClusterIP se proporcionó mediante la opción de especificar si se utilizaría una ruta OpenShift para enrutar el tráfico a la implementación. Esta pregunta se ha modificado en la secuencia de comandos de implementación para preguntar si se utilizará un controlador de entrada a nivel de clúster para enrutar el tráfico a la implementación. Si esta opción está establecida en true, el servicio del controlador de entrada se creará como tipo ClusterIP independientemente de si el INGRESS_TYPE para la implementación se ha establecido en NodePort o LoadBalancer.

Requisitos de entrada generales

Puede utilizar un controlador de entrada en una plataforma que no se haya especificado en este documento. Para ello, también se aplican los requisitos previos generales descritos anteriormente. Además, tenga en cuenta:

  • Asegúrese de que el servicio arcgis-ingress-nginx en el clúster se utiliza como objetivo back-end al que se enrutará el tráfico del cliente cuando configure el objeto Ingress para enrutar el tráfico a una implementación de ArcGIS Enterprise on Kubernetes.
  • Asegúrese de que se utiliza el protocolo TLS al pasar el tráfico desde el equilibrador de carga administrado por el controlador de entrada al controlador de entrada NGINX back-end en el clúster.

A continuación se muestra un ejemplo generalizado de un YAML de entrada que no es específico de un proveedor y contiene los valores necesarios para enrutar el tráfico a una implementación de ArcGIS Enterprise on Kubernetes:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: arcgis-enterprise-ingress
  namespace: <deploymentNamespace>
  annotations:

spec:
  tls:
    - hosts:
        - <deploymentFQDN>
      secretName: <tlsSecretName>
  rules:
    - host: <deploymentFQDN>
      http:
        paths:
          - backend:
             service:
               name: arcgis-ingress-nginx
               port:
                 number: 443
            path: /<context>
            pathType: Prefix
Nota:

El ejemplo anterior asume que se ha creado un secreto TLS que contiene información de certificado dentro del espacio de nombres de implementación y que se utilizará para configurar un certificado TLS con el controlador de entrada. Algunos proveedores permiten especificar esta información mediante una anotación, que también puede utilizarse.