21.6. Création de plusieurs entrées
Vous pouvez acheminer le trafic vers différents services faisant partie d'un même domaine par le biais d'un seul équilibreur de charge AWS (ALB). Chaque ressource d'entrée fournit différents points d'extrémité du domaine.
21.6.1. Création de plusieurs entrées via un seul équilibreur de charge AWS
Vous pouvez acheminer le trafic vers plusieurs entrées via un seul équilibreur de charge AWS (ALB) à l'aide de la CLI.
Conditions préalables
-
Vous avez un accès au CLI OpenShift (
oc
).
Procédure
Créez un fichier YAML de la ressource
IngressClassParams
, par exemplesample-single-lb-params.yaml
, comme suit :apiVersion: elbv2.k8s.aws/v1beta1 kind: IngressClassParams metadata: name: <single-lb-params> spec: group: name: single-lb
apiVersion: elbv2.k8s.aws/v1beta1
1 kind: IngressClassParams metadata: name: <single-lb-params>
2 spec: group: name: single-lb
3 Copy to Clipboard Copied! Créez une ressource
IngressClassParams
en exécutant la commande suivante :oc create -f sample-single-lb-params.yaml
$ oc create -f sample-single-lb-params.yaml
Copy to Clipboard Copied! Créez un fichier YAML de la ressource
IngressClass
, par exemplesample-single-lb.yaml
, comme suit :apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: <single-lb> spec: controller: ingress.k8s.aws/alb parameters: apiGroup: elbv2.k8s.aws kind: IngressClassParams name: single-lb
apiVersion: networking.k8s.io/v1
1 kind: IngressClass metadata: name: <single-lb>
2 spec: controller: ingress.k8s.aws/alb
3 parameters: apiGroup: elbv2.k8s.aws
4 kind: IngressClassParams
5 name: single-lb
6 Copy to Clipboard Copied! - 1
- Définit le groupe API et la version de la ressource
IngressClass
. - 2
- Spécifie le nom du site
IngressClass
. - 3
- Définit le nom du contrôleur, commun à tous les
IngressClasses
. Le siteaws-load-balancer-controller
réconcilie le contrôleur. - 4
- Définit le groupe API de la ressource
IngressClassParams
. - 5
- Définit le type de ressource de la ressource
IngressClassParams
. - 6
- Définit le nom de la ressource
IngressClassParams
.
Créez une ressource
IngressClass
en exécutant la commande suivante :oc create -f sample-single-lb.yaml
$ oc create -f sample-single-lb.yaml
Copy to Clipboard Copied! Créez un fichier YAML de la ressource
Ingress
, par exemplesample-multiple-ingress.yaml
, comme suit :apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: <example-1> annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "1" spec: ingressClass: alb rules: - host: example.com http: paths: - path: /blog backend: service: name: <example-1> port: number: 80 kind: Ingress metadata: name: <example-2> annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "2" spec: ingressClass: alb rules: - host: example.com http: paths: - path: /store backend: service: name: <example-2> port: number: 80 kind: Ingress metadata: name: <example-3> annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "3" spec: ingressClass: alb rules: - host: example.com http: paths: - path: / backend: service: name: <example-3> port: number: 80
apiVersion: networking.k8s.io/v1
1 kind: Ingress metadata: name: <example-1>
2 annotations: alb.ingress.kubernetes.io/scheme: internet-facing
3 alb.ingress.kubernetes.io/group.order: "1"
4 spec: ingressClass: alb
5 rules: - host: example.com
6 http: paths: - path: /blog
7 backend: service: name: <example-1>
8 port: number: 80
9 kind: Ingress metadata: name: <example-2> annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "2" spec: ingressClass: alb rules: - host: example.com http: paths: - path: /store backend: service: name: <example-2> port: number: 80 kind: Ingress metadata: name: <example-3> annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/group.order: "3" spec: ingressClass: alb rules: - host: example.com http: paths: - path: / backend: service: name: <example-3> port: number: 80
Copy to Clipboard Copied! - 1 2
- Spécifie le nom d'une entrée.
- 3
- Indique que l'équilibreur de charge doit être placé dans le sous-réseau public et le rend accessible sur l'internet.
- 4
- Spécifie l'ordre dans lequel les règles des entrées sont appliquées lorsque la demande est reçue par l'équilibreur de charge.
- 5
- Spécifie la classe d'entrée qui appartient à cette entrée.
- 6
- Définit le nom d'un domaine utilisé pour l'acheminement des demandes.
- 7
- Définit le chemin qui doit mener au service.
- 8
- Définit le nom du service qui dessert le point de terminaison configuré dans l'entrée.
- 9
- Définit le port du service qui dessert le point d'extrémité.
Créez les ressources
Ingress
en exécutant la commande suivante :oc create -f sample-multiple-ingress.yaml
$ oc create -f sample-multiple-ingress.yaml
Copy to Clipboard Copied!