Créez, configurez et réutilisez des instances ALB et des écouteurs via les CRD AlbConfig, avec prise en charge d'IPv6, des journaux d'accès Simple Log Service (SLS), des politiques TLS et des listes de contrôle d'accès réseau.
Prérequis
Le contrôleur d'entrée ALB est installé dans votre cluster.
Deux vSwitches situés dans des zones différentes prises en charge par ALB ont été créés dans le même VPC que votre cluster ACK.
Pour utiliser l'entrée ALB avec un cluster dédié ACK, accordez au cluster les autorisations requises au préalable.
Notes d'utilisation
Pour modifier les configurations des ressources, utilisez
kubectl edit. Si vous utilisezkubectl apply, exécutez d'abordkubectl diffpour prévisualiser les modifications avant de les appliquer.Si votre cluster utilise le plug-in réseau Flannel, les services backend de l'entrée ALB doivent être de type NodePort ou LoadBalancer.
Les instances ALB créées par AlbConfig sont des ressources gérées contrôlées par le contrôleur d'entrée ALB. Ne modifiez pas ces instances directement dans la console ALB (par exemple, ne changez pas les tags, les listes de contrôle d'accès, les journaux d'accès ou les paramètres de délai d'expiration dans la console). Les modifications effectuées dans la console sont écrasées par la boucle de réconciliation du contrôleur ou peuvent provoquer des erreurs. Pour mettre à jour la configuration d'une instance ALB gérée, modifiez la ressource AlbConfig dans votre cluster. Le contrôleur synchronise automatiquement les modifications avec l'instance ALB.
Paramètres clés en un coup d'œil
Paramètres AlbConfig couramment utilisés :
|
Parameter |
Type |
Default |
Creation-only |
Description |
|
|
string |
— |
No |
Nom de l'instance ALB |
|
|
string |
|
No |
Définit le mode IP de l'instance ALB. Valeurs valides : |
|
|
string |
|
Yes |
|
|
|
string |
— |
Yes |
Définissez sur |
|
|
array |
— |
Yes |
ID de vSwitch (au moins deux, dans des zones différentes) |
|
|
string |
|
No |
Édition de l'instance ALB |
|
|
string |
— |
No |
ID d'une instance ALB existante à réutiliser |
|
|
boolean |
|
No |
Indique s'il faut écraser les attributs d'une instance ALB réutilisée |
|
|
boolean |
|
No |
Indique s'il faut écraser les attributs des écouteurs d'une instance réutilisée |
|
|
string |
— |
No |
Projet de journal SLS |
|
|
string |
— |
No |
Logstore SLS (doit commencer par |
|
|
string |
— |
No |
ID de l'instance Internet Shared Bandwidth |
|
|
integer |
— |
No |
Port de l'écouteur |
|
|
string |
— |
No |
|
|
|
integer |
|
No |
Délai d'expiration de la requête en secondes (1–600) |
|
|
boolean |
|
No |
Activer la compression Gzip/Brotli |
Configurations des instances ALB
Créer un AlbConfig
Chaque AlbConfig configure une instance ALB. Pour utiliser plusieurs instances ALB, créez un AlbConfig par instance.
Lorsque vous installez le contrôleur d'entrée ALB et sélectionnez Create ou Select Existing pour Gateway Source, le contrôleur crée automatiquement un AlbConfig nommé alb et une IngressClass nommée alb.
-
Créez
alb.yamlavec le contenu suivant :Parameter
Description
spec.config.nameLe nom de l'instance ALB. Il doit être unique au sein du cluster.
spec.config.addressTypeInternet(par défaut) : adresse IP publique.Intranet: interne au VPC uniquement. Uniquement lors de la création ; impossible à modifier ultérieurement.spec.config.zoneMappingsAu moins deux vSwitches dans des zones prises en charge par ALB différentes, dans le même VPC que le cluster. Uniquement lors de la création ; impossible à modifier ultérieurement. Les régions à zone unique permettent un seul vSwitch.
spec.config.zoneMappings[].allocationId(Facultatif) ID EIP à associer à l'instance ALB. Si omis, une EIP BGP (multi-ISP) à la demande est créée automatiquement. Seules les EIP à la demande (paiement par transfert de données) qui ne font pas partie d'une instance Internet Shared Bandwidth sont prises en charge. Les EIP pour différentes zones doivent être du même type.
apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb spec: config: name: alb addressType: Internet zoneMappings: - vSwitchId: vsw-uf6ccg2a9g71hx8go**** # Replace with your vSwitch ID. allocationId: eip-asdfas**** # Replace with your EIP ID. If omitted, an EIP is assigned automatically. - vSwitchId: vsw-uf6nun9tql5t8nh15**** allocationId: eip-dpfmss**** listeners: - port: 80 protocol: HTTPParamètres AlbConfig par défaut (sauf
vSwitchId) :apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb spec: config: accessLogConfig: logProject: "" logStore: "" addressAllocatedMode: Dynamic addressType: Internet billingConfig: internetBandwidth: 0 internetChargeType: "" payType: PostPay deletionProtectionEnabled: true edition: Standard forceOverride: false zoneMappings: - vSwitchId: #... - vSwitchId: #... status: loadBalancer: dnsname: alb-s2em8fr9debkg5****.cn-shenzhen.alb.aliyuncs.com id: alb-s2em8fr9debkg5**** -
Appliquez la configuration :
kubectl apply -f alb.yamlSortie attendue :
AlbConfig.alibabacloud.com/alb created -
Vérifiez l'AlbConfig :
PORT&PROTOCOLetCERTIDsont vides jusqu'à ce que vous configuriez les écouteurs HTTPS et les certificats.kubectl get AlbConfigSortie attendue :
NAME ALBID DNSNAME PORT&PROTOCOL CERTID AGE alb alb-****** alb-******.<regionID>.alb.aliyuncs.com 28m
Mettre à jour un AlbConfig
-
Listez vos AlbConfigs :
kubectl get AlbConfig -
Modifiez l'AlbConfig :
kubectl edit albconfig <ALBCONFIG_NAME>Par exemple, pour renommer l'instance ALB en
new_alb:spec: config: name: new_alb
Supprimer un AlbConfig
Si une instance ALB a été créée avec un AlbConfig, la suppression de l'AlbConfig entraîne la suppression de l'instance ALB.
Supprimez toutes les entrées associées à l'AlbConfig avant de le supprimer.
kubectl delete AlbConfig <AlbConfig_NAME>
Associer une instance Internet Shared Bandwidth
Pour associer une instance Internet Shared Bandwidth à l'instance ALB, définissez billingConfig.bandWidthPackageId :
Cela s'applique uniquement aux instances ALB orientées vers Internet. Pour acheter une instance Internet Shared Bandwidth, consultez Créer une instance Internet Shared Bandwidth .
spec:
config:
name: alb
addressType: Internet
edition: Standard
zoneMappings:
- vSwitchId: vsw-2vcqeyvwsnd***
- vSwitchId: vsw-2vcbhjlqu7y***
billingConfig:
bandWidthPackageId: cbwp-2vcjucp49otd8qolhm***
Créer et utiliser plusieurs instances ALB
Pour utiliser plusieurs instances ALB, créez un AlbConfig et une IngressClass distincts pour chaque instance.
-
Créez
alb-2.yaml:apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-2 spec: config: name: alb-2 addressType: Internet zoneMappings: - vSwitchId: vsw-uf6ccg2a9g71hx8go**** - vSwitchId: vsw-uf6nun9tql5t8nh15**** -
Appliquez-le :
kubectl apply -f alb-2.yaml -
Créez
ingress_class2.yaml:Clusters v1.19 and later
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb-2 spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-2Clusters earlier than v1.19
apiVersion: networking.k8s.io/v1beta1 kind: IngressClass metadata: name: alb-2 spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-2 -
Appliquez-le :
kubectl apply -f ingress_class2.yaml -
Créez
ingress2.yaml. DéfinissezingressClassNamesur l'IngressClass de l'instance ALB cible :Clusters v1.19 and later
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cafe-ingress2 spec: ingressClassName: alb-2 rules: - http: paths: - path: /tea pathType: ImplementationSpecific backend: service: name: tea-svc port: number: 80 - path: /coffee pathType: ImplementationSpecific backend: service: name: coffee-svc port: number: 80Clusters earlier than v1.19
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: cafe-ingress2 spec: ingressClassName: alb-2 rules: - http: paths: - path: /tea backend: serviceName: tea-svc servicePort: 80 - path: /coffee backend: serviceName: coffee-svc servicePort: 80 -
Appliquez-le :
kubectl apply -f ingress2.yaml
Associer un AlbConfig à une entrée à l'aide d'IngressClass
Utilisez une IngressClass pour lier un AlbConfig à une entrée ALB.
Créer une IngressClass
Créez ingress_class.yaml :
Clusters v1.19 and later
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: alb
spec:
controller: ingress.k8s.alibabacloud/alb
parameters:
apiGroup: alibabacloud.com
kind: AlbConfig
name: alb
Clusters earlier than v1.19
apiVersion: networking.k8s.io/v1beta1
kind: IngressClass
metadata:
name: alb
spec:
controller: ingress.k8s.alibabacloud/alb
parameters:
apiGroup: alibabacloud.com
kind: AlbConfig
name: alb
Appliquez-le :
kubectl apply -f ingress_class.yaml
Sortie attendue :
ingressclass.networking.k8s.io/alb created
Créer une entrée qui référence l'IngressClass
Créez ingress.yaml et définissez ingressClassName sur le nom de l'IngressClass :
Clusters v1.19 and later
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: cafe-ingress
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /tea
pathType: ImplementationSpecific
backend:
service:
name: tea-svc
port:
number: 80
- path: /coffee
pathType: ImplementationSpecific
backend:
service:
name: coffee-svc
port:
number: 80
Clusters earlier than v1.19
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: cafe-ingress
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /tea
backend:
serviceName: tea-svc
servicePort: 80
- path: /coffee
backend:
serviceName: coffee-svc
servicePort: 80
Appliquez-le :
kubectl apply -f ingress.yaml
Sortie attendue :
ingress.networking.k8s.io/cafe-ingress created
Gestion des instances ALB réutilisées
Réutiliser une instance ALB existante
Définissez spec.config.id pour réutiliser une instance ALB existante. Les instances Standard et activées pour WAF depuis la console ALB sont prises en charge ; les instances Basic ne peuvent pas être réutilisées. Une instance ALB ne peut être réutilisée que par un seul cluster, et par un seul AlbConfig au sein de ce cluster.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: reuse-alb
spec:
config:
id: ****
forceOverride: false
listenerForceOverride: false
Interaction entre id, forceOverride et listenerForceOverride :
|
id |
forceOverride |
listenerForceOverride |
Result |
|
Not set |
— |
— |
L'instance ALB n'est pas réutilisée. |
|
Set |
|
— |
Les attributs de l'instance ALB et des écouteurs sont écrasés. |
|
Set |
|
|
Lorsque listenerForceOverride est défini sur false, le contrôleur d'entrée ALB gère uniquement les écouteurs créés automatiquement par AlbConfig (nommés ingress-auto-listener-{port}). Les écouteurs créés manuellement ne sont pas gérés par AlbConfig. |
|
Set |
|
|
Les attributs de l'instance ALB ne sont pas écrasés. Le contrôleur gère tous les écouteurs. L'existence et la configuration des écouteurs sont déterminées par AlbConfig. |
Ne renommez pas les écouteurs sur une instance ALB réutilisée. Les écouteurs nommés ingress-auto-listener-{port} sont gérés par ACK ; les écouteurs portant d'autres noms sont gérés dans la console ALB.
Supprimer l'AlbConfig d'une instance ALB réutilisée
La suppression de l'AlbConfig d'une instance ALB réutilisée n'entraîne pas la suppression de l'instance ALB elle-même.
Pour ALB Ingress Controller version 2.10.0-aliyun.1 ou antérieure : exécutez
kubectl editafin de supprimer toutes les entrées despec.listeners, ce qui supprime les écouteurs configurés via l'AlbConfig. Pour les versions postérieures à 2.10.0-aliyun.1, ignorez cette étape.-
Supprimez tous les Ingresses associés à l'AlbConfig, puis supprimez l'AlbConfig :
kubectl delete AlbConfig <AlbConfig_NAME>
Configurations avancées
Activer SLS pour collecter les journaux d'accès
Définissez logProject et logStore dans spec.config.accessLogConfig :
spec:
config:
accessLogConfig:
logProject: "k8s-log-xz92lvykqj1siwvif****"
logStore: "alb_****"
La valeur delogStoredoit commencer paralb_. Si le Logstore spécifié n'existe pas, un nouveau est créé automatiquement.
Retrouvez le projet de journalisation dans la console ACK, sous Cluster Information > Basic Information .
Pour activer SLS sur une instance ALB réutilisée , définissez forceOverride: true .
Une fois l'activation effectuée, cliquez sur le nom du projet situé à côté de Log Service Project dans la section Basic Information pour consulter les journaux dans SLS.
Activer IPv6
Définissez addressIpVersion: DualStack pour activer la double pile IPv4/IPv6 :
Le paramètre addressIpVersion prend effet uniquement lors de la création et ne peut pas être modifié ultérieurement.
spec:
config:
addressIpVersion: DualStack
Configurations des écouteurs
Créer des écouteurs
Définissez port et protocol dans spec.listeners pour déterminer la manière dont ALB reçoit le trafic. Les protocoles pris en charge sont HTTP, HTTPS et Quick UDP Internet Connections (QUIC).
La modification du port, du protocol ou d'autres attributs d'un écouteur entraîne la suppression de l'écouteur existant et la création d'un nouvel écouteur. Pour configurer plusieurs écouteurs avec des protocoles différents, ajoutez les annotations requises à votre Ingress.
Écouteur HTTP
spec:
listeners:
- port: 80
protocol: HTTP
HTTP prend nativement en charge WebSocket. Aucune configuration supplémentaire n'est requise.
Écouteur HTTPS
spec:
listeners:
- port: 443
protocol: HTTPS
Les écouteurs HTTPS nécessitent des certificats.
Écouteur QUIC
spec:
listeners:
- port: 443
protocol: QUIC
Les écouteurs QUIC reçoivent des requêtes HTTP/3 provenant des clients.
Spécifier un certificat
Pour ajouter un certificat à un écouteur HTTPS, exécutez kubectl edit albconfig <Albconfig_Name> et définissez le champ certificates :
spec:
listeners:
- caEnabled: false
certificates:
- CertificateId: 756****-cn-hangzhou
IsDefault: true
port: 443
protocol: HTTPS
Si aucun certificat par défaut n'est spécifié, ALB Ingress utilise le premier certificat comme certificat par défaut.
Si aucun certificat n'est spécifié, la création de l'écouteur est différée jusqu'à l'association d'un Ingress ; un certificat est alors découvert automatiquement en fonction du nom de domaine.
Consultez la rubrique Configurer des certificats HTTPS pour une communication chiffrée.
Supprimer un écouteur
Exécutez kubectl edit albconfig <Albconfig_Name> et supprimez l'entrée de l'écouteur dans spec.listeners.
Dissociez tous les Ingresses de l'écouteur avant de le supprimer. Sinon, la suppression échoue et génère des erreurs.
Par exemple, pour supprimer l'écouteur sur le port 8002 :
# Before
listeners:
- port: 8001
protocol: HTTP
- port: 8002
protocol: HTTP
# After
listeners:
- port: 8001
protocol: HTTP
Fonctionnement des mises à jour des écouteurs
Le tableau listeners est réconcilié en comparant la nouvelle configuration avec l'état actif et l'annotation last-applied-configuration :
|
Dans la nouvelle configuration |
Dans la configuration active |
Dans last-applied-configuration |
Résultat |
|
Oui |
Oui |
— |
L'écouteur est conservé. |
|
Oui |
Non |
— |
L'écouteur est ajouté. |
|
Non |
— |
Oui |
L'écouteur est supprimé. Les champs peuvent être réinitialisés aux valeurs par défaut. |
|
Non |
Oui |
Non |
L'écouteur est supprimé. |
Exemple :
Compte tenu de ces trois états :
# New configuration
listeners:
- port: 8001
protocol: HTTP
- port: 8003
protocol: HTTP
- port: 8005 # New
protocol: HTTP
# Live configuration
listeners:
- port: 8001
protocol: HTTP
- port: 8002
protocol: HTTP
- port: 8003
protocol: HTTP
- port: 8004
protocol: HTTP
# last-applied-configuration
listeners:
- port: 8001
protocol: HTTP
- port: 8002
protocol: HTTP
- port: 8003
protocol: HTTP
Après application de la nouvelle configuration :
listeners:
- port: 8001 # Retained (in new config and live config)
protocol: HTTP
- port: 8003 # Retained (in new config and live config)
protocol: HTTP
- port: 8005 # Added (in new config, not in live config)
protocol: HTTP
# Port 8002: deleted (not in new config, in last-applied-configuration)
# Port 8004: deleted (not in new config, in live config, not in last-applied-configuration)
Définir le délai d'expiration de la connexion
Définissez requestTimeout pour contrôler la durée pendant laquelle ALB attend une réponse du backend avant de renvoyer une erreur HTTP 504 au client. Plage valide : 1 à 600 secondes. Valeur par défaut : 60 secondes.
spec:
listeners:
- port: 80
protocol: HTTP
requestTimeout: 40
Configurations avancées des écouteurs
Configurer la compression des données
Définissez gzipEnabled: true pour activer la compression. Tous les types de fichiers prennent en charge la compression Brotli. Les types de fichiers suivants prennent également en charge la compression Gzip : text/xml, text/plain, text/css, application/javascript, application/x-javascript, application/rss+xml, application/atom+xml, application/xml et application/json.
Algorithme de compression : si un client prend en charge à la fois Brotli et Gzip, ALB utilise Brotli car il est plus efficace.
Conditions de compression : ALB compresse une réponse uniquement lorsque l'en-tête de réponse
Content-Lengthdépasse 1 024 octets et que l'en-tête de requêteAccept-Encodingdu client inclut l'algorithme de compression correspondant.
spec:
listeners:
- port: 80
protocol: HTTP
gzipEnabled: true
Conserver les adresses IP des clients
ALB ajoute l'adresse IP du client à l'en-tête X-Forwarded-For avant de transférer la requête au backend.
Disponible uniquement pour les écouteurs HTTP et HTTPS.
XForwardedForEnabledest activé par défaut et ne peut pas être désactivé.
spec:
listeners:
- port: 80
protocol: HTTP
xForwardedForConfig:
XForwardedForEnabled: true # This parameter cannot be set to false.
Meilleure pratique pour les environnements comportant plusieurs couches de proxy : bien que XForwardedForEnabled: true propage l'en-tête X-Forwarded-For par défaut, la valeur IP peut être usurpée lorsque les requêtes transitent par plusieurs proxys. Dans les environnements de production comportant plusieurs couches de proxy, utilisez XForwardedForClientSourceIpsEnabled: true conjointement avec XForwardedForClientSourceIpsTrusted pour récupérer l'adresse IP du client à partir d'une chaîne de proxys approuvés.
Récupérer les métadonnées de connexion du client
Utilisez xForwardedForConfig pour ajouter les métadonnées du client et de l'écouteur aux en-têtes de requête transmis au backend. Tous les champs ci-dessous sont disponibles pour les écouteurs HTTP et HTTPS.
|
Champ |
Lorsque la valeur est définie sur true |
|
|
Ajoute le port utilisé par le client pour se connecter à l'instance ALB. |
|
|
Ajoute le protocole de l'écouteur utilisé par l'instance ALB. |
|
|
Ajoute l'ID de l'instance ALB. |
|
|
Ajoute le port d'écoute de l'instance ALB. |
Exemple — ajout des quatre en-têtes :
spec:
listeners:
- port: 80
protocol: HTTP
xForwardedForConfig:
XForwardedForClientSrcPortEnabled: true
XForwardedForProtoEnabled: true
XForwardedForSLBIdEnabled: true
XForwardedForSLBPortEnabled: true
Récupérer l'adresse IP du client à partir d'une chaîne de proxys approuvés
Définissez XForwardedForClientSourceIpsEnabled: true pour extraire l'adresse IP réelle du client depuis X-Forwarded-For lorsque les requêtes transitent par plusieurs proxys. Utilisez XForwardedForClientSourceIpsTrusted pour lister les adresses IP ou les blocs CIDR des proxys approuvés. ALB parcourt X-Forwarded-For de droite à gauche et considère la première adresse IP non approuvée comme l'adresse IP du client.
Par exemple, si X-Forwarded-For contient <client IP, proxy-1, proxy-2>, ajoutez proxy-1 et proxy-2 à la liste des proxys approuvés.
Disponible uniquement pour les écouteurs HTTP et HTTPS.
spec:
listeners:
- port: 80
protocol: HTTP
xForwardedForConfig:
XForwardedForClientSourceIpsEnabled: true
XForwardedForClientSourceIpsTrusted: 192.168.x.x;192.168.x.x/16
Configurer une stratégie de sécurité TLS personnalisée
Définissez securityPolicyId sur un écouteur HTTPS pour appliquer une stratégie de sécurité TLS par défaut ou personnalisée.
spec:
listeners:
- port: 443
protocol: HTTPS
securityPolicyId: tls_cipher_policy_1_1
Configurer une adresse IP de proxy approuvé
Consultez la rubrique Spécifier une adresse IP de proxy approuvé.
Configurer des listes de contrôle d'accès réseau (ACL)
Utilisez aclConfig pour autoriser ou refuser le trafic provenant d'adresses IP ou de blocs CIDR spécifiques au niveau de l'écouteur.
spec:
listeners:
- port: 80
protocol: HTTP
aclConfig:
aclEntries:
- 127.0.0.1/32
aclType: White
|
Paramètre |
Description |
|
|
|
|
|
Adresses IP ou blocs CIDR à inclure dans la règle ACL. Exemple : |
Consultez la rubrique Configurer des ACL.
Dépannage
Erreur lors de l'enregistrement d'un fichier YAML AlbConfig : alb: listener port number must between [1:65535], or you should set listen port explicitly in listener config.
Cause
Dans un fichier YAML AlbConfig, le symbole - dans la section spec.listener marque le début d'une configuration d'écouteur unique. Dans l'exemple incorrect de gauche, trois symboles - sont utilisés, ce qui définit trois écouteurs. Une erreur se produit car la section certificates de la dernière entrée - ne contient pas la configuration du port.
Solution
Chaque configuration d'écouteur doit commencer par un tiret (-). Dans l'exemple corrigé de droite, le tiret (-) précédant certificates est supprimé, ce qui intègre la configuration du certificat à l'écouteur HTTPS: 443.
Exemple incorrect : | Exemple corrigé : |
Pourquoi les modifications du type de réseau (addressType) ou du vSwitch (zoneMappings.vSwitchId) d'une instance ALB ne prennent-elles pas effet lorsqu'elles sont effectuées via un fichier YAML AlbConfig ?
Cause
Vous ne pouvez pas modifier le type de réseau ou la configuration vSwitch d'une instance Application Load Balancer (ALB) en modifiant les paramètres addressType ou zoneMappings.vSwitchId dans son fichier YAML AlbConfig.

Solution
Commencez par désactiver le mode lecture seule de la configuration pour l'instance dans la console ALB. Modifiez ensuite manuellement le type de réseau ou la configuration vSwitch de l'instance ALB. Une fois la configuration modifiée, réactivez le mode lecture seule de la configuration.
Connectez-vous à la console ALB. Dans la région cible, cliquez sur l'ID de l'instance correspondant à
status.loadBalancer.iddans le fichier AlbConfig.Sous l'onglet Instance Details, dans la section Instance Information, cliquez sur Disable Configuration Read-only Mode et confirmez.
Cliquez sur Change Network Type ou Modify Zone/Subnet pour modifier le type de réseau ou la configuration vSwitch de l'instance ALB.
Une fois les modifications terminées, réactivez le configuration read-only mode.
Erreur de l'écouteur HTTPS : empty https listener default certs
Cause
Un écouteur HTTPS est configuré dans l'AlbConfig, mais aucun ID de certificat n'est spécifié dans le champ certificates. Le contrôleur ne peut pas créer l'écouteur car aucun Ingress associé n'existe pour découvrir automatiquement un certificat en fonction du nom de domaine.
Solutions
-
Méthode 1 (recommandée) : spécifiez un ID de certificat dans le champ
certificatespour l'écouteur HTTPS. Pour plus d'informations, consultez la section spécifier un certificat.listeners: - port: 443 protocol: HTTPS certificates: - CertificateId: <your-certificate-id> # Replace with your actual certificate ID. IsDefault: true Méthode 2 : dans l'AlbConfig, configurez un écouteur HTTP sur le port 80 et créez une ressource Ingress associée au nom de domaine cible. Une fois l'Ingress créé, ALB Ingress Controller découvre automatiquement le certificat à partir de l'Ingress en fonction du nom de domaine et l'attache à l'écouteur HTTPS.