Ingress Controller de Citrix ADC

Implementar el Citrix Ingress Controller con soporte para fragmentación de enrutadores OpenShift

Lafragmentación de enrutadores OpenShift permite distribuir un conjunto de rutas entre varios enrutadores OpenShift. De forma predeterminada, un enrutador 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.

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

  • Citrix ADC CPX implementado como enrutador OpenShift junto con el Citrix Ingress Controller dentro del clúster
  • Citrix Ingress Controller como complemento de enrutador para Citrix ADC MPX o VPX implementado fuera del clúster

Para configurar la fragmentación del enrutador para una implementación de Citrix ADC en OpenShift, se requiere una instancia de Citrix Ingress Controller por partición. La instancia del Citrix Ingress Controller se implementa con etiquetas de ruta o espacio de nombres o ambas como variables de entorno en función de los criterios requeridos para la fragmentación. Cuando el Citrix 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 él. Si la ruta cumple los criterios, se aplica la configuración adecuada a Citrix ADC; 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 Citrix Ingress Controller 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 que cambia las etiquetas, el fragmento del enrutador se revalida y, en función del cambio, el Citrix Ingress Controller actualiza la configuración en Citrix ADC.

Implementar Citrix ADC 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 Citrix Ingress Controller mediante el siguiente comando.

    oc create -f cpx_cic_side_car.yaml
    

Implementar el complemento de enrutador de Citrix Ingress Controller con soporte para fragmentación de enrutadores OpenShi

Para implementar un complemento de enrutador de Citrix Ingress Controller con fragmentación de enrutadores, 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 Citrix Ingress Controller mediante el siguiente comando.

    oc create -f cic.yaml
    

Ejemplo: crear una ruta de OpenShift y verificar la configuración de la ruta en Citrix ADC 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 Citrix ADC 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 Citrix ADC VPX realizando los siguientes pasos:

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

    • Use un cliente SSH, como PuTTY, para abrir una conexión SSH a Citrix ADC VPX.
    • Inicie sesión en Citrix ADC 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 Citrix ADC 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
    
Implementar el Citrix Ingress Controller con soporte para fragmentación de enrutadores OpenShift