21.5. Création d'une instance de AWS Load Balancer Controller


Après avoir installé l'opérateur, vous pouvez créer une instance du contrôleur AWS Load Balancer.

21.5.1. Création d'une instance du contrôleur AWS Load Balancer à l'aide d'AWS Load Balancer Operator

Vous ne pouvez installer qu'une seule instance de aws-load-balancer-controller dans un cluster. Vous pouvez créer le contrôleur AWS Load Balancer en utilisant le CLI. L'opérateur AWS Load Balancer (ALB) ne réconcilie que la ressource portant le nom cluster.

Conditions préalables

  • Vous avez créé l'espace de noms echoserver.
  • Vous avez accès au CLI OpenShift (oc).

Procédure

  1. Créez un fichier YAML de la ressource aws-load-balancer-controller, par exemple sample-aws-lb.yaml, comme suit :

    apiVersion: networking.olm.openshift.io/v1
    kind: AWSLoadBalancerController 1
    metadata:
      name: cluster 2
    spec:
      subnetTagging: Auto 3
      additionalResourceTags: 4
      - key: example.org/security-scope
        value: staging
      ingressClass: cloud 5
      config:
        replicas: 2 6
      enabledAddons: 7
        - AWSWAFv2 8
    1
    Définit la ressource aws-load-balancer-controller.
    2
    Définit le nom de l'instance du contrôleur AWS Load Balancer. Ce nom d'instance est ajouté comme suffixe à toutes les ressources connexes.
    3
    Les options valides sont Auto et Manual. Lorsque la valeur est définie sur Auto, l'opérateur tente de déterminer les sous-réseaux qui appartiennent à la grappe et les marque de manière appropriée. L'opérateur ne peut pas déterminer le rôle correctement si les balises de sous-réseau interne ne sont pas présentes sur le sous-réseau interne. Si vous avez installé votre cluster sur une infrastructure fournie par l'utilisateur, vous pouvez marquer manuellement les sous-réseaux avec les balises de rôle appropriées et définir la stratégie de marquage des sous-réseaux sur Manual.
    4
    Définit les balises utilisées par le contrôleur lorsqu'il approvisionne les ressources AWS.
    5
    La valeur par défaut de ce champ est alb. L'opérateur fournit une ressource IngressClass portant le même nom si elle n'existe pas.
    6
    Spécifie le nombre de répliques du contrôleur.
    7
    Spécifie les modules complémentaires pour les équilibreurs de charge AWS, qui sont spécifiés par le biais d'annotations.
    8
    Active l'annotation alb.ingress.kubernetes.io/wafv2-acl-arn.
  2. Créez une ressource aws-load-balancer-controller en exécutant la commande suivante :

    $ oc create -f sample-aws-lb.yaml
  3. Une fois le contrôleur AWS Load Balancer lancé, créez une ressource deployment:

    apiVersion: apps/v1
    kind: Deployment 1
    metadata:
      name: <echoserver> 2
      namespace: echoserver
    spec:
      selector:
        matchLabels:
          app: echoserver
      replicas: 3 3
      template:
        metadata:
          labels:
            app: echoserver
        spec:
          containers:
            - image: openshift/origin-node
              command:
               - "/bin/socat"
              args:
                - TCP4-LISTEN:8080,reuseaddr,fork
                - EXEC:'/bin/bash -c \"printf \\\"HTTP/1.0 200 OK\r\n\r\n\\\"; sed -e \\\"/^\r/q\\\"\"'
              imagePullPolicy: Always
              name: echoserver
              ports:
                - containerPort: 8080
    1
    Définit la ressource de déploiement.
    2
    Spécifie le nom du déploiement.
    3
    Spécifie le nombre de répliques du déploiement.
  4. Créer une ressource service:

    apiVersion: v1
    kind: Service 1
    metadata:
      name: <echoserver> 2
      namespace: echoserver
    spec:
      ports:
        - port: 80
          targetPort: 8080
          protocol: TCP
      type: NodePort
      selector:
        app: echoserver
    1
    Définit la ressource de service.
    2
    Spécifie le nom du service.
  5. Déployer une ressource Ingress soutenue par l'ALB :

    apiVersion: networking.k8s.io/v1
    kind: Ingress 1
    metadata:
      name: <echoserver> 2
      namespace: echoserver
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/target-type: instance
    spec:
      ingressClassName: alb
      rules:
        - http:
            paths:
              - path: /
                pathType: Exact
                backend:
                  service:
                    name: <echoserver> 3
                    port:
                      number: 80
    1
    Définit la ressource d'entrée.
    2
    Spécifie le nom de la ressource d'entrée.
    3
    Spécifie le nom de la ressource de service.

Vérification

  • Vérifiez l'état de la ressource Ingress pour afficher l'hôte de l'équilibreur de charge AWS (ALB) provisionné en exécutant la commande suivante :

    $ HOST=$(oc get ingress -n echoserver echoserver --template='{{(index .status.loadBalancer.ingress 0).hostname}}')
  • Vérifiez l'état de l'hôte AWS Load Balancer (ALB) provisionné en exécutant la commande suivante :

    $ curl $HOST
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.