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:
-
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
-
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"
-
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:
-
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
-
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"
-
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.
-
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
-
Use el siguiente comando para implementar la ruta.
oc create -f route.yaml
-
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:
-
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.
-
Compruebe si el grupo de servicios se crea mediante el siguiente comando.
show serviceGroup
-
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