|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
Resolución de problemas del SUSE Rancher Prime clúster de Kubernetes del servidor
Esta sección describe cómo resolver problemas en una instalación de Rancher en un clúster de Kubernetes.
Espacios de nombres relevantes
La mayor parte de la resolución de problemas se realizará en objetos de estos 3 espacios de nombres.
-
cattle-system- ampliación y pods derancher. -
traefik- pods y servicios del controlador de Ingress. -
cert-manager- pods decert-manager.
"backend por defecto - 404"
Varios factores pueden causar que el controlador de ingress no reenvíe el tráfico a tu instancia de Rancher. La mayoría de las veces se debe a una mala configuración de SSL.
Cosas a verificar
Verifica si Rancher está funcionando
Utiliza kubectl para comprobar el espacio de nombres del sistema cattle-system y ver si los pods de Rancher están en ejecución.
kubectl -n cattle-system get pods NAME READY STATUS RESTARTS AGE pod/rancher-784d94f59b-vgqzh 1/1 Running 0 10m
Si el estado no es Running, ejecuta un describe en el pod y verifica los eventos.
kubectl -n cattle-system describe pod ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 11m default-scheduler Successfully assigned rancher-784d94f59b-vgqzh to localhost Normal SuccessfulMountVolume 11m kubelet, localhost MountVolume.SetUp succeeded for volume "rancher-token-dj4mt" Normal Pulling 11m kubelet, localhost pulling image "rancher/rancher:v2.0.4" Normal Pulled 11m kubelet, localhost Successfully pulled image "rancher/rancher:v2.0.4" Normal Created 11m kubelet, localhost Created container Normal Started 11m kubelet, localhost Started container
Verifica los registros de Rancher
Utiliza kubectl para listar los pods.
kubectl -n cattle-system get pods NAME READY STATUS RESTARTS AGE pod/rancher-784d94f59b-vgqzh 1/1 Running 0 10m
Utiliza kubectl y el nombre del pod para listar los registros del pod.
kubectl -n cattle-system logs -f rancher-784d94f59b-vgqzh
El CN del certificado es "Certificado Falso del Controlador de Ingress de Kubernetes"
Utiliza tu navegador para comprobar los detalles del certificado. Si dice que el Nombre Común es "Certificado Falso del Controlador de Ingress de Kubernetes", algo puede haber salido mal al leer o emitir tu certificado SSL.
|
Si estás utilizando LetsEncrypt para emitir certificados, a veces puede tardar unos minutos en emitir el certificado. |
Comprobando problemas con los certificados emitidos por cert-manager (Generados por Rancher o LetsEncrypt)
cert-manager tiene 3 partes.
-
Pod
cert-manageren el espacio de nombrescert-manager. -
Objeto
Issueren el espacio de nombrescattle-system. -
Objeto
Certificateen el espacio de nombrescattle-system.
Trabaja hacia atrás y haz un kubectl describe en cada objeto y comprueba los eventos. Puedes rastrear lo que podría estar faltando.
Por ejemplo, hay un problema con el Emisor:
kubectl -n cattle-system describe certificate ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning IssuerNotReady 18s (x23 over 19m) cert-manager Issuer rancher not ready
kubectl -n cattle-system describe issuer ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning ErrInitIssuer 19m (x12 over 19m) cert-manager Error initializing issuer: secret "tls-rancher" not found Warning ErrGetKeyPair 9m (x16 over 19m) cert-manager Error getting keypair for CA issuer: secret "tls-rancher" not found
Comprobando problemas con tus propios certificados SSL
Tus certificados se aplican directamente al objeto Ingress en el espacio de nombres cattle-system.
Comprueba el estado del objeto Ingress y ve si está listo.
kubectl -n cattle-system describe ingress
Si está listo y el SSL aún no funciona, puede que tengas un certificado o secreto mal formado.
Comprueba los registros del controlador nginx-ingress. Debido a que el controlador nginx-ingress tiene múltiples contenedores en su pod, necesitarás especificar el nombre del contenedor.
kubectl logs -n traefik traefik-6b94b8b688-bngw2 ... W0705 23:04:58.240571 7 backend_ssl.go:49] error obtaining PEM from secret cattle-system/tls-rancher-ingress: error retrieving secret cattle-system/tls-rancher-ingress: secret cattle-system/tls-rancher-ingress was not found
No hay coincidencias para el tipo "Emisor"
La opción de configuración SSL que has elegido requiere que cert-manager esté instalado antes de instalar Rancher, de lo contrario se muestra el siguiente error:
Error: validation failed: unable to recognize "": no matches for kind "Issuer" in version "certmanager.k8s.io/v1alpha1"
Instala cert-manager e intenta instalar Rancher de nuevo.
El canal Pods muestra LISTO 2/3
La causa más común de este problema es que el puerto 8472/UDP no está abierto entre los nodos. Revisa tu firewall local, el enrutamiento de red o los grupos de seguridad.
Una vez resuelto el problema de red, los canal pods deberían agotar el tiempo de espera y reiniciarse para establecer sus conexiones.
Error al marcar a /var/run/docker.sock: ssh: rechazado: administrativamente prohibido (fallo al abrir)
Algunas causas de este error incluyen:
-
El usuario especificado para conectarse no tiene permiso para acceder al socket de Docker. Esto se puede comprobar iniciando sesión en el host y ejecutando el comando
docker ps:$ ssh user@server user@server$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Consulta Gestionar Docker como un usuario no root cómo configurarlo correctamente.
-
Al usar RedHat/CentOS como sistema operativo, no puedes usar el usuario
rootpara conectarte a los nodos debido a Bugzilla #1527565. Necesitarás añadir un usuario separado y configurarlo para acceder al socket de Docker. Consulta Gestionar Docker como un usuario no root cómo configurarlo correctamente. -
La versión del servidor SSH no es la versión 6.7 o superior. Esto es necesario para que el reenvío de sockets funcione, lo cual se utiliza para conectarse al socket de Docker a través de SSH. Esto se puede comprobar utilizando
sshd -Ven el host al que te estás conectando, o usando netcat:$ nc xxx.xxx.xxx.xxx 22 SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.10
Error al intentar conectar por ssh usando la dirección [xxx.xxx.xxx.xxx:xx]: ssh: fallo en el proceso de autenticación: ssh: no se puede autenticar, métodos intentados [ninguno, clave pública], no quedan métodos soportados.
El archivo de clave especificado como ssh_key_path no es correcto para acceder al nodo. Verifica si especificaste el ssh_key_path correcto para el nodo y si especificaste el usuario correcto para conectarte.
No se puede conectar al demonio de Docker en unix:///var/run/docker.sock. ¿Está en funcionamiento el demonio de Docker?
El nodo no es accesible en el address y port configurados.
El agente informa errores de TLS
Al utilizar Rancher, puede encontrar mensajes de error del fleet-agent, system-agent o cluster-agent, como el mensaje a continuación:
tls: failed to verify certificate: x509: failed to load system roots and no roots provided; readdirent /dev/null: not a directory
Esto ocurre cuando Rancher se configuró con agent-tls-mode establecido en strict, pero no pudo encontrar cacerts en la configuración de cacert. Para resolver el problema, establece el agent-tls-mode en system-store, o sube el CA para Rancher como se describe en Añadiendo secretos TLS.
El despliegue del nuevo clúster está atascado en "Esperando que el agente se registre"
Cuando Rancher tiene agent-tls-mode establecido en strict, los nuevos clústeres pueden fallar en la provisión y reportar un mensaje de error genérico "Esperando que el agente se registre". La causa raíz de esto es similar al caso anterior de errores de TLS: el agente de Rancher no puede determinar qué CA está utilizando Rancher (o no puede verificar que el certificado de Rancher esté realmente firmado por la autoridad de certificación especificada).
Para resolver el problema, establece el agent-tls-mode en system-store o carga el CA para Rancher como se describe en Añadiendo secretos TLS.