Solución de problemas de NetScaler CPX

Este documento explica cómo solucionar los problemas que puede encontrar al usar NetScaler CPX. Con este documento, puede recopilar registros para determinar las causas y aplicar soluciones provisionales para algunos de los problemas comunes relacionados con la instalación y configuración de NetScaler CPX.

  • ¿Cómo puedo ver los registros de NetScaler CPX?

    Puede ver los registros de NetScaler CPX usando el comando kubectl logs si NetScaler CPX se implementa con la opción tty:true. Puede ejecutar el siguiente comando para mostrar los registros:

     kubectl logs <pod-name> [-c <container-name>] [-n <namespace-name>]
    

    Ejemplo,

     kubectl logs cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adc
    

    El siguiente es un ejemplo de la implementación del pod de NetScaler CPX con la opción tty:true:

       containers:
         - name: cpx-ingress
           image: "quay.io/citrix/citrix-k8s-cpx-ingress:13.0-58.30"
           tty: true
           securityContext:
              privileged: true
           env:
    
     <!--NeedCopy-->
    

    Puede encontrar más registros de arranque en el archivo /cpx/log/boot.log del sistema de archivos de NetScaler CPX.

    Nota: Para obtener el nombre del pod, ejecute el comando kubectl get pods -o wide.

  • ¿Cómo puedo recopilar el paquete de soporte técnico de NetScaler CPX?

    Puede ejecutar el siguiente comando en la interfaz de shell del nodo maestro de Kubernetes para recopilar el paquete de soporte técnico de NetScaler CPX:

     kubectl exec <cpx-pod-name> [-c <cpx-container-name>] [-n <namespace-name>] /var/netscaler/bins/cli_script.sh "show techsupport"
    

    Puede ver el paquete de soporte técnico en el directorio /var/tmp/support del sistema de archivos de NetScaler CPX. Use scp o kubectl cp para copiar el paquete de soporte técnico de NetScaler CPX al destino deseado.

    Ejemplo:

     root@localhost# kubectl exec cpx-ingress1-55b9b6fc75-t5kc6 -c cpx -n citrix-adc /var/netscaler/bins/cli_script.sh "show techsupport"
     exec: show techsupport
       Scope:  NODE
     Done
     root@localhost# kubectl cp cpx-ingress1-55b9b6fc75-t5kc6:var/tmp/support/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz -c cpx
     root@localhost# ll /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz
     -rw-r--r-- 1 root root 1648109 Aug 31 13:23 /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz
    
  • ¿Por qué el pod de NetScaler CPX se queda atascado durante el arranque?

    Puede comprobar el estado del pod usando el comando kubectl describe pods. Ejecute el siguiente comando para conocer el estado del pod:

     kubectl describe pods <pod-name> [-c <container-name>] [-n <namespace-name>]
    

    Ejemplo:

     kubectl describe pods cpx-ingress1-69b9b8c648-t8bgn
    

    Si los eventos del pod muestran que el contenedor se ha iniciado, debe comprobar los registros del pod.

  • ¿Cómo copio archivos entre el pod de NetScaler CPX y el nodo maestro de Kubernetes?

    Se recomienda utilizar la función de montaje de volumen de Docker para montar el directorio /cpx en el sistema de archivos del host. Si un contenedor de NetScaler CPX sale con volcados de memoria (core-dumps), los registros y otros datos importantes están disponibles en el punto de montaje.

    Puede utilizar cualquiera de los siguientes comandos para copiar archivos entre el pod de NetScaler CPX y el nodo maestro de Kubernetes:

    kubectl cp: Puede ejecutar el siguiente comando para copiar archivos del pod al nodo:

     kubectl cp <pod-name>:<absolute-src-path> <dst-path> [-c <container-name>] [-n <namespace-name>]
    

    Ejemplo:

     root@localhost:~# kubectl cp cpx-ingress-596d56bb6-zbx6h:cpx/log/boot.log /tmp/cpx-boot.log -c cpx-ingress
     root@localhost:~# ll /tmp/cpx-boot.log
     -rw-r--r-- 1 root root 7880 Sep 11 00:07 /tmp/cpx-boot.log
    

    scp: Puede usar el comando para copiar archivos entre el pod de NetScaler CPX y el nodo de Kubernetes. Ejecute el siguiente comando para copiar archivos del pod al nodo. Cuando se le solicite la contraseña, proporcione la contraseña del usuario SSH:

     scp <user>@<pod-ip>:<absolute-src-path> <dst-path>
    

    Ejemplo:

     root@localhost:~# scp nsroot@192.168.29.198:/cpx/log/boot.log /tmp/cpx-boot.log
     nsroot@192.168.29.198's password:
     boot.log
     100% 7880     5.1MB/s   00:00
     root@localhost:~#
    
  • ¿Cómo capturo paquetes en NetScaler CPX?

    Para capturar paquetes en NetScaler CPX, inicie la interfaz de shell de NetScaler CPX mediante el comando kubectl exec. Ejecute el siguiente comando para iniciar la interfaz de shell del pod de NetScaler CPX:

         kubectl exec -it pod-name [-c container-name] [-n namespace-name] bash
    

    Ejemplo:

         kubectl exec -it cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adc bash
    

    Y, ejecute el siguiente comando para iniciar la captura de paquetes:

         cli_script.sh “start nstrace -size 0”
    

    Si desea detener la captura de paquetes en curso, ejecute el siguiente comando:

         cli_script.sh “stop nstrace”
    

    Puede ver los paquetes capturados en un archivo .cap en el directorio /cpx/nstrace/time-stamp del sistema de archivos de NetScaler CPX.

  • ¿Por qué el servidor de licencias no está configurado incluso cuando NetScaler CPX se implementa con la variable de entorno LS_IP=<ADM-IP>?

    Asegúrese de que el servidor de licencias sea accesible desde el nodo en el que está implementado NetScaler CPX. Puede usar el comando ping <ADM-IP> para verificar la conectividad desde el nodo NetScaler CPX a Citrix ADM.

    Si Citrix ADM es accesible desde el nodo, debe verificar los registros de configuración del servidor de licencias en el archivo /cpx/log/boot.log. También puede comprobar la configuración del servidor de licencias utilizando el siguiente comando en la interfaz de shell del pod de NetScaler CPX:

     cli_script.sh "show licenseserver"
    

    Ejemplo:

     root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show licenseserver"
     exec: show licenseserver
     ServerName:  10.106.102.199Port:  27000 Status:  1   Grace:  0  Gptimeleft:  720
     Done
    
  • ¿Por qué no se configura la licencia agrupada en NetScaler CPX incluso después de una configuración exitosa del servidor de licencias en NetScaler CPX?

    verificar los registros de configuración de licencias en el archivo /cpx/log/boot.log. También puede verificar la licencia agrupada configurada en NetScaler CPX utilizando el siguiente comando en la interfaz de shell del pod de NetScaler CPX:

     cli_script.sh “show capacity”
    

    Ejemplo,

     root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show capacity"
     exec: show capacity
     Actualbandwidth:  1000  MaxVcpuCount:  2  Edition:  Platinum      Unit:  Mbps   Bandwidth:  0`  `Maxbandwidth:  40000        Minbandwidth:  20       Instancecount:  1
     Done
    

    Además, asegúrese de que los archivos de licencia necesarios se hayan cargado en el servidor de licencias. También puede verificar las licencias disponibles en el servidor de licencias una vez que se haya configurado correctamente en NetScaler CPX utilizando el siguiente comando. Ejecute el comando en la interfaz de shell del pod de NetScaler CPX:

     cli_script.sh “sh licenseserverpool”
    

    Ejemplo:

     root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show licenseserverpool"
     exec: show licenseserverpool
         Instance Total                     : 5
         Instance Available                 : 4
         Standard Bandwidth Total           : 0 Mbps
         Standard Bandwidth Availabe        : 0 Mbps
         Enterprise Bandwidth Total         : 0 Mbps
         Enterprise Bandwidth Available     : 0 Mbps
         Platinum Bandwidth Total           : 10.00 Gbps
         Platinum Bandwidth Available       : 9.99 Gbps
         CP1000 Instance Total              : 100
         CP1000 Instance Available          : 100
       Done
     <!--NeedCopy-->
    
  • ¿Por qué las llamadas a la API de NITRO reciben una respuesta de Conexión rechazada de NetScaler CPX?

    El puerto predeterminado para las API de NITRO es 9080 (no seguro) y 9443 (seguro) a partir de la versión 12.1 de NetScaler CPX. Asegúrese de que el puerto NITRO de NetScaler CPX al que intenta acceder esté expuesto en el pod. Puede ejecutar el comando kubectl describe para ver el puerto expuesto y mapeado del contenedor NetScaler CPX en la sección del contenedor NetScaler CPX:

     kubectl describe pods <pod-name> | grep -i port
    

    Ejemplo:

          ng472 | grep -i port
             Ports:          80/TCP, 443/TCP, 9080/TCP, 9443/TCP
             Host Ports:     0/TCP, 0/TCP, 0/TCP, 0/TCP
               NS_HTTP_PORT:            9080
               NS_HTTPS_PORT:           9443
             Port:          <none>
             Host Port:     <none>
               NS_PORT:                 80
     <!--NeedCopy-->
    
  • ¿Por qué el proceso NSPPE en NetScaler CPX consume la mayor parte del uso de la CPU incluso cuando hay poco o ningún tráfico?

    Si NetScaler CPX se implementa con la variable de entorno CPX_CONFIG=’{“YIELD”:”NO”}', el proceso NSPPE consume el 100 por ciento del uso de la CPU incluso cuando hay poco o ningún tráfico. Si no desea que el proceso NSPPE consuma el uso de la CPU, debe implementar NetScaler CPX sin la variable de entorno CPX_CONFIG=’{“YIELD”:”NO”}. Por defecto, el proceso NSPPE en CPX está configurado para no acaparar ni consumir el uso de la CPU.

  • ¿Por qué NetScaler CPX no aparece en Citrix ADM incluso cuando se implementó con las variables de entorno necesarias para el registro en Citrix ADM?

    Puede encontrar los registros para el registro de NetScaler CPX con Citrix ADM en el archivo /cpx/log/boot.log en el sistema de archivos de NetScaler CPX.

    Puede verificar la accesibilidad de la dirección IP de Citrix ADM desde el pod de NetScaler CPX usando el comando ping. Además, asegúrese de que todas las variables de entorno necesarias para el registro de Citrix ADM estén configuradas para el contenedor de NetScaler CPX.

    • NS_MGMT_SERVER=<ADM-IP>
    • NS_MGMT_FINGER_PRINT=<ADM-Fingerprint>
    • HOST=<Node-IP>
    • NS_HTTP_PORT=<Mapped-HTTP-Port-on-Node>
    • NS_HTTPS_PORT=<Mapped-HTTPS-Port-on-Node>
    • NS_SSH_PORT=<Mapped-SSH-Port-on-Node>
    • NS_SNMP_PORT=<Mapped-SNMP-Port-on-Node>
    • NS_ROUTABLE=0 (La dirección IP del pod de NetScaler CPX no es enrutable desde el exterior.)
  • ¿Por qué cli_script.sh muestra el mensaje de error Nombre de usuario o contraseña no válidos después de cambiar la contraseña del usuario nsroot?

    El comando cli_script.sh es una utilidad envoltorio para NSCLI en NetScaler CPX. Ejecuta el primer argumento como cadena de comando o ruta de archivo y el segundo argumento es opcional, que son las credenciales. Si se cambia la contraseña del usuario nsroot, debe proporcionar las credenciales como segundo argumento a cli_script.sh. Puede ejecutar el siguiente comando para ejecutar NSCLI con credenciales:

     cli_script.sh “<command>” “:<username>:<password>”
    

    Ejemplo:

     root@087a1e34642d:/# cli_script.sh "show ns ip"
     exec: show ns ip
    
     ERROR: Invalid username or password
    
     root@087a1e34642d:/# cli_script.sh "show ns ip" ":nsroot:nsroot123"
    
     exec: show ns ip
    
     Ipaddress        Traffic Domain         Type             Mode     Arp     Icmp     Vserver  State
     --------------   ----                   ----             ---     ----     -------  ------   -----
     172.17.0.3       0                   NetScaler IP     Active   Enabled  Enabled  NA       Enabled
     192.0.0.1        0                   SNIP             Active   Enabled  Enabled  NA       Enabled
     Done
    
Solución de problemas de NetScaler CPX