NetScaler Ingress Controller

Implementación de NetScaler Ingress Controller con soporte de fragmentación de router OpenShift

La fragmentación de enrutadores OpenShift permite distribuir un conjunto de rutas entre varios enrutadores OpenShift. De forma predeterminada, una redirección OpenShift selecciona todas las rutas de todos los espacios de nombres. En la fragmentación de enrutadores, las etiquetas se agregan a las rutas o los espacios de nombres y los selectores de etiquetas a los enrutadores para filtrar las rutas. Cada fragmento de enrutador selecciona solo rutas con etiquetas específicas que coinciden con sus parámetros de selección de etiquetas.

NetScaler se puede integrar con OpenShift de dos maneras y ambas implementaciones admiten la fragmentación de enrutadores OpenShift.

  • NetScaler CPX se implementó como un router OpenShift junto con el controlador NetScaler Ingress dentro del clúster
  • NetScaler Ingress Controller como complemento de router para NetScaler MPX o VPX implementado fuera del clúster

Para configurar la fragmentación del router para una implementación de NetScaler en OpenShift, se requiere una instancia de NetScaler Ingress Controller por fragmento. La instancia de NetScaler Ingress Controller se implementa con etiquetas de ruta o espacio de nombres, o ambas, como variables de entorno, según los criterios requeridos para la fragmentación. Cuando el NetScaler Ingress Controller procesa una ruta, compara las etiquetas de la ruta o las etiquetas del espacio de nombres de la ruta con los criterios de selección configurados en ella. Si la ruta cumple los criterios, se aplica la configuración adecuada a NetScaler; de lo contrario, no se aplica la configuración.

En la fragmentación de enrutadores, la selección de un subconjunto de rutas de todo el conjunto de rutas se basa en expresiones de selección. Las expresiones de selección son una combinación de varios valores y operaciones.

Por ejemplo, considere que hay algunas rutas con varias etiquetas para el acuerdo de nivel de servicio (SLA), la ubicación geográfica (geo), los requisitos de hardware (hw), el departamento (departamento), el tipo y la frecuencia, como se muestra en la siguiente tabla.

Etiqueta Valores
sla alto, medio, bajo
geo este, oeste
hw modesto, fuerte
departamento finanzas, desarrollo, operaciones
type estático, dinámico
frecuencia alto, semanal

En la siguiente tabla se muestran los selectores de etiquetas de ruta o etiquetas de espacio de nombres y algunas expresiones de selección de ejemplo basadas en las etiquetas del ejemplo. Los criterios de selección de rutas se configuran en el controlador NetScaler Ingress mediante las variables de entorno ROUTE_LABELS y NAMESPACE_LABLES.

Tipo de selector Ejemplo
Operación OR route_labels=’Dept en (dev, ops) ‘
Operación AND route_labels=’HW=fuerte, tipo=dinámico, geo=oeste’
Operación NOT route_labels=’Departamento! = financiación’
Coincidencia exacta namespace_labels=’Frequency=Semanal’
Coincidencia exacta con etiquetas de ruta y espacio de nombres namespace_labels=’frequency=semanal’ route_labels=’SLA=bajo’
Coincidencia basada en claves independiente del valor namespace_labels=’Nombre’
Operación NOT con coincidencia basada en clave independiente del valor NAMESPACE_LABELS=’! nombre’

Nota:

Los selectores de etiquetas usan el idioma admitido por las etiquetas de Kubernetes.

Si lo quiere, puede cambiar las etiquetas de ruta o espacio de nombres modificándolas más adelante. Una vez cambiadas las etiquetas, el fragmento del router se vuelve a validar y, en función del cambio, el NetScaler Ingress Controller actualiza la configuración de NetScaler.

Implementar NetScaler CPX con fragmentación de enrutadores OpenShift

Para implementar CPX con soporte de fragmentación de enrutadores OpenShift, lleve a cabo los siguientes pasos:

  1. Descargue el archivo cpx_cic_side_car.yaml con el siguiente comando:

     wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/openshift/manifest/cpx_cic_side_car.yaml
    
  2. Modifique el archivo cpx_cic_side_car.yaml y especifique las etiquetas de ruta y los selectores de etiquetas de espacio de nombres como variables de entorno.

    En el siguiente ejemplo se muestra cómo especificar una etiqueta de ruta de ejemplo y una etiqueta de espacio de nombres en el archivo cpx_cic_side_car.yaml. En este ejemplo se seleccionan rutas con valores de etiqueta “nombre” como abc o xyz y con etiqueta de espacio de nombres como frequency=high.

            env:    
            - name: "ROUTE_LABELS"
              value: "name in (abc,xyz)"
            - name: "NAMESPACE_LABELS"
              value: "frequency=high"       
    
  3. Implemente el controlador NetScaler Ingress mediante el siguiente comando.

    oc create -f cpx_cic_side_car.yaml
    

Implemente el complemento de enrutador NetScaler Ingress Controller con soporte de fragmentación de enrutadores OpenShift

Para implementar un complemento de enrutador NetScaler Ingress Controller con fragmentación del enrutador, lleve a cabo los siguientes pasos:

  1. Descargue el archivo cic.yaml con el siguiente comando:

    wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/openshift/manifest/cic.yaml
    
  2. Modifique el archivo cic.yaml y especifique las etiquetas de ruta y los selectores de etiquetas de espacio de nombres como variables de entorno.

    En el siguiente ejemplo se muestra cómo especificar una etiqueta de ruta de ejemplo y una etiqueta de espacio de nombres en el archivo cic.yaml. En este ejemplo se seleccionan rutas con valores de etiqueta “nombre” como abc o xyz y con etiqueta de espacio de nombres como frequency=high.

            env:
            - name: "ROUTE_LABELS"
              value: "name in (abc,xyz)"
            - name: "NAMESPACE_LABELS"
              value: "frequency=high"
    
  3. Implemente el controlador NetScaler Ingress mediante el siguiente comando.

    oc create -f cic.yaml
    

Ejemplo: crear una ruta de OpenShift y verificar la configuración de la ruta en NetScaler VPX

En este ejemplo se muestra cómo crear una ruta OpenShift con etiquetas y verificar la configuración del fragmento del enrutador. En este ejemplo, la configuración de rutas se verifica en una implementación de NetScaler VPX.

Realice los siguientes pasos para crear una ruta de muestra con etiquetas.

  1. Defina la ruta en un archivo YAML. A continuación se presenta un ejemplo de una ruta de ejemplo denominada route.yaml.

    apiVersion: v1
    kind: Route
    metadata:
        name: web-backend-route
        namespace: default
        labels:
            sla: low
            name: abc
    spec:
        host: web-frontend.cpx-lab.org
        path: "/web-backend"
        port:
            targetPort: 80
        to:
            kind: Service
            name: web-backend
    
  2. Use el siguiente comando para implementar la ruta.

    oc create -f route.yaml
    
  3. Agregue etiquetas al espacio de nombres en el que cree la ruta.

    oc label namespace default 'frequency=high'
    

Verificar la configuración de rutas

Puede verificar la configuración de la ruta de OpenShift en un NetScaler VPX realizando los siguientes pasos:

  1. Inicie sesión en NetScaler VPX realizando lo siguiente:

    • Use un cliente SSH, como PuTTY, para abrir una conexión SSH a NetScaler VPX.
    • Inicie sesión en NetScaler VPX con credenciales de administrador.
  2. Compruebe si el grupo de servicios se crea mediante el siguiente comando.

    show serviceGroup 
    
  3. Compruebe la configuración de la ruta en NetScaler VPX en el resultado del comando show serviceGroup.

    A continuación se muestra un ejemplo de configuración de ruta del resultado del comando show serviceGroup.

    > show serviceGroup
    k8s-web-backend-route_default_80_k8s-web-backend_default_80_svc - HTTP
    State: ENABLED  Effective State: DOWN Monitor Threshold : 0
    Max Conn: 0     Max Req: 0 Max Bandwidth: 0 kbits
    Use Source IP: NO    
    Client Keepalive(CKA): NO
    TCP Buffering(TCPB): NO
    HTTP Compression(CMP): NO
    Idle timeout: Client: 180 sec    Server: 360 sec
    Client IP: DISABLED 
    Cacheable: NO
    SC: OFF
    SP: OFF
    Down state flush: ENABLED
    Monitor Connection Close : NONE
    Appflow logging: ENABLED
    ContentInspection profile name: ???
    Process Local: DISABLED
    Traffic Domain: 0
    
Implementación de NetScaler Ingress Controller con soporte de fragmentación de router OpenShift