Clase de servicio para servicios de tipo LoadBalancer

Last published : Oct 02, 2026
Cuando se implementan servicios de tipo LoadBalancer, todos estos servicios son procesados por el NetScaler Ingress Controller y configurados en los NetScalers. Sin embargo, puede haber situaciones en las que desee asociar solo servicios específicos a un NetScaler Ingress Controller si se implementan varios controladores Ingress.
Para los recursos Ingress, esta funcionalidad ya está disponible utilizando la característica clase Ingress. De forma similar a la funcionalidad de clase Ingress para los recursos Ingress, ahora se ha añadido la funcionalidad de clase de servicio para los servicios de tipo LoadBalancer.
Puede asociar un NetScaler Ingress Controller con varias clases de servicio utilizando el argumento --service-classes en la sección spec del archivo YAML. Si no se especifica una clase de servicio para el controlador Ingress, este acepta todos los servicios de 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 NetScaler Ingress Controller, entonces solo acepta aquellos servicios de tipo LoadBalancer que coincidan con la anotación service.citrix.com/class. En este caso, el NetScaler Ingress Controller no procesa un servicio de tipo LoadBalancer si no está asociado con 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 con el 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 NetScaler 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
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 la clase de servicio. En este ejemplo, un servicio Apache está asociado con la clase de servicio svc-class1. Si el NetScaler Ingress Controller está configurado para aceptar svc-class1, configura el servicio en el NetScaler.
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