Procedimientos detallados para configurar la topología de malla de servicios

Last published : Oct 02, 2026
Los requisitos previos para implementar la topología de malla de servicios están disponibles en Configuración del gráfico de servicios.

Configurar rutas estáticas en NetScaler Console

Dentro del clúster de Kubernetes, todos los pods en contenedores utilizan una red superpuesta. No es posible establecer la comunicación directamente utilizando esas direcciones IP privadas. Para habilitar la comunicación de NetScaler Console al clúster de Kubernetes, debe configurar el enrutamiento estático en NetScaler Console.
Nota
Si utiliza un agente local, asegúrese de configurar rutas estáticas en el agente. Con un cliente SSH, inicie sesión en el agente de NetScaler y configure las rutas estáticas.
Considere que tiene las siguientes direcciones IP para su clúster de Kubernetes:
  • Maestro de Kubernetes – 101.xx.xx.112
  • Trabajador de Kubernetes 1 – 101.xx.xx.111
  • Trabajador de Kubernetes 2 – 101.xx.xx.110
En el maestro de Kubernetes, ejecute el siguiente comando para identificar la red de pods para realizar el enrutamiento estático:
kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"
A continuación, se muestra un ejemplo de salida después de ejecutar el comando:
Comando de ejemplo
  1. Con un cliente SSH, inicie sesión en NetScaler Console
  2. Configure el enrutamiento estático usando el comando route add -net <public IP address range> <Kubernetes IP address>
    Por ejemplo:
    route add -net 192.168.0.0/24 101.xx.xx.112
    route add -net 192.168.1.0/24 101.xx.xx.111
    route add -net 192.168.2.0/24 101.xx.xx.110
  3. verificar la configuración usando netstat -rn
    enrutamiento estático
  4. Agregue estos comandos de ruta en el archivo /mpsconfig/svm.conf.
    1. En NetScaler Console, acceda al archivo svm.conf usando el siguiente comando:
      vim /mpsconfig/svm.conf
    2. Agregue las rutas estáticas en el archivo svm.conf.
      Por ejemplo, route add -net 192.168.0.0/24 101.xx.xx.112.

Configure los parámetros requeridos

En el maestro de Kubernetes:
  1. Cree un secreto con las credenciales del agente en cada espacio de nombres donde CPX esté implementado como puerta de enlace de entrada / sidecar.
    kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n <namespace>
  2. helm repo add citrix https://citrix.github.io/citrix-helm-charts/
  3. Implementar NetScaler CPX como puerta de enlace de entrada
    helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace <namespace> --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=XX:00:X1:00:XX:0X:X0,ADMSettings.ADMIP=<xx.xx.xx.xx>, ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30
    La siguiente tabla enumera los parámetros configurables en el gráfico de Helm y sus valores predeterminados:
    Parámetro Descripción Predeterminado Opcional/Obligatorio (helm)
    citrixCPX NetScaler CPX FALSE Obligatorio para NetScaler CPX
    xDSAdaptor.image Imagen del contenedor del adaptador Citrix xDS quay.io/citrix/citrix-istio-adaptor:1.2.1 Obligatorio
    ADMSettings.ADMIP Dirección IP de NetScaler Console nulo Obligatorio para NetScaler CPX
    ADMSettings.ADMFingerPrint La huella digital de NetScaler Console. Vaya a Configuración > Administración y haga clic en Ver huella digital en Configuraciones del sistema nulo Opcional
    ingressGateway.EULA Términos y condiciones del Acuerdo de licencia de usuario final (EULA). Si es sí, el usuario acepta los términos y condiciones del EULA. NO Obligatorio para NetScaler CPX
    ingressGateway.image Imagen de NetScaler CPX designada para ejecutarse como Ingress Gateway quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 Obligatorio para NetScaler CPX
  4. Implemente el inyector de sidecar de Citrix.
    helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --version 1.2.1 --namespace <namespace> set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<xx.xx.xx.xx>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30
    La siguiente tabla enumera los parámetros configurables en el gráfico de Helm y sus valores predeterminados:
    Parámetro Descripción Valor predeterminado
    ADMSettings.ADMIP La dirección IP de NetScaler Console NULO
    cpxProxy.image Imagen de NetScaler CPX utilizada como proxy de sidecar quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30
    cpxProxy.imagePullPolicy Política de extracción de imágenes para NetScaler IfNotPresent
    cpxProxy.EULA Términos y condiciones del Acuerdo de licencia de usuario final (EULA). Si es así, el usuario acepta los términos y condiciones del EULA. NO
    cpxProxy.cpxSidecarMode Variable de entorno para NetScaler CPX. Indica si NetScaler CPX se está ejecutando en modo sidecar o no. SÍ
  5. Establezca la etiqueta en cualquier espacio de nombres que necesite la inyección de sidecar de CPX.
    kubectl label namespace <app-namespace> cpx-injection=enabled
    Después de realizar los pasos 3 y 5, puede ver que NetScaler CPX está registrado en NetScaler Console.

Implementar una aplicación de ejemplo

Considere que desea implementar las siguientes aplicaciones:
Implementar aplicaciones de ejemplo
Realice el siguiente procedimiento para implementar una aplicación de ejemplo:
  1. kubectl create namespace citrix-system
  2. kubectl create namespace bookinfo
  3. kubectl label namespace bookinfo cpx-injection=enabled
  4. kubectl create secret generic admlogin --from-literal=username=<uername> --from-literal=password=<password> -n citrix-system
    Nota
    Puede introducir un nombre de usuario y una contraseña de su elección.
  5. kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n bookinfo
    Nota
    Puede introducir un nombre de usuario y una contraseña de su elección.
  6. helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace citrix-system --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<agent IP address>,ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30
    Nota
    Debe proporcionar la huella digital de su consola y la dirección IP del agente o de la consola
  7. helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --namespace citrix-system --set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30
    Nota
    Debe proporcionar la huella digital de su consola y la dirección IP del agente o de la consola.
  8. helm install bookinfo bookinfo/ --namespace bookinfo --set citrixIngressGateway.namespace=citrix-system

Añadir clúster de Kubernetes en NetScaler Console

Para añadir el clúster de Kubernetes:
  1. Inicie sesión en NetScaler Console con credenciales de administrador.
  2. Vaya a Orquestación > Kubernetes > Clúster. Se muestra la página Clústeres.
  3. Haga clic en Agregar.
  4. En la página Agregar clúster, especifique los siguientes parámetros:
    1. Nombre: especifique un nombre de su elección.
    2. URL del servidor API: puede obtener los detalles de la URL del servidor API desde el nodo maestro de Kubernetes.
      1. En el nodo maestro de Kubernetes, ejecute el comando kubectl cluster-info.
        URL del servidor API
      2. Introduzca la URL que se muestra para “Kubernetes master is running at.”
    3. Token de autenticación: especifique el token de autenticación. El token de autenticación es necesario para validar el acceso para la comunicación entre el clúster de Kubernetes y NetScaler Console. Para generar un token de autenticación:
      En el nodo maestro de Kubernetes:
      1. Utilice el siguiente YAML para crear una cuenta de servicio:
        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
      2. Ejecute kubectl create -f <yaml file>.
        La cuenta de servicio se ha creado.
      3. Ejecute kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name> para vincular el rol de clúster a la cuenta de servicio.
        La cuenta de servicio ahora tiene acceso a todo el clúster.
        Se genera automáticamente un token al crear la cuenta de servicio.
      4. Ejecute kubectl describe sa <name> para ver el token.
      5. Para obtener la cadena secreta, ejecute kubectl describe secret <token-name>.
        Generar token
    4. Seleccione el agente de la lista.
      Nota
      Si utiliza un agente, asegúrese de seleccionar el mismo agente que agregó en el YAML de CPX.
    5. Haga clic en Crear.
      agregar clúster

Habilitar la selección automática de servidores virtuales para la concesión de licencias

Nota
Asegúrese de tener suficientes licencias de servidor virtual. Para obtener más información, consulte Licencias
Después de añadir un clúster de Kubernetes en NetScaler Console, debe asegurarse de seleccionar automáticamente los servidores virtuales para la concesión de licencias. Los servidores virtuales deben tener licencia para mostrar datos en Service Graph. Para seleccionar automáticamente los servidores virtuales:
  1. Vaya a Configuración > Configuración de licencias y análisis.
  2. En Resumen de licencias de servidor virtual, habilite Seleccionar automáticamente servidores virtuales y Seleccionar automáticamente servidores virtuales no direccionables.
    Seleccionar automáticamente servidor virtual

Habilitar la configuración de transacciones web y transacciones TCP

Después de añadir el clúster de Kubernetes y habilitar la selección automática de servidores virtuales, cambie la Configuración de transacciones web y la Configuración de transacciones TCP a Todo.
  1. Vaya a Configuración > Configuración de análisis.
    Se muestra la página Configuración de análisis.
  2. Haga clic en Habilitar funciones para análisis.
  3. En Configuración de transacciones web, seleccione Todo.
  4. En Configuración de transacciones TCP, seleccione Todo.
    TCP
  5. Haga clic en Aceptar.

Enviar tráfico a los microservicios

A continuación, debe enviar tráfico a los microservicios para que el gráfico de servicios se rellene en NetScaler Console.
  1. Determine la IP y el puerto de entrada
    export INGRESS_HOST=$(kubectl get pods -l app=citrix-ingressgateway -n citrix-system -o 'jsonpath={.items[0].status.hostIP}')
    export INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
    export SECURE_INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
  2. Acceda a la aplicación front-end Bookinfo mediante cURL. El servicio productpage debe devolver una respuesta 200 OK.
    curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage
    curl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage
  3. Visite https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage desde un navegador.
    Se muestra la página de Bookinfo.
  4. Asegúrese de que $INGRESS_HOST y $SECURE_INGRESS_PORT se sustituyen por una dirección IP y un valor de puerto.
Después de enviar tráfico a los microservicios, el gráfico de servicios se rellena en aproximadamente 10 minutos.
Ejemplo
Con el gráfico de servicios, puede analizar varios detalles del servicio, como métricas, errores, etc. Para obtener más información, consulte Gráfico de servicios.