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 Copier lienLien copié sur presse-papiers!
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
Créez un fichier YAML de la ressource
aws-load-balancer-controller, par exemplesample-aws-lb.yaml, comme suit :apiVersion: networking.olm.openshift.io/v1 kind: AWSLoadBalancerController1 metadata: name: cluster2 spec: subnetTagging: Auto3 additionalResourceTags:4 - key: example.org/security-scope value: staging ingressClass: cloud5 config: replicas: 26 enabledAddons:7 - AWSWAFv28 - 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
AutoetManual. Lorsque la valeur est définie surAuto, 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 surManual. - 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 ressourceIngressClassportant 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.
Créez une ressource
aws-load-balancer-controlleren exécutant la commande suivante :$ oc create -f sample-aws-lb.yamlUne fois le contrôleur AWS Load Balancer lancé, créez une ressource
deployment:apiVersion: apps/v1 kind: Deployment1 metadata: name: <echoserver>2 namespace: echoserver spec: selector: matchLabels: app: echoserver replicas: 33 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: 8080Créer une ressource
service:apiVersion: v1 kind: Service1 metadata: name: <echoserver>2 namespace: echoserver spec: ports: - port: 80 targetPort: 8080 protocol: TCP type: NodePort selector: app: echoserverDéployer une ressource
Ingresssoutenue par l'ALB :apiVersion: networking.k8s.io/v1 kind: Ingress1 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
Vérification
Vérifiez l'état de la ressource
Ingresspour 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