Solución de problemas
Utilice las indicaciones que se proporcionan aquí para solucionar los problemas que pueda encontrar al instalar y usar Trident.
|
|
Para obtener ayuda con Trident, cree un paquete de soporte usando tridentctl logs -a -n trident y envíelo al soporte de NetApp .
|
Solución de problemas generales
-
Si la cápsula Trident no se eleva correctamente (por ejemplo, cuando la cápsula Trident se queda atascada en el
ContainerCreatingfase con menos de dos contenedores listos), en ejecuciónkubectl -n trident describe deployment tridentykubectl -n trident describe pod trident--**puede proporcionar información adicional. Obtención de registros de kubelet (por ejemplo, mediantejournalctl -xeu kubelet) también puede ser útil. -
Si los registros de Trident no contienen suficiente información, puede intentar habilitar el modo de depuración para Trident pasando el parámetro correspondiente.
-dSe añade una bandera al parámetro de instalación según la opción de instalación seleccionada.A continuación, confirme que la depuración está configurada mediante
./tridentctl logs -n tridenty buscandolevel=debug msgen el registro.- Instalado con el operador
-
kubectl patch torc trident -n <namespace> --type=merge -p '{"spec":{"debug":true}}'Esto reiniciará todos los pods de Trident , lo que puede tardar varios segundos. Puedes comprobarlo observando la columna 'EDAD' en la salida de
kubectl get pod -n trident.Para Trident 20.07 y 20.10 utilice
tproven lugar detorc. - Instalado con Helm
-
helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true`
- Instalado con tridentctl
-
./tridentctl uninstall -n trident ./tridentctl install -d -n trident
-
También puedes obtener registros de depuración para cada backend incluyendo
debugTraceFlagsen la definición de tu backend. Por ejemplo, incluirdebugTraceFlags: {"api":true, "method":true,}para obtener las llamadas a la API y los recorridos de métodos en los registros de Trident . Los sistemas backend existentes pueden tenerdebugTraceFlagsconfigurado con untridentctl backend update. -
Al utilizar Red Hat Enterprise Linux CoreOS (RHCOS), asegúrese de que
iscsidEstá habilitado en los nodos de trabajo y se inicia de forma predeterminada. Esto se puede hacer utilizando OpenShift MachineConfigs o modificando las plantillas de Ignition. -
Un problema común que podría encontrar al usar Trident con "Azure NetApp Files" Se produce cuando los secretos del inquilino y del cliente provienen de un registro de aplicación con permisos insuficientes. Para obtener una lista completa de los requisitos de Trident , consulte"Azure NetApp Files" configuración.
-
Si hay problemas al montar un panel fotovoltaico en un contenedor, asegúrese de que
rpcbindEstá instalado y en funcionamiento. Utilice el gestor de paquetes requerido para el sistema operativo anfitrión y compruebe sirpcbindestá en funcionamiento. Puedes comprobar el estado derpcbindservicio mediante la ejecución de unsystemctl status rpcbindo su equivalente. -
Si un backend de Trident informa que está en el
failedAunque este estado haya funcionado anteriormente, es probable que se deba a un cambio en las credenciales de SVM/administrador asociadas con el backend. Actualizando la información del backend usandotridentctl update backendo bien, hacer rebotar el pod Trident solucionará este problema. -
Si encuentra problemas de permisos al instalar Trident con Docker como entorno de ejecución de contenedores, intente la instalación de Trident con
--in cluster=falsebandera. Esto no utilizará un pod de instalación y evitará los problemas de permisos observados debido atrident-installerusuario. -
Utilice el
uninstall parameter <Uninstalling Trident>para limpiar después de una ejecución fallida. Por defecto, el script no elimina los CRD que han sido creados por Trident, lo que hace que sea seguro desinstalarlo y volverlo a instalar incluso en una implementación en ejecución. -
Si quieres volver a una versión anterior de Trident, primero ejecuta el
tridentctl uninstallcomando para eliminar Trident. Descarga el archivo deseado "Versión Trident" e instalar usando eltridentctl installdominio. -
Tras una instalación correcta, si un tubo de PVC queda atascado en el
Pendingfase, corriendokubectl describe pvcpuede proporcionar información adicional sobre por qué Trident no pudo aprovisionar un PV para este PVC.
Despliegue fallido de Trident utilizando el operador
Si está implementando Trident utilizando el operador, el estado de TridentOrchestrator cambios de Installing a Installed . Si observas el Failed Si el operador no puede recuperarse por sí mismo, revise los registros del operador ejecutando el siguiente comando:
tridentctl logs -l trident-operator
El seguimiento de los registros del contenedor trident-operator puede indicar dónde reside el problema. Por ejemplo, uno de esos problemas podría ser la incapacidad de obtener las imágenes de contenedor necesarias de los registros ascendentes en un entorno aislado.
Para comprender por qué fracasó la instalación de Trident , debería echar un vistazo a… TridentOrchestrator estado.
kubectl describe torc trident-2
Name: trident-2
Namespace:
Labels: <none>
Annotations: <none>
API Version: trident.netapp.io/v1
Kind: TridentOrchestrator
...
Status:
Current Installation Params:
IPv6:
Autosupport Hostname:
Autosupport Image:
Autosupport Proxy:
Autosupport Serial Number:
Debug:
Image Pull Secrets: <nil>
Image Registry:
k8sTimeout:
Kubelet Dir:
Log Format:
Silence Autosupport:
Trident Image:
Message: Trident is bound to another CR 'trident'
Namespace: trident-2
Status: Error
Version:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Error 16s (x2 over 16s) trident-operator.netapp.io Trident is bound to another CR 'trident'
Este error indica que ya existe un TridentOrchestrator que se utilizó para instalar Trident. Dado que cada clúster de Kubernetes solo puede tener una instancia de Trident, el operador garantiza que en cualquier momento dado solo exista una instancia activa. TridentOrchestrator que puede crear.
Además, observar el estado de las cápsulas Trident a menudo puede indicar si algo no funciona correctamente.
kubectl get pods -n trident NAME READY STATUS RESTARTS AGE trident-csi-4p5kq 1/2 ImagePullBackOff 0 5m18s trident-csi-6f45bfd8b6-vfrkw 4/5 ImagePullBackOff 0 5m19s trident-csi-9q5xc 1/2 ImagePullBackOff 0 5m18s trident-csi-9v95z 1/2 ImagePullBackOff 0 5m18s trident-operator-766f7b8658-ldzsv 1/1 Running 0 8m17s
Se puede observar claramente que los pods no pueden inicializarse completamente porque no se han descargado una o más imágenes de contenedor.
Para solucionar el problema, debes editar el TridentOrchestrator CR. Alternativamente, puede eliminar TridentOrchestrator y crear una nueva con la definición modificada y precisa.
Despliegue fallido de Trident utilizando tridentctl
Para ayudar a averiguar qué salió mal, podría volver a ejecutar el instalador usando el-d argumento, que activará el modo de depuración y le ayudará a comprender cuál es el problema:
./tridentctl install -n trident -d
Tras solucionar el problema, puede limpiar la instalación del siguiente modo y, a continuación, ejecutar el programa. tridentctl install comando de nuevo:
./tridentctl uninstall -n trident INFO Deleted Trident deployment. INFO Deleted cluster role binding. INFO Deleted cluster role. INFO Deleted service account. INFO Removed Trident user from security context constraint. INFO Trident uninstallation succeeded.
Eliminar completamente Trident y CRD
Puedes eliminar completamente Trident y todos los CRD creados y los recursos personalizados asociados.
|
|
Esto no se puede deshacer. No haga esto a menos que desee una instalación completamente nueva de Trident. Para desinstalar Trident sin eliminar los CRD, consulte"Desinstalar Trident" . |
Para desinstalar Trident y eliminar por completo los CRD utilizando el operador Trident :
kubectl patch torc <trident-orchestrator-name> --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
Para desinstalar Trident y eliminar completamente los CRD usando Helm:
kubectl patch torc trident --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
Para eliminar completamente los CRD después de desinstalar Trident, utilice tridentctl
tridentctl obliviate crd
Fallo en la desorganización del nodo NVMe con espacios de nombres de bloques sin formato RWX en Kubernetes 1.26
Si está ejecutando Kubernetes 1.26, la desinstalación de nodos podría fallar al usar NVMe/TCP con espacios de nombres de bloques sin formato RWX. Los siguientes escenarios ofrecen soluciones alternativas al fallo. Como alternativa, puede actualizar Kubernetes a la versión 1.27.
Se eliminó el espacio de nombres y el pod.
Considere un escenario en el que tiene un espacio de nombres administrado Trident (volumen persistente NVMe) conectado a un pod. Si elimina el espacio de nombres directamente desde el backend de ONTAP , el proceso de desensamblaje se bloquea después de intentar eliminar el pod. Este escenario no afecta al clúster de Kubernetes ni a otros funcionamientos.
Desmonte el volumen persistente (correspondiente a ese espacio de nombres) del nodo respectivo y elimínelo.
LIF de datos bloqueados
If you block (or bring down) all the dataLIFs of the NVMe Trident backend, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node. .Solución alternativa Active dataLIFS para restaurar la funcionalidad completa.
Asignación de espacio de nombres eliminada
If you remove the `hostNQN` of the worker node from the corresponding subsystem, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node. .Solución alternativa Añade el `hostNQN` Volvamos al subsistema.
Los clientes NFSv4.2 informan "argumento no válido" después de actualizar ONTAP cuando esperaban que "v4.2-xattrs" estuviera habilitado
Después de actualizar ONTAP, los clientes NFSv4.2 pueden informar errores de "argumento inválido" al intentar montar exportaciones NFSv4.2. Este problema ocurre cuando el v4.2-xattrs La opción no está habilitada en el SVM. .Solución alternativa Habilite la v4.2-xattrs opción en SVM o actualizar a ONTAP 9.12.1 o posterior, donde esta opción está habilitada de forma predeterminada.