Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Configure Classic Load Balancer (CLB) using annotations

Dernière mise à jour :Aug 11, 2026

Pour activer des fonctionnalités d'équilibrage de charge avancées, configurez les instances CLB, les écouteurs et les groupes de serveurs backend en ajoutant des annotations à votre fichier YAML de Service.

Index

Catégorie

Catégorie de fonctionnalité

Lien de configuration

Remarques sur l'utilisation des annotations

Opérations CLB typiques

Créer un équilibreur de charge

Spécifier une instance existante

Configurer l'équilibreur de charge

Activer la protection de l'instance

Opérations d'écouteur typiques

Paramètres de persistance de session

Configuration du port et du protocole

Configuration avancée

Opérations typiques du groupe de serveurs backend

Gestion de la configuration

Références

Remarques sur l'utilisation des annotations

  • Les valeurs des annotations sont sensibles à la casse.

  • Avant d'utiliser les annotations, vérifiez la version du composant CCM prise en charge pour chaque fonctionnalité décrite dans cette rubrique. Pour mettre à niveau le composant CCM, consultez Composants. Pour consulter l'historique des modifications du composant CCM, reportez-vous à Cloud Controller Manager.

  • Depuis le 11 septembre 2019, le préfixe du champ annotations est passé de alicloud à alibaba-cloud.

    Exemple :

    Avant la mise à jour : service.beta.kubernetes.io/alicloud-loadbalancer-id

    Après la mise à jour : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

    Le système reste compatible avec le préfixe alicloud. Aucune modification n'est requise.

Opérations CLB typiques

Créer une instance SLB orientée Internet

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Créer une instance SLB orientée réseau interne

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Description

Version CCM prise en charge

Spécifiez l'instance SLB comme étant orientée réseau interne. Valeurs valides :

  • internet : Le service est accessible via le réseau public. La IP Version correspondante du CLB doit être Internet-facing.

  • intranet : Le service est accessible via le réseau privé. La IP Version correspondante du CLB doit être Internal-facing.

Valeur par défaut : internet

Consultez la section Spécifier le vSwitch pour l'instance SLB pour spécifier manuellement un vSwitch pour le CLB. Si aucun vSwitch n'est spécifié, le système en sélectionne automatiquement un en fonction de la version du CCM :

  • Versions antérieures à la v2.13.0 : utilise par défaut le premier vSwitch configuré pour le plan de contrôle du cluster.

  • Versions v2.13.0 et ultérieures : sélectionne automatiquement un vSwitch parmi tous les vSwitches disponibles.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Spécification de l'instance SLB

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

Méthode de facturation de l'instance. Valeurs possibles :

  • PayBySpec : Facturation par spécification.

  • PayByCLCU : Facturation à l'utilisation.

Valeur par défaut : PayBySpec

Important
  • Pour Cloud Controller Manager v2.5.0 et versions ultérieures, la valeur par défaut devient PayByCLCU.

  • Les instances SLB facturées à l'utilisation ne prennent pas en charge la définition des spécifications. Par conséquent, vous ne pouvez pas spécifier à la fois PayByCLCU et service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec.

v2.4.0 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec

Spécification de l'instance SLB. Utilisez ce paramètre pour créer une instance SLB avec une spécification donnée ou mettre à jour la spécification d'une instance SLB existante. Valeurs possibles :

  • slb.s1.small

  • slb.s2.small

  • slb.s2.medium

  • slb.s3.small

  • slb.s3.medium

  • slb.s3.large

Valeur par défaut : slb.s1.small

Pour obtenir la liste complète des valeurs valides, consultez CreateLoadBalancer.

Important

Si vous modifiez la spécification SLB dans la console CLB (opération uniquement possible pour les instances SLB facturées par spécification), le CCM risque de rétablir la spécification d'origine. Procédez avec prudence.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayBySpec"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Utilisation d'une instance SLB existante

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

Description

Version CCM prise en charge

Important
  • Afin d'éviter tout comportement inattendu, tel qu'une indisponibilité du cluster ou une interruption du trafic, ne réutilisez pas les instances CLB du serveur API ni les instances CLB créées par le CCM. Créez manuellement une nouvelle instance depuis la console Classic Load Balancer (CLB).

  • N'ajoutez ni ne modifiez l'annotation de réutilisation pour un service LoadBalancer existant. Cette opération pourrait entraîner un échec de la réutilisation ou empêcher la libération de l'équilibreur de charge créé par le CCM.

ID de l'instance SLB. Utilisez cette annotation pour spécifier un CLB existant.

  • Par défaut, la réutilisation d'une instance SLB existante n'écrase pas les écouteurs. Pour forcer le remplacement des écouteurs existants, définissez service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners sur "true". Ce paramètre affecte uniquement les écouteurs associés au service actuel et n'a aucun impact sur les autres écouteurs.

    Remarque

    La réutilisation d'un SLB existant n'écrase pas les écouteurs existants par défaut pour deux raisons :

    • Si le trafic métier est lié aux écouteurs existants, un écrasement forcé peut provoquer une interruption de service.

    • Le CCM prend actuellement en charge un nombre limité de configurations backend et ne peut pas gérer des configurations complexes. Pour des exigences backend complexes, configurez manuellement les écouteurs dans la console sans les écraser.

    Compte tenu de ces scénarios, nous déconseillons l'écrasement forcé des écouteurs. N'effectuez cette opération que si les ports d'écoute de l'instance SLB existante ne sont plus utilisés.

  • (Versions antérieures à la v2.10.0) La réutilisation d'une instance SLB existante ne permet pas d'ajouter des tags supplémentaires (annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags).

v1.9.3.81-gca19cd4-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Utilisation d'une instance SLB existante avec écrasement forcé des écouteurs

Annotation : Plusieurs, comme indiqué dans le tableau suivant. L'écrasement forcé des écouteurs existants supprime les écouteurs en conflit.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

Important

Afin d'éviter tout comportement inattendu, tel qu'une indisponibilité du cluster ou une interruption du trafic, ne réutilisez pas les instances CLB du serveur API ni les instances CLB créées par le CCM. Créez manuellement une nouvelle instance depuis la console Classic Load Balancer (CLB).

ID de l'instance SLB. Utilisez cette annotation pour spécifier un CLB existant.

  • Par défaut, la réutilisation d'une instance SLB existante n'écrase pas les écouteurs. Pour forcer le remplacement des écouteurs existants, définissez service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners sur "true". Ce paramètre affecte uniquement les écouteurs associés au service actuel et n'a aucun impact sur les autres écouteurs.

    Remarque

    La réutilisation d'un SLB existant n'écrase pas les écouteurs existants par défaut pour deux raisons :

    • Si le trafic métier est lié aux écouteurs existants, un écrasement forcé peut provoquer une interruption de service.

    • Le CCM prend actuellement en charge un nombre limité de configurations backend et ne peut pas gérer des configurations complexes. Pour des exigences backend complexes, configurez manuellement les écouteurs dans la console sans les écraser.

    Compte tenu de ces scénarios, nous déconseillons l'écrasement forcé des écouteurs. N'effectuez cette opération que si les ports d'écoute de l'instance SLB existante ne sont plus utilisés.

  • (Versions antérieures à la v2.10.0) La réutilisation d'une instance SLB existante ne permet pas d'ajouter des tags supplémentaires (annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags).

v1.9.3.81-gca19cd4-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners

Lors de la liaison à une instance SLB existante, détermine s'il faut synchroniser les configurations des écouteurs CLB en fonction du service.

  • "true" : Le CCM gère automatiquement les écouteurs CLB (création, mise à jour, suppression) associés au service, sans affecter les autres écouteurs.

  • "false" : Le CCM ne traite pas les écouteurs CLB.

Valeur par défaut : "false"

Important

Lors de la réutilisation d'un CLB existant et de la définition de force-override sur "true", évitez que plusieurs services ne réutilisent le même écouteur sur le même CLB. Cela entraînerait des conflits de configuration des écouteurs.

v1.9.3.81-gca19cd4-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Spécification des zones principale et secondaire lors de la création d'une instance SLB

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Les zones principale et secondaire ne peuvent pas être modifiées après la création.

Certaines régions ne prennent pas en charge les zones principale et secondaire pour les instances SLB. Consultez la page de création CLB pour plus de détails.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid

ID de la zone du serveur backend principal.

v1.9.3.10-gfb99107-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid

ID de la zone du serveur backend de secours.

v1.9.3.10-gfb99107-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Création d'une instance SLB facturée au volume de bande passante

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Les deux annotations sont obligatoires.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type

Méthode de facturation de l'instance SLB. Valeurs possibles :

  • paybytraffic

  • paybybandwidth

Valeur par défaut : paybytraffic

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth

Bande passante de l'instance SLB, représentant la bande passante de crête. Valeur par défaut : 50. S'applique uniquement aux instances SLB orientées Internet. Pour connaître les autres limites, consultez Modifier la méthode de facturation pour une instance SLB orientée Internet.

v1.9.3.10-gfb99107-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Spécifier un vSwitch pour l'instance SLB

Annotation : Plusieurs, comme indiqué dans le tableau ci-dessous. Les deux annotations sont requises.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Spécifiez l'instance SLB comme étant interne. Valeurs valides :

  • internet : Le service est accessible via le réseau public. La IP Version correspondante du CLB doit être Internet-facing.

  • intranet : Le service est accessible via le réseau privé. La IP Version correspondante du CLB doit être Internal-facing.

Valeur par défaut : internet

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

ID du vSwitch de l'instance SLB. Le vSwitch doit appartenir au même VPC que le cluster Kubernetes.

Lorsque vous définissez ce paramètre, définissez également service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type sur "intranet".

Connectez-vous à la console Virtual Private Cloud pour interroger l'ID du vSwitch.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
   service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Spécifier une adresse IP pour un SLB interne

Annotation : Plusieurs, comme indiqué dans le tableau ci-dessous. Les trois annotations sont requises.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

Spécifiez l'instance SLB comme étant interne. Valeurs valides :

  • internet : Le service est accessible via le réseau public. Il s'agit de la valeur par défaut. La IP Version correspondante du CLB doit être Internet-facing.

  • intranet : Le service est accessible via le réseau privé. La IP Version correspondante du CLB doit être Internal-facing.

Valeur par défaut : internet

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id

ID du vSwitch de l'instance SLB. Le vSwitch doit appartenir au même VPC que le cluster Kubernetes.

Lorsque vous définissez ce paramètre, définissez également service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type sur intranet.

Connectez-vous à la console Virtual Private Cloud pour interroger l'ID du vSwitch.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip

Adresse IP de l'instance SLB interne.

  • L'adresse IP doit se trouver dans le bloc CIDR de destination du vSwitch. Seules les adresses IPv4 sont prises en charge et ce paramètre doit être utilisé conjointement avec service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id.

  • L'adresse IP ne peut pas être modifiée après la création.

v2.7.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
  name: nginx
  namespace: default
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 80
      name: http
  selector:
    app: nginx

Ajouter des tags supplémentaires à l'instance SLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags

Description

Version CCM prise en charge

Liste des tags à ajouter. Séparez plusieurs tags par des virgules anglaises (,). Exemple : "k1=v1,k2=v2". Les versions v2.10.0 et ultérieures prennent en charge la modification des tags pour les instances nouvellement créées et réutilisées.

Important

Après avoir ajouté cette annotation pour spécifier des tags supplémentaires, toute modification manuelle des tags apportée à l'instance SLB correspondante dans la console risque d'être écrasée.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2" 
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Créer une instance SLB IPv6

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version

Description

Version CCM prise en charge

Version IP de l'instance SLB. Le type d'IP ne peut pas être modifié après la création. Lorsque vous utilisez cette fonctionnalité, assurez-vous que le mode proxy kube-proxy de votre cluster est IPVS. Valeurs valides :

  • ipv4 : Type IPv4.

  • ipv6 : Type IPv6. L'adresse IPv6 générée n'est accessible que dans les environnements prenant en charge IPv6.

Valeur par défaut : ipv4

v1.9.3.220-g24b1885-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
  name: nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Activer la protection contre la suppression pour l'instance SLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection

Description

Version CCM prise en charge

Protection contre la suppression pour l'instance SLB. Valeurs valides :

  • on

  • off

Valeur par défaut : on

Important

Pour les instances SLB créées par des services de type LoadBalancer, même si vous activez manuellement la protection contre la suppression dans la console CLB, vous pouvez toujours supprimer l'instance SLB associée en exécutant kubectl delete svc {your-svc-name}.

v1.9.3.313-g748f81e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Activer le mode lecture seule de la configuration pour l'instance SLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

Description

Version CCM prise en charge

Protection contre la modification de la configuration pour l'instance SLB. Valeurs valides :

  • ConsoleProtection

  • NonProtection

Valeur par défaut : ConsoleProtection

v1.9.3.313-g748f81e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Spécifier le nom de l'instance SLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name

Description

Version CCM prise en charge

Nom de l'instance SLB. Le nom doit comporter entre 2 et 128 caractères, commencer par une lettre ou un caractère chinois, et peut contenir des chiffres, des points (.), des traits de soulignement (_) et des traits d'union (-).

v1.9.3.313-g748f81e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Spécifiez le groupe de ressources pour l'instance SLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id

Description

Version CCM prise en charge

ID du groupe de ressources de l'instance SLB. Une fois spécifié, l'ID du groupe de ressources ne peut plus être modifié. Consultez l'ID du groupe de ressources dans la console Alibaba Cloud Resource Management.

v1.9.3.313-g748f81e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Définissez le nom d'hôte pour le Service

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez les différentes valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname

Définissez un nom d'hôte pour le Service. Le nom d'hôte doit respecter les règles de dénomination DNS.

Prenez note des points suivants :

  • Après l'ajout de cette annotation, l'EXTERNAL-IP du Service passe de l'adresse IP CLB par défaut à your_service_name. Le trafic accédant à l'adresse IP CLB depuis le cluster sera acheminé via le CLB avant d'être transféré vers le cluster.

  • L'ajout de cette annotation entraîne des problèmes de boucle lors de l'accès à l'adresse IP CLB depuis le cluster pour les écouteurs TCP ou UDP. Pour plus de détails, consultez Client cannot access CLB.

  • Cette annotation ne lie pas automatiquement le CLB à un nom de domaine. Pour effectuer la liaison, achetez un nom de domaine et configurez-le manuellement dans la console Domain Names. Pour acheter un nom de domaine, consultez What is Alibaba Cloud Domain Names?.

v2.3.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname: "${your_service_hostname}"
  name: nginx-svc
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Résultat attendu :

NAME         TYPE           CLUSTER-IP       EXTERNAL-IP            PORT(S)                      AGE
nginx-svc    loadBalancer   47.100.XX.XX     www.example.com        80:30248/TCP,443:32670/TCP   10s

Créez une instance SLB facturée à l'utilisation

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type

Description

Version CCM prise en charge

Méthode de facturation de l'instance. Valeurs valides :

  • PayBySpec : valeur par défaut, facturée selon la spécification.

  • PayByCLCU : facturé à l'utilisation.

Valeur par défaut : PayBySpec

Important
  • Pour Cloud Controller Manager v2.5.0 et versions ultérieures, la valeur par défaut devient PayByCLCU.

  • Les instances SLB facturées à l'utilisation ne permettent pas de définir des spécifications. Par conséquent, vous ne pouvez pas spécifier simultanément PayByCLCU et service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec.

v2.4.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Opérations typiques sur les écouteurs

Configurez le délai d'expiration de la persistance de session pour TCP SLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout

Description

Version CCM prise en charge

Délai d'expiration de la persistance de session. S'applique uniquement aux écouteurs TCP. Si l'instance SLB comporte plusieurs écouteurs TCP, ce paramètre s'applique par défaut à tous les écouteurs TCP.

Unité : secondes. Plage valide : [0, 3600]. Valeur par défaut : 0 (persistance de session désactivée). Pour plus d'informations, consultez CreateLoadBalancerTCPListener.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Configurer la persistance de session (insertion de cookie) pour les écouteurs HTTP et HTTPS

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Les quatre annotations sont requises lors de l'insertion de cookies.

  • S'applique uniquement aux instances SLB HTTP et HTTPS.

  • Si plusieurs écouteurs HTTP ou HTTPS sont configurés, la persistance de session s'applique par défaut à tous les écouteurs HTTP et HTTPS.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session

Active la persistance de session. S'applique uniquement aux écouteurs HTTP et HTTPS. Valeurs valides :

  • on

  • off

Valeur par défaut : off

Pour plus d'informations, consultez les rubriques CreateLoadBalancerHTTPListener et CreateLoadBalancerHTTPSListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type

Méthode de gestion des cookies. S'applique uniquement aux écouteurs HTTP et HTTPS. Requis lorsque service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session est défini sur on. Valeurs valides :

  • insert : Insère un cookie.

  • server : Réécrit le cookie.

Pour plus d'informations, consultez les rubriques CreateLoadBalancerHTTPListener et CreateLoadBalancerHTTPSListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout

Délai d'expiration du cookie. Requis lorsque service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session est activé (on) et que service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type est défini sur insert. Unité : secondes. Plage valide : [1, 86400].

Pour plus d'informations, consultez les rubriques CreateLoadBalancerHTTPListener et CreateLoadBalancerHTTPSListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie

Nom du cookie configuré sur le serveur.

Longueur : 1 à 200 caractères. Ne peut contenir que des lettres ASCII et des chiffres. Ne doit pas contenir de virgules (,), de points-virgules (;), d'espaces, ni commencer par un signe dollar ($).

Requis lorsque service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session est activé (on) et que service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type est défini sur server.

Pour plus d'informations, consultez les rubriques CreateLoadBalancerHTTPListener et CreateLoadBalancerHTTPSListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez les différentes valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurer un groupe de politiques de contrôle d'accès pour SLB

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Les trois annotations sont requises.

Avant d'utiliser cette annotation pour créer un équilibreur de charge SLB avec contrôle d'accès, créez un groupe de politiques de contrôle d'accès dans la console Classic Load Balancer CLB et notez son ID (acl-id).

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status

Active le contrôle d'accès. Valeurs valides :

  • on

  • off

Valeur par défaut : off

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id

ID du groupe de politiques de contrôle d'accès associé à l'écouteur. Requis lorsque service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status est défini sur "on".

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type

Type de contrôle d'accès. Valeurs valides :

  • white : Transmet uniquement les requêtes provenant des adresses IP ou des plages CIDR figurant dans le groupe de politiques de contrôle d'accès. La liste blanche s'applique lorsque votre application n'autorise l'accès qu'à partir d'adresses IP spécifiques. La configuration d'une liste blanche comporte des risques métier. Une fois configurée, seules les adresses IP de la liste blanche peuvent accéder à l'écouteur SLB. Si la liste blanche est vide, l'écouteur SLB transmet toutes les requêtes.

  • black : Les requêtes provenant des adresses IP ou des plages CIDR configurées dans le groupe de politiques de contrôle d'accès sélectionné ne seront pas transmises. Vous pouvez utiliser une liste noire dans les scénarios où vous souhaitez refuser l'accès à une application uniquement depuis certaines adresses IP. Si vous activez une liste noire sans ajouter d'adresse IP au groupe de politiques de contrôle d'accès, l'écouteur SLB transmet toutes les requêtes. Ce paramètre est requis lorsque le paramètre AclStatus est défini sur on.

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}" # Does not support multiple policy groups.
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Spécifier le port de redirection pour SLB

La redirection de port permet de rediriger les requêtes HTTP vers des ports HTTPS.

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Les trois annotations sont requises.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez les différentes valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID du certificat sur Alibaba Cloud.

Connectez-vous à la console CLB et consultez l'ID du certificat sur la page Certificates.

Remarque

Pour créer un certificat, consultez la rubrique Sélectionner un certificat émis par Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port

Redirige les requêtes HTTP vers un port HTTPS spécifié. Exemple : 80:443.

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Définir l'algorithme de planification pour SLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

Description

Version CCM prise en charge

Algorithme de planification. Valeurs valides :

  • wrr : Round-robin pondéré. Les serveurs principaux dotés de poids plus élevés reçoivent davantage de requêtes (probabilité plus forte).

  • rr : Round-robin. Distribue les requêtes externes aux serveurs principaux de manière séquentielle.

  • sch : Hachage cohérent basé sur l'adresse IP source. Les requêtes provenant de la même adresse source sont planifiées vers le même serveur principal.

  • tch : Hachage cohérent basé sur le quadruplet (IP source + IP de destination + port source + port de destination). Les requêtes issues du même flux sont planifiées vers le même serveur principal.

Valeur par défaut : rr.

Pour connaître les autres valeurs valides, consultez le champ Scheduler dans l'API de création d'écouteur correspondante (par exemple Create TCP listener).

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Créer un écouteur UDP

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Créer un écouteur HTTP

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

  • Contrôle d'intégrité : les contrôles d'intégrité des écouteurs HTTP sont désactivés par défaut. Pour garantir la disponibilité du service principal, configurez des contrôles d'intégrité HTTP ou TCP pour le port de l'écouteur.

  • Accès depuis le cluster : Lorsque vous accédez au service via l'adresse IP CLB depuis l'intérieur du cluster, le trafic des requêtes peut être tronqué en interne, ce qui entraîne des problèmes d'accès. Consultez la section Définir le nom d'hôte pour le service afin de forcer le trafic à passer par le CLB en ajoutant une annotation. Pour plus de détails, voir Remarques sur l'accès à l'adresse IP externe du service LoadBalancer depuis l'intérieur du cluster.

Description

Version CCM prise en charge

Séparez plusieurs valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Créer un écouteur HTTPS

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

Les requêtes HTTPS sont déchiffrées au niveau du CLB et envoyées aux pods principaux sous forme de requêtes HTTP.

  • Contrôle d'intégrité : les contrôles d'intégrité des écouteurs HTTPS sont désactivés par défaut. Pour garantir la disponibilité du service principal, configurez des contrôles d'intégrité HTTP ou TCP pour le port de l'écouteur.

  • Accès depuis le cluster : Lorsque vous accédez au service via l'adresse IP CLB depuis l'intérieur du cluster, le trafic des requêtes peut être tronqué en interne, ce qui entraîne des problèmes d'accès. Consultez la section Définir le nom d'hôte pour le service afin de forcer le trafic à passer par le CLB en ajoutant une annotation. Pour plus de détails, voir Remarques sur l'accès à l'adresse IP externe du service LoadBalancer depuis l'intérieur du cluster.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID du certificat sur Alibaba Cloud.

Connectez-vous à la console CLB et affichez l'ID du certificat sur la page Certificates.

Remarque

Pour créer un certificat, consultez la section Sélectionner un certificat émis par Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Erreur de protocole SSL lors de l'accès à CLB depuis un cluster

Symptômes

Après avoir créé un écouteur HTTPS pour un service, celui-ci fonctionne correctement lorsqu'il est accessed depuis l'extérieur du cluster. Toutefois, lorsque vous utilisez curl pour accéder au port HTTPS du CLB associé au service depuis un nœud ou un pod à l'intérieur du cluster, l'erreur suivante est renvoyée :

curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Cause

Ce problème survient en raison des règles IP Virtual Server (IPVS) sur le nœud :

  1. Configuration du service : Un écouteur HTTPS sur un CLB ne prend en charge que le protocole HTTP pour les services principaux. Par conséquent, le service doit être configuré pour transférer le trafic du port port: 443 vers le port targetPort: 80. ACK crée alors une règle IPVS sur le nœud. Cette règle transfère directement le trafic du port 443 vers le port principal 80.

  2. Transfert de couche 4 : IPVS opère au niveau de la couche 4 de la pile de protocoles TCP/IP. Il ne fait que transférer les paquets de données TCP et n'analyse pas les protocoles de la couche application tels que TLS ou HTTPS.

  3. Incompatibilité de protocole : Le client (curl) envoie une requête HTTPS contenant des données de handshake TLS. IPVS transfère directement cette requête vers le port HTTP 80 du service principal. Comme ce port n'est pas configuré pour TLS, il ne peut pas analyser la requête TLS. En conséquence, le service principal renvoie une erreur HTTP 400 et le client signale une erreur de protocole SSL.

Solution

Ajoutez l'annotation service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname au service. Cette annotation empêche la génération de règles IPVS sur les nœuds et force le trafic au sein du cluster à passer par le CLB. Cela garantit que le CLB gère correctement le handshake TLS. Pour plus d'informations, consultez la section .

Configurer des certificats de nom de domaine supplémentaires pour l'écouteur HTTPS

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID du certificat sur Alibaba Cloud.

Connectez-vous à la console CLB et affichez l'ID du certificat sur la page Certificates.

Remarque

Pour créer un certificat, consultez la section Sélectionner un certificat émis par Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-domain-extensions

Spécifiez les noms de domaine supplémentaires et les ID de certificat au format {domain}:{certificate ID}. Séparez plusieurs valeurs par des virgules anglaises (,).

Connectez-vous à la console CLB et affichez l'ID du certificat sur la page Certificates.

v2.13.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-domain-extensions: "${DOMAIN_1}:${CERT_ID_1},${DOMAIN_2}:${CERT_ID_2}"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Créer un écouteur avec vérification d'état

Configurer la vérification d'état TCP

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Toutes les annotations sont obligatoires.

Les vérifications d'état sont activées par défaut pour les ports TCP.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Active les vérifications d'état pour les écouteurs TCP et UDP. Valeurs possibles :

  • on

  • off

Valeur par défaut : on

v2.6.0 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

Type de vérification d'état. Valeurs possibles :

  • tcp

  • http

Valeur par défaut : tcp. Pour plus d'informations, consultez CreateLoadBalancerTCPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

Délai d'attente de réponse lors de la vérification d'état, applicable au mode TCP. Si l'instance ECS backend ne répond pas correctement dans le délai spécifié, la vérification d'état échoue. Unité : secondes. Plage valide : [1, 300].

Si la valeur de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout est inférieure à celle de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, la première est ignorée et le délai d'attente équivaut à la valeur de la seconde. Valeur par défaut : 5. Pour plus d'informations, consultez CreateLoadBalancerTCPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Nombre de vérifications d'état consécutives réussies nécessaires pour faire passer l'état de santé du serveur backend de fail à success.

Plage valide : [2, 10]. Valeur par défaut : 3. Pour plus d'informations, consultez CreateLoadBalancerTCPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Nombre de vérifications d'état consécutives échouées nécessaires pour faire passer l'état de santé du serveur backend de success à fail. Plage valide : [2, 10]. Valeur par défaut : 3. Pour plus d'informations, consultez CreateLoadBalancerTCPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Intervalle entre les vérifications d'état. Unité : secondes. Plage valide : [1, 50]. Valeur par défaut : 2. Pour plus d'informations, consultez CreateLoadBalancerTCPListener.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurer la vérification d'état UDP

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Toutes les annotations sont obligatoires.

Les vérifications d'état sont activées par défaut pour les ports UDP.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Active les vérifications d'état pour les écouteurs TCP et UDP. Valeurs possibles :

  • on

  • off

Valeur par défaut : on

v2.6.0 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

Délai d'attente de réponse lors de la vérification d'état, applicable au mode TCP. Si l'instance ECS backend ne répond pas correctement dans le délai spécifié, la vérification d'état échoue. Unité : secondes. Plage valide : [1, 300].

Si la valeur de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout est inférieure à celle de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, la première est ignorée et le délai d'attente équivaut à la valeur de la seconde. Valeur par défaut : 5. Pour plus d'informations, consultez CreateLoadBalancerUDPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Nombre de vérifications d'état consécutives réussies nécessaires pour faire passer l'état de santé du serveur backend de fail à success.

Plage valide : [2, 10]. Valeur par défaut : 3. Pour plus d'informations, consultez CreateLoadBalancerUDPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Nombre de vérifications d'état consécutives échouées nécessaires pour faire passer l'état de santé du serveur backend de success à fail. Plage valide : [2, 10]. Valeur par défaut : 3. Pour plus d'informations, consultez CreateLoadBalancerUDPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Intervalle entre les vérifications d'état. Unité : secondes. Plage valide : [1, 50]. Valeur par défaut : 2. Pour plus d'informations, consultez CreateLoadBalancerUDPListener.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: UDP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Désactiver la vérification d'état pour les écouteurs TCP et UDP

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch

Description

Version CCM prise en charge

Active les vérifications d'état pour les écouteurs TCP et UDP. Valeurs possibles :

  • on

  • off

Valeur par défaut : on

v2.6.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" # Disable health check
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Configurer la vérification d'état HTTP

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag

Valeurs valides :

  • on : les écouteurs TCP sont définis sur on par défaut et ne peuvent pas être modifiés. Il n'est pas nécessaire de modifier cette annotation pour TCP.

  • off : les écouteurs HTTP sont définis sur off par défaut.

Valeur par défaut : off

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

Type de vérification d'état. Valeurs valides :

  • tcp

  • http

Valeur par défaut : tcp

Pour plus d'informations, consultez CreateLoadBalancerHTTPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri

URI pour les vérifications d'état. Non requis lorsque le type de vérification d'état est TCP.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode

Codes d'état HTTP indiquant une vérification réussie. Séparez plusieurs codes d'état par des virgules anglaises. Valeurs valides :

  • http_2xx

  • http_3xx

  • http_4xx

  • http_5xx

Valeur par défaut : http_2xx

Pour plus d'informations, consultez CreateLoadBalancerHTTPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain

Nom de domaine pour les vérifications d'état. Valeurs valides :

  • $_ip : adresse IP privée du serveur backend. Si une adresse IP est spécifiée ou si ce paramètre n'est pas défini, l'équilibreur de charge SLB utilise l'adresse IP privée de chaque serveur backend comme domaine de vérification d'état.

  • domain : longueur du nom de domaine : 1 à 80 caractères. Peut contenir uniquement des lettres, des chiffres, des points (.) et des traits d'union (-).

Pour plus d'informations, consultez CreateLoadBalancerHTTPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout

Délai d'attente d'une réponse à la vérification d'état, applicable au mode HTTP. Si le serveur ECS backend ne répond pas correctement dans le délai spécifié, la vérification d'état échoue.

Unité : secondes. Plage valide : [1, 300].

Si la valeur de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout est inférieure à celle de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval, alors service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout n'est pas valide et le délai d'attente est égal à la valeur de service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval.

Pour plus d'informations, consultez CreateLoadBalancerHTTPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

Nombre de vérifications d'état réussies consécutives requises pour faire passer l'état de santé du serveur backend de l'échec à la réussite.

Plage valide : [2, 10]. Valeur par défaut : 3. Pour plus d'informations, consultez CreateLoadBalancerHTTPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

Nombre de vérifications d'état échouées consécutives requises pour faire passer l'état de santé du serveur backend de la réussite à l'échec. Plage valide : [2, 10]. Valeur par défaut : 3. Pour plus d'informations, consultez CreateLoadBalancerHTTPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

Intervalle de vérification d'état. Unité : secondes. Plage valide : [1, 50]. Valeur par défaut : 2. Pour plus d'informations, consultez CreateLoadBalancerHTTPListener.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method

Méthode de vérification d'état pour les écouteurs HTTP. Valeurs valides :

  • head

  • get

v2.3.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    # Set HTTP status code for health check (optional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
    # Set domain for health check (optional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
    # Set health check method (optional)
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurer la vidange de connexion pour l'écouteur

Annotation : Plusieurs, comme indiqué dans le tableau suivant. Toutes les annotations sont requises.

S'applique uniquement aux protocoles TCP et UDP.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain

Activer la vidange de connexion. Valeurs valides :

  • on

  • off

v2.0.1 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout

Définir le délai d'expiration de la vidange de connexion. Unité : secondes. Plage valide : [10, 900].

v2.0.1 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurer des en-têtes de requête supplémentaires pour l'écouteur

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

S'applique uniquement aux protocoles HTTP et HTTPS.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules anglaises (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto

Configurer l'obtention du protocole de l'écouteur CLB via l'en-tête X-Forwarded-Proto. Valeurs valides :

  • on

  • off

Valeur par défaut : off

v2.1.0 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport

Configurer l'obtention du port de l'écouteur de l'instance SLB via l'en-tête XForwardedFor_SLBPORT. Valeurs valides :

  • on

  • off

Valeur par défaut : off

v2.9.1 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport

Configurer l'obtention du port client accédant à l'instance SLB via l'en-tête XForwardedFor_ClientSrcPort. Valeurs valides :

  • on

  • off

Valeur par défaut : off

v2.9.1 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Définir le délai d'inactivité pour l'écouteur

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

S'applique uniquement aux protocoles HTTP et HTTPS.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout

Définit le délai d'inactivité de la connexion pour l'écouteur. Unité : secondes. Plage valide : [1, 60].

Valeur par défaut : 15

v2.1.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "30"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Désactiver HTTP/2 pour l'écouteur

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

S'applique uniquement au protocole HTTPS.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID du certificat sur Alibaba Cloud.

Connectez-vous à la console CLB et consultez l'ID du certificat sur la page Certificates.

Remarque

Pour créer un certificat, consultez Sélectionner un certificat émis par Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled

Activez HTTP/2. Valeurs valides :

  • on

  • off

Valeur par défaut : on

v2.1.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled: "off"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Définir le délai d'expiration des requêtes pour l'écouteur

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

S'applique uniquement aux protocoles HTTP et HTTPS.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout

Définit le délai d'expiration des requêtes. Unité : secondes. Plage valide : [1, 180]. Valeur par défaut : 60

Si le serveur backend ne répond pas dans le délai imparti, SLB arrête d'attendre et renvoie une erreur HTTP 504 au client.

v2.3.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Définir le délai d'expiration de la connexion pour l'écouteur

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout

S'applique uniquement au protocole TCP.

Description

Version CCM prise en charge

Délai d'expiration de la connexion. Unité : secondes. Plage valide : [10, 900]. Pour plus d'informations, consultez CreateLoadBalancerTCPListener.

v2.3.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout: "60"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurer la stratégie de sécurité pour l'écouteur

Annotation : Plusieurs, comme indiqué dans le tableau suivant.

S'applique uniquement au protocole HTTPS.

Annotation

Description

Version CCM prise en charge

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

Séparez plusieurs valeurs par des virgules (,). Exemple : https:443,http:80.

v1.9.3 et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

ID du certificat sur Alibaba Cloud.

Connectez-vous à la console CLB et consultez l'ID du certificat sur la page Certificates.

Remarque

Pour créer un certificat, consultez Sélectionner un certificat émis par Alibaba Cloud.

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy

La stratégie de sécurité inclut les versions TLS facultatives et les suites de chiffrement pour HTTPS. Pour plus d'informations, consultez CreateLoadBalancerHTTPSListener. Valeurs valides :

  • tls_cipher_policy_1_0

  • tls_cipher_policy_1_1

  • tls_cipher_policy_1_2

  • tls_cipher_policy_1_2_strict

  • tls_cipher_policy_1_2_strict_with_1_3

Valeur par défaut : tls_cipher_policy_1_0

v2.4.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_2"
  name: nginx
  namespace: default
spec:
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Configurer les protocoles TCP et UDP pour l'écouteur

Remarque

Cette fonctionnalité nécessite une version Kubernetes du cluster v1.24 ou ultérieure. Pour les instructions de mise à niveau, consultez Mettre à niveau la version Kubernetes du cluster ACK.

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: default
spec:
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 81
  selector:
    app: nginx
  sessionAffinity: None
  type: LoadBalancer

Configurer le Proxy Protocol pour les écouteurs TCP et UDP

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol

Lors de l'accès au service via l'IP CLB depuis le cluster, le trafic des requêtes peut être tronqué en interne, ce qui entraîne des problèmes d'accès. Consultez Définir le nom d'hôte pour le service pour forcer le trafic à passer par le CLB en ajoutant une annotation. Pour plus de détails, consultez Remarques sur l'accès à l'IP externe du service LoadBalancer depuis le cluster.

Description

Version CCM prise en charge

Configurez le Proxy Protocol pour les écouteurs TCP et UDP. Lorsqu'il est activé, le Proxy Protocol transmet l'adresse source du client aux serveurs backend. Valeurs valides :

  • on

  • off

Valeur par défaut : off

Important

Cette fonctionnalité ne prend pas en charge la migration transparente. La modification du Proxy Protocol nécessite une interruption de service. Configurez avec prudence.

v2.6.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Opérations typiques sur les groupes de serveurs backend

Utiliser des nœuds de travail avec des libellés spécifiques comme serveurs backend

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label

Description

Version CCM prise en charge

Spécifiez les nœuds de travail à monter sur le backend du CLB à l'aide de libellés. Séparez plusieurs libellés par des virgules anglaises (,). Exemple : "k1=v1,k2=v2". Plusieurs libellés utilisent une logique ET. S'applique uniquement lorsque le type de serveur backend est en mode ecs.

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label: "failure-domain.beta.kubernetes.io/zone=ap-southeast-5a"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Utiliser les nœuds où résident les pods comme serveurs backend

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

La valeur par défaut de externalTrafficPolicy est le mode Cluster, qui monte tous les nœuds du cluster sur le backend. Le mode Local ne monte que les nœuds où résident les pods.

Description

Version CCM prise en charge

Algorithme de planification. Valeurs possibles :

  • wrr : Tourniquet pondéré. Les serveurs backend avec des poids plus élevés reçoivent plus de requêtes (probabilité plus élevée).

    Le mode Local nécessite de définir la politique de planification sur le tourniquet pondéré wrr.

    Remarque

    Dans les versions v1.9.3.164-g2105d2e-aliyun et ultérieures, les services dont la politique de trafic externe est définie sur le mode Local définissent automatiquement les poids des nœuds en fonction du nombre de pods sur chaque nœud. Pour les règles de calcul des poids, consultez Comment les poids des nœuds sont-ils définis automatiquement en mode Local ?.

  • rr : Tourniquet. Distribue les requêtes externes séquentiellement aux serveurs backend.

Valeur par défaut : rr

v1.9.3 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer

Supprimer les nœuds à l'état unschedulable du backend du CLB

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend

Description

Version CCM prise en charge

Supprimez les nœuds SchedulingDisabled du backend du CLB. Valeurs possibles :

  • on : Supprimez les nœuds à l'état unschedulable du groupe de serveurs backend du CLB.

  • off : Les commandes kubectl cordon et kubectl drain définissent les nœuds à l'état unschedulable. Les nœuds à l'état unschedulable restent dans le groupe de serveurs backend du CLB.

Valeur par défaut : off

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend: "on"
  name: nginx
spec:
  externalTrafficPolicy: Local
  ports:
  - name: http
    port: 30080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Monter directement les ENI des pods sur le backend du CLB

Annotation : service.beta.kubernetes.io/backend-type

Description

Valeur par défaut

Version CCM prise en charge

Type de serveur backend du CLB. Valeurs possibles :

  • eni : Montez directement les pods sur le backend du CLB pour améliorer les performances de transfert réseau. S'applique uniquement en mode réseau Terway.

    Vous pouvez également modifier manuellement service.beta.kubernetes.io/backend-type: "eni" en eni ou ecs pour monter des instances ECS sur le backend du CLB.

  • ecs : Montez des instances ECS sur le backend du CLB.

  • Mode réseau Flannel : ecs

  • Mode réseau Terway :

    • Clusters Terway créés avant le 10 août 2020 : ecs

    • Clusters Terway créés le 10 août 2020 ou après : eni

v1.9.3.164-g2105d2e-aliyun et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/backend-type: "eni"
  name: nginx
spec:
  ports:
  - name: http
    port: 30080
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

Réutiliser un groupe de serveurs virtuel existant

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port

Prend en charge la réutilisation des groupes de serveurs virtuels existants. S'applique uniquement lors de la réutilisation d'instances CLB existantes. Pour des exemples d'utilisation, consultez Réaliser un déploiement de service inter-clusters en réutilisant des instances SLB existantes.

Définir le poids du trafic pour le Service

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight

Dans les scénarios où plusieurs Services réutilisent le même CLB, utilisez cette annotation pour définir le poids du trafic pour le Service actuel. Cette annotation s'applique uniquement lors de la réutilisation de groupes de serveurs virtuels existants. Pour des exemples d'utilisation, consultez Réaliser un déploiement de service inter-clusters en réutilisant des instances SLB existantes.

Ignorer les mises à jour du poids des serveurs backend

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update

Description

Version CCM prise en charge

Ignorez la mise à jour des poids des serveurs backend dans le groupe de serveurs virtuels lors de la synchronisation du Service. Utilisez ce paramètre lorsque vous gérez manuellement les poids des serveurs backend en dehors du CCM. Valeurs possibles :

  • on

  • off

Valeur par défaut : off

v2.11.1 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ignore-weight-update: "on"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer

Définir le poids par défaut des serveurs backend

Annotation : service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight

Description

Version CCM prise en charge

Définissez le poids par défaut des serveurs dans le groupe de serveurs. Des poids plus élevés entraînent un trafic de requêtes plus important.

Plage valide : [0, 100]. Si non spécifié, le système utilise le poids par défaut correspondant au type de réseau actuel.

Ce paramètre ne s'applique pas lorsque l'instance backend est une instance ECS et que la propriété externalTrafficPolicy du Service est en mode Local.

v2.14.0 et versions ultérieures

apiVersion: v1
kind: Service
metadata:
  annotations:
    # Set default server weight in server group to 35
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-default-weight: "35"
  name: nginx
  namespace: default
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  selector:
    run: nginx
  type: LoadBalancer