Contrôleur d'entrée Citrix ADC

Classe de service pour les services de type LoadBalancer

Lorsque des services de type LoadBalancer sont déployés, tous ces services sont traités par le Citrix ingress controller et configurés sur Citrix ADC. Toutefois, il se peut que vous souhaitiez associer uniquement des services spécifiques à un Citrix ingress controller si plusieurs contrôleurs d’entrée sont déployés.

Pour les ressources Ingress, cette fonctionnalité est déjà disponible à l’aide de la fonction de classe Ingress . Semblable à la fonctionnalité de classe Ingress pour les ressources Ingress, la fonctionnalité de classe de service est désormais ajoutée pour les services de type LoadBalancer.

Vous pouvez associer un Citrix ingress controller à plusieurs classes de service à l’aide de l’argument --service-classes situé sous la section spec du fichier YAML. Si aucune classe de service n’est spécifiée pour le contrôleur d’entrée, il accepte tous les services du type LoadBalancer indépendamment de la présence de l’annotation service.citrix.com/class dans le service.

Si la classe de service est spécifiée pour le Citrix ingress controller, elle accepte uniquement les services du type LoadBalancer correspondant à l’annotation service.citrix.com/class. Dans ce cas, le Citrix ingress controller ne traite pas un service de type LoadBalancer s’il n’est pas associé à l’annotation service.citrix.com/class.

Exemples de configurations YAML avec classes de service

Voici un extrait d’un exemple de fichier YAML à associer service-classes au Ingress Controller. Dans cet extrait, les classes de service suivantes sont associées au Ingress Controller.

  • svc-class1
  • svc-class2
spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
  # specify the service classes to be supported by Citrix Ingress Controller in args section.
  # First line should be --service-classes, and every subsequent line should be
  # the name of allowed service class. In the given example two classes named
  # "svc-class1" and "svc-class2" are accepted. This will be case-insensitive.
  args:
    - --service-classes
      svc-class1
      svc-class2
<!--NeedCopy-->

Voici un extrait d’un fichier YAML de définition de service LoadBalancer de type dans lequel l’association de classe de service est représentée. Dans cet exemple, un service Apache est associé à la classe de service svc-class1. Si le Citrix ingress controller est configuré pour accepter svc-class1, il configure le service sur Citrix ADC.

apiVersion: v1
kind: Service
metadata:
     name: apache
     annotations:
         service.citrix.com/class: 'svc-class1'
     labels:
        name: apache
spec:
   type: LoadBalancer
   selector:
       name: apache
   ports:
   - name: http
     port: 80
     targetPort: http
   selector:
   app: apache
<!--NeedCopy-->
Classe de service pour les services de type LoadBalancer