Utiliser un équilibrage de la charge des applications sur Amazon Elastic Kubernetes Service

Un contrôleur Ingress au niveau du cluster permet de router le trafic vers un déploiement ArcGIS Enterprise sur Amazon Elastic Kubernetes Service (EKS). Pour plus d’informations, reportez-vous à la rubrique Contrôleurs Ingress au niveau du cluster.

Remarque :

Ce processus doit être exécuté avant de configurer une organisation ArcGIS Enterprise. ArcGIS Enterprise Manager est accessible à partir d’un navigateur une fois qu’un équilibreur de charge a été déployé et configuré.

Conditions requises

Examinez les conditions requises et assurez-vous que les conditions préalables propres à EKS suivantes sont remplies :

  • Vous devez avoir préparé un cluster Kubernetes dans Amazon EKS, y compris le déploiement d’un contrôleur d’équilibrage de la charge AWS.
  • L’interface de ligne de commande AWS doit être installée sur votre machine cliente. Vérifiez que vous pouvez vous authentifier à partir de l’interface de ligne de commande sur le compte dans lequel se trouve le cluster EKS.
  • Kubectl doit être installé sur votre machine cliente. Vérifiez que vous pouvez vous connecter au serveur d’API Kubernetes qui est associé au cluster que vous avez créé et émettre des commandes.
  • Votre cluster EKS, votre VPC et les ressources associées répondent aux conditions requises stipulées dans Répartition de la charge des applications sur Amazon EKS.
  • Vous devez avoir un certificat TLS. Vous pouvez utiliser Amazon Certificate Manager (ACM) pour créer ou importer ce certificat.

Implémenter un contrôleur Ingress au niveau du cluster

Pour implémenter un contrôleur Ingress au niveau du cluster et router le trafic vers un déploiement ArcGIS Enterprise sur Amazon EKS, procédez comme suit :

  1. Récupérez le nom ARN (Access Resource Name) qui est associé à votre certificat ACM à l’aide d’une des méthodes indiquées dans la documentation AWS.
  2. Copiez les données YAML suivantes dans un fichier sur votre machine 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
    

    Pour plus d’informations sur certaines des annotations, consultez la section Description des annotations ci-dessous.

  3. Remplacez les valeurs suivantes :
    • alb.ingress.kubernetes.io/certificate-arn : fournissez le nom ARN (Amazon Resource Name) récupéré à l’étape 1.
    • namespace : fournissez l’espace de noms dans lequel vous avez déployé ArcGIS Enterprise on Kubernetes.
    • deploymentFQDN : fournissez le nom de domaine complet qui a été spécifié au cours du déploiement initial.
    • context : fournissez le contexte qui a été spécifié au cours du déploiement.
      Remarque :

      Cette valeur apparaît deux fois dans les données YAML et doit être remplacée dans les deux instances. Veillez à mettre à jour la valeur dans l’annotation alb.ingress.kubernetes.io/healthcheck-path.

  4. Enregistrez les données YAML dans un fichier sur votre machine cliente.

    Par exemple, ingress.yaml.

  5. Appliquez les données YAML à votre cluster à l’aide de la commande suivante :
    kubectl apply -f ingress.yaml
    

Une fois ce processus terminé, un objet Ingress (entrée réseau) nommé arcgis-enterprise-ingress est créé. Si c’est la première fois que vous utilisez un contrôleur Ingress pour gérer l’accès externe à votre cluster EKS, un équilibreur de charge Application Load Balancer devrait apparaître en état de provisionnement dans le compte AWS que vous utilisez actuellement. Le contrôleur de l’équilibreur de charge AWS provisionnera cet équilibreur de charge Application Load Balancer et les composants auxiliaires en fonction des données YAML qui ont été appliquées à l’espace de noms. Une fois l’équilibreur de charge en état actif, le déploiement de ArcGIS Enterprise doit être accessible, et un enregistrement DNS CNAME peut être créé qui dirige les clients à partir du nom de domaine complet qui a été spécifié au cours du déploiement initial vers l’équilibreur de charge provisionné.

Remarque :

Le déploiement arcgis-ingress-controller devra peut-être être actualisé pour établir une connexion adéquate via l’objet Ingress récemment créé. Si vous recevez une erreur lors de l’accès à ArcGIS Enterprise Manager après la création de l’objet Ingress, essayez d’exécuter ce qui suit :

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

Description des annotations

Pour plus d’informations sur certaines des annotations, consultez les rubriques suivantes :

  • alb.ingress.kubernetes.io/scheme: internet-facing : crée un équilibreur de charge Application Load Balancer qui est accessible par Internet. Pour exposer l’équilibreur de charge des applications uniquement depuis votre VPC, vous pouvez également utiliser l’annotation alb.ingress.kubernetes.io/scheme: internal.
  • alb.ingress.kubernetes.io/target-type: ip : cette annotation permet d’équilibrer la charge du trafic directement vers les adresses IP des pods back-end.