Ingress Controller de Citrix ADC

Clase de servicio para servicios de tipo LoadBalancer

Cuando se implementan servicios de tipo LoadBalancer, el controlador de entrada de Citrix procesa todos estos servicios y los configura en Citrix ADC. Sin embargo, puede haber situaciones en las que quiera asociar solo servicios específicos a un Citrix Ingress Controller si se implementan varios controladores de entrada.

Para los recursos de Ingress, esta funcionalidad ya está disponible mediante la función de clase Ingress. De manera similar a la funcionalidad de clase Ingress para los recursos Ingress, la funcionalidad de clase de servicio ahora se agrega para los servicios de tipo LoadBalancer.

Puede asociar un Citrix Ingress Controller con varias clases de servicio mediante el argumento --service-classes de la sección spec del archivo YAML. Si no se especifica una clase de servicio para el controlador de entrada, entonces acepta todos los servicios del tipo LoadBalancer, independientemente de la presencia de la anotación service.citrix.com/class en el servicio.

Si la clase de servicio se especifica para el Citrix Ingress Controller, solo acepta los servicios del tipo LoadBalancer que coinciden con la anotación service.citrix.com/class. En este caso, el Citrix Ingress Controller no procesa un servicio LoadBalancer de tipos si no está asociado a la anotación service.citrix.com/class.

Configuraciones YAML de ejemplo con clases de servicio

A continuación se muestra un fragmento de un archivo YAML de ejemplo para asociar service-classes al Ingress Controller. En este fragmento, las siguientes clases de servicio están asociadas con el 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-->

A continuación se muestra un fragmento de un archivo YAML de definición de servicio de tipo LoadBalancer donde se representa la asociación de clase de servicio. En este ejemplo, un servicio de Apache se asocia a la clase de servicio svc-class1. Si el Citrix Ingress Controller está configurado para aceptar svc-class1, configura el servicio en 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-->
Clase de servicio para servicios de tipo LoadBalancer