Reparación de hosts de GPU
Descubra cómo configurar y utilizar la reparación de host de GPU para nodos de trabajador de GPU gestionados en clusters creados con Kubernetes Engine (OKE).
La reparación de hosts de GPU le ayuda a responder a condiciones específicas relacionadas con el hardware en nodos de trabajador de GPU con hardware dedicado gestionados elegibles en pools de nodos gestionados. Cuando un nodo es elegible para reparación, OKE coordina el flujo de trabajo de reparación. En primer lugar, el flujo de trabajo hace que el nodo no esté disponible para nuevas cargas de trabajo e intenta vaciar las cargas de trabajo de él antes de realizar la acción de cálculo aplicable.
La reparación de host de GPU admite los siguientes tipos de reparación:
- Reparación iniciada por el usuario: utilice este tipo de reparación cuando identifique una condición que requiere que se sustituya un nodo de trabajador de GPU. OKE coordina el vaciado del nodo, el informe de la condición a Compute, la terminación de la instancia afectada y la restauración de la capacidad del pool de nodos gestionado.
- Recuperación de instancias de GPU: utilice este tipo de reparación cuando la supervisión del estado de la GPU informe una señal de estado de la GPU crítica elegible. OKE coordina el vaciado del nodo y reinicia la instancia afectada.
La reparación de host de GPU está disponible para nodos de trabajador gestionados de GPU elegibles en clusters que ejecutan Kubernetes versión 1.32 o posterior. Un nodo solo es elegible cuando su unidad de GPU está soportada y disponible en la región seleccionada. La funcionalidad no se aplica a los nodos autogestionados, los nodos virtuales ni los nodos de trabajador no GPU.
La reparación de hosts de GPU utiliza recursos de Kubernetes y herramientas de Kubernetes estándar. Un NodeRepairConfig es un recurso personalizado de Kubernetes que selecciona los nodos de trabajador de GPU gestionados a los que se aplica una política de reparación. Un NodeHealthReport es un recurso personalizado de Kubernetes que registra las señales de estado y el progreso de reparación de un nodo. Puede inspeccionar un NodeHealthReport, pero no debe editar su estado. El controlador de reparación de nodos coordina el flujo de trabajo de reparación. Para la recuperación de instancias de GPU, el supervisor de fallos de GPU informa las señales de estado de GPU. La coordinación de reparaciones utiliza un arrendamiento de Kubernetes para evitar el procesamiento simultáneo de la misma solicitud de reparación.
Utilice el modo de ejecución simulada para verificar la configuración y observar una reparación propuesta sin acordonar ni drenar el nodo, aplicando una etiqueta de cálculo, terminando o reiniciando la instancia o sustituyendo el nodo.
La reparación del host de GPU puede interrumpir las cargas de trabajo que se ejecutan en un nodo afectado. Antes de configurar la reparación del host de GPU, diseñe las cargas de trabajo para la interrupción. Revise los presupuestos de interrupción de pod, la configuración de réplicas, los requisitos de puntos de control, las restricciones de topología y la capacidad de GPU de repuesto disponible.
Una solicitud de reparación con el estado Completed indica que se ha completado el flujo de trabajo de reparación. No confirma que se haya corregido el fallo subyacente de la GPU. Después de cualquier reparación, verifique las señales de estado actuales del nodo y el estado de la aplicación.
Configuración de Reparación Iniciada por el Usuario para Nodos de Trabajadores de GPU Gestionados
Antes de configurar la reparación iniciada por el usuario, identifique un pool de nodos de GPU gestionado elegible y un nodo de prueba controlado. Asegúrese de que se puedan interrumpir las cargas de trabajo en el nodo seleccionado.
La reparación iniciada por el usuario requiere control de acceso tanto en OCI IAM como en Kubernetes RBAC. En OCI IAM, la entidad de recurso de cluster de OKE necesita permiso para aplicar la etiqueta definida que se utiliza para informar la condición de host a Compute. En Kubernetes, solo un operador de confianza debe poder iniciar la solicitud de reparación protegida. El operador de confianza necesita permisos RBAC de Kubernetes estándar para actualizar el recurso Node de destino y la autorización específica de OKE delegada a través de ClusterRoleBinding.
Cuando solicita una reparación iniciada por el usuario, OKE coordina las siguientes acciones:
- Garantiza que solo se procese una solicitud de reparación a la vez.
- Conecta el nodo para que Kubernetes no programe nuevos pods en él.
- Intenta vaciar cargas de trabajo del nodo.
- Informa de la condición a Compute y finaliza la instancia afectada.
- Restaura la capacidad configurada del pool de nodos gestionado.
Para configurar y probar la reparación iniciada por el usuario:
-
Verifique que el cluster sea un cluster mejorado y que esté ejecutando Kubernetes versión 1.32 o posterior. Verifique que el nodo sea un nodo de trabajador de GPU gestionado elegible. Verifique que el controlador de reparación de nodos gestionado por OKE y las CRD
NodeHealthReport,oke-customer-node-repair-triggerClusterRoley la política de admisión de protección de disparadores y el enlace estén instalados en el cluster. Si falta algún recurso gestionado por OKE, póngase en contacto con los Servicios de Soporte Oracle. No vuelva a crear los recursos gestionados por OKE. Antes de utilizar la reparación en directo, abra una solicitud de soporte para permitir el manejo de fallos de hardware informados por el usuario para su arrendamiento. Incluya el arrendamiento, la región, el OCID del cluster y el pool de nodos de GPU en la solicitud.
-
Cree o reutilice la etiqueta definida que el controlador de reparación de nodos utiliza para informar la condición del host a Compute.
Cree o reutilice un espacio de nombres de etiqueta denominado
ComputeInstanceHostActions. En ese espacio de nombres, cree o reutilice una definición de clave de etiqueta denominadaCustomerReportedHostStatus. No cree una etiqueta de formato libre con el mismo texto. Para obtener más información, consulte Creating a Tag Namespace y Creating a Tag Key Definition.Antes de terminar la instancia original, el controlador de reparación de nodos escribe el valor
unhealthyen la etiqueta definidaComputeInstanceHostActions.CustomerReportedHostStatusen la instancia. Cree una política de OCI IAM que otorgue a la entidad de recurso de cluster de OKE el permiso de ámbito limitado para aplicar la etiqueta definida:
Allow any-user to use tag-namespace in tenancy where all {request.principal.type = 'cluster', request.principal.id = '<cluster-ocid>', target.tag-namespace.name = 'ComputeInstanceHostActions'}Los cambios de IAM pueden tardar en propagarse. Espere la propagación antes de realizar una validación destructiva.
-
Delegue el disparador de reparación iniciado por el usuario protegido a operadores de confianza.
Cree un
ClusterRoleBindingque enlace un OCID de grupo de OCI IAM de confianza aloke-customer-node-repair-triggerClusterRolepropiedad de OKE. Los operadores también necesitan permisos RBAC de Kubernetes estándar para actualizar el recursoNodede destino.Cree un archivo denominado
cir-trigger-operators.yamlcon el siguiente contenido:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: oke-node-repair-trigger-operators roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: oke-customer-node-repair-trigger subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: <trusted-oci-iam-group-ocid>Sustituya
<trusted-oci-iam-group-ocid>por el OCID del grupo de OCI IAM que contiene los operadores de confianza.Aplique y verifique el enlace introduciendo:
kubectl apply -f cir-trigger-operators.yamlkubectl get clusterrolebinding \ oke-node-repair-trigger-operators \ -o yamlEste enlace no otorga permiso general para actualizar los recursos
Node. Utilice su modelo de autorización de Kubernetes existente para otorgar solo los permisos de RBAC de Kubernetes estándar necesarios para los operadores de confianza. -
Cree un recurso personalizado
NodeRepairConfigde ámbito de cluster no solapado en modo de ejecución simulada.Seleccione nodos mediante una etiqueta duradera de agrupación de nodos que gestione y que esté presente en los nodos de sustitución. La etiqueta del selector está definida por el usuario. Configure la etiqueta en el pool de nodos gestionado deseado para que los nodos de sustitución la retengan.
Un nodo debe coincidir exactamente con un recurso
NodeRepairConfig. Las solicitudes sin configuración coincidente o con configuraciones superpuestas se rechazan sin efectos secundarios de reparación. Puede utilizar la misma configuración o configuraciones independientes para la reparación iniciada por el usuario y la recuperación de instancias de GPU. Si utiliza configuraciones independientes, no incluya los mismos nodos en varias configuraciones; de lo contrario, la solicitud de reparación se rechazará.El siguiente ejemplo comienza en modo de ejecución en seco, permite una reparación a la vez, establece el umbral de nodo no saludable en un 10%, utiliza un período de gracia de drenaje de 60 minutos y desactiva el comportamiento de fuerza después de la gracia:
apiVersion: oci.oraclecloud.com/v1beta1 kind: NodeRepairConfig metadata: name: gpu-node-repair spec: nodeSelector: matchLabels: example.com/gpu-repair: "enabled" policy: dryRun: true evictionGracePeriodMinutes: 60 forceActionAfterGracePeriod: false maxUnhealthyNodeThreshold: "10%" maximumParallelNodeRepairs: 1En la sección
policy,dryRunyforceActionAfterGracePeriodson valores booleanos.evictionGracePeriodMinuteses un entero no negativo.maximumParallelNodeRepairses un entero positivo.maxUnhealthyNodeThresholdacepta un recuento de nodos positivo o un porcentaje entrecomillado, como"10%".Comience con
dryRun: true. Después de validar la configuración, actualice solodryRunafalsepara la operación activa. -
Solicite una reparación de ejecución simulada aplicando la etiqueta protegida
oci.oraclecloud.com/customer-report-host-status=unhealthyal nodo seleccionado. InspeccioneNodeHealthReporty el estado del nodo relacionado. Una solicitud de ejecución simulada crea un registroNodeHealthReportcompletado, pero no acorta, drena, aplica la etiqueta definida de Compute, termina, reinicia ni reemplaza el nodo. Disparar una reparación en directo mediante la aplicación de la etiqueta de disparador protegida junto con la sustitución en directo puntual
oci.oraclecloud.com/node-repair-dry-run=false. La sustitución activa solo es válida con un disparador activo y se muestra solo cuando se crea un nuevo disparador.Para volver a intentar una solicitud de reparación iniciada por el usuario, elimine y vuelva a aplicar la etiqueta
oci.oraclecloud.com/customer-report-host-status=unhealthy. Si se vuelve a aplicar el mismo valor de etiqueta, no se inicia otra solicitud. La eliminación de la etiqueta no cancela una reparación activa.Importante
Una reparación activa iniciada por el usuario puede vaciar las cargas de trabajo y terminar la instancia informática original. Draining utiliza la API de desalojo de Kubernetes y respeta los presupuestos de interrupción de pod. Se omiten los pods DaemonSet y los pods estáticos. Si la opción force-after-grace está activada, el controlador de reparación de nodos no fuerza la supresión de los pods restantes, pero la acción posterior del host puede interrumpirlos.Verifique el progreso de la acción de reparación, la etiqueta definida por Compute, la terminación de la instancia original, la restauración de la capacidad del pool de nodos gestionados y la creación de un nodo de sustitución con un nuevo UID y un OCID de instancia. El valor
NodeHealthReportpara las instancias terminadas se retiene temporalmente una vez finalizado el flujo de trabajo.Un resultado
Deferredsignifica que el flujo de trabajo está bloqueado temporalmente. Un resultadoFailedsignifica que el intento se detuvo. Un resultadoSupersededsignifica que un flujo de trabajo de OKE de mayor prioridad asumió el control. Un resultadoCompletedsignifica que OKE finalizó el flujo de trabajo de terminación solicitado. No significa que la reparación física esté completa o que la capacidad de sustitución seaReady. Cuando finalice el flujo de trabajo, verifique que el pool de nodos gestionado tenga la capacidad esperada y que el nodo de sustitución informe del estado actual en buen estado.
Para la reparación iniciada por el usuario, la creación de un nodo de trabajador de sustitución depende de la conciliación de nodos y agrupaciones gestionadas y de la capacidad de GPU disponible. Un flujo de trabajo completado no confirma que el fallo de GPU subyacente se haya corregido.
Configuración de Recuperación de Instancias de GPU para Nodos de Trabajadores de GPU Gestionados
Antes de configurar la recuperación de instancias de GPU, identifique un pool de nodos de GPU gestionado elegible y confirme que sus cargas de trabajo se pueden interrumpir. La recuperación de instancias de GPU puede acordonar y drenar un nodo afectado antes de reiniciar su instancia.
Antes de configurar la recuperación de instancias de GPU, cree las políticas de IAM necesarias para que el complemento GPU Health Monitoring controle los hosts de GPU:
Allow dynamic-group <dg-name> to manage instance-family in compartment id <compartment-ocid>
Allow dynamic-group <dg-name> to read instance-agent-plugins in compartment id <compartment-ocid>
donde:
-
<dg-name>es el nombre del grupo dinámico que incluye las instancias informáticas para los nodos de trabajador de GPU. Por ejemplo, mediante una regla comoALL {instance.compartment.id = '<compartment-ocid>'}. Al aplicar etiquetas a pools de nodos, puede crear reglas más restrictivas, como:ALL { instance.compartment.id = 'ocid1.compartment.oc1..examplecompartment', tag.Operations.Workload.value = 'gpu-monitoring', tag.Operations.Environment.value = 'prod' }Para obtener más información, consulte Aplicación de etiquetas a pools de nodos.
<compartment-ocid>es el OCID del compartimento que contiene los nodos de trabajador de GPU.
La recuperación de instancias de GPU solo está soportada en nodos de trabajador de GPU gestionados elegibles que utilizan las siguientes unidades de GPU:
BM.GPU.A10.4BM.GPU.A100-v2.8BM.GPU.B200.8BM.GPU.B300.8BM.GPU.B300.HS.8BM.GPU.B4.8BM.GPU.GB200-v2.4BM.GPU.GB200-v3.4BM.GPU.GB200.4BM.GPU.GB300.4BM.GPU.H100.8BM.GPU.H100T.8BM.GPU.H200-NC.8BM.GPU.H200.8BM.GPU.L40S-NC.4BM.GPU.L40S.4BM.GPU.MI300X.8BM.GPU.MI355X-v1.8BM.GPU.MI355X.8
La disponibilidad de la unidad de GPU varía según la región. Confirme que la unidad de GPU seleccionada está disponible en la región donde se ejecuta el cluster.
El plugin Compute RDMA GPU Monitoring necesita la versión 1.64.0 o posterior del agente de Oracle Cloud y debe instalarse en los nodos seleccionados.
Cuando OKE recibe una señal de estado de GPU elegible, coordina las siguientes acciones:
- Garantiza que solo se procese una solicitud de recuperación a la vez.
- Conecta el nodo para que Kubernetes no programe nuevos pods en él.
- Intenta vaciar cargas de trabajo del nodo.
- Reinicia la instancia informática afectada.
Para configurar la recuperación de instancias de GPU:
-
Verifique que el cluster esté ejecutando Kubernetes versión 1.32 o posterior. Verifique que el nodo sea un nodo de trabajador de GPU gestionado elegible. Verifique que el controlador de reparación de nodos gestionado por OKE y las CRD
NodeHealthReportestén instaladas en el cluster y verifique que el complemento de supervisión del estado de la GPU esté disponible para el cluster. Verifique que el complemento GPU Health Monitoring tenga una opción
ACTIVEpara la versión de Kubernetes que se ejecuta en el cluster introduciendo:oci ce addon-option list \ --kubernetes-version <version> \ --addon-name GpuHealthMonitoringAl instalar el complemento, instale la última opción
ACTIVEen lugar de anclar una versión. La versión instalada debe serv1.1.0o posterior.Instale el complemento de supervisión del estado de la GPU gestionado por OKE escribiendo:
oci ce cluster install-addon \ --addon-name GpuHealthMonitoring \ --cluster-id $CLUSTER_ID \ --region $REGIONEl comando instala la última versión disponible del complemento para el cluster.
Las claves de configuración del complemento soportadas son
nodeSelectors,tolerationsyrollingUpdate. El valorrollingUpdatecontrola el comportamiento de actualización sucesiva pormaxSurgeymaxUnavailable, utilizando el formato JSON en texto sin formato.-
Cree un recurso
GpuHealthMonitoringConfigpara activar la supervisión del estado de la GPU para los nodos de trabajador de la GPU seleccionados. La configuración requierespec.enabledy un selector de nodos que no esté vacío.apiVersion: oci.oraclecloud.com/v1beta1 kind: GpuHealthMonitoringConfig metadata: name: gpu-health-monitoring spec: enabled: true nodeSelector: matchLabels: nvidia.com/gpu.present: "true"Guarde la configuración como
gpu-health-monitoring.yamly aplíquela introduciendo:kubectl apply -f gpu-health-monitoring.yamlEl campo
spec.enabledactiva o desactiva la supervisión de los nodos seleccionados. El campospec.nodeSelectorselecciona los nodos de GPU en los que se ejecutan el plugin Compute RDMA GPU Monitoring y el supervisor de fallos de GPU.Evite crear varios recursos
GpuHealthMonitoringConfigactivados cuyos selectores coincidan con el mismo nodo. Las políticas superpuestas se rechazan con una condiciónReadyque tienestatusdefinido enFalseyreasondefinido enMultipleMatchingPolicies. Verifique la configuración de supervisión del estado de la GPU en los nodos seleccionados.
El controlador publica la condición de nodo
oci.oraclecloud.com/GpuHealthMonitoringConfigured. El valorTrueindica que el plugin Compute RDMA GPU Monitoring se ha configurado como activado. Un valor deFalseindica que se ha configurado como desactivado. Un valor deUnknownindica que actualmente no se puede confiar en el estado configurado.El supervisor de fallos de GPU publica la condición de nodo
oci.oraclecloud.com/GpuHealthMonitoringUnavailable. El valorTrueindica que uno o más archivos de resultado de estado de GPU necesarios no están disponibles. Las posibles causas incluyen una versión obsoleta de Oracle Cloud Agent, una unidad no soportada, un plugin desactivado o en mal estado o una configuración incorrecta. El valorFalseindica que los archivos de resultados necesarios están presentes.-
Cree un recurso personalizado
NodeRepairConfigde ámbito de cluster no solapado en modo de ejecución simulada.Seleccione nodos mediante una etiqueta duradera de agrupación de nodos que gestione. La etiqueta del selector está definida por el usuario.
Un nodo debe coincidir exactamente con un recurso
NodeRepairConfig. Las solicitudes sin configuración coincidente o con configuraciones superpuestas se rechazan sin efectos secundarios de reparación. Puede utilizar la misma configuración o configuraciones independientes para la reparación iniciada por el usuario y la recuperación de instancias de GPU. Si utiliza configuraciones independientes, no incluya los mismos nodos en varias configuraciones; de lo contrario, la solicitud de reparación se rechazará.El siguiente ejemplo comienza en modo de ejecución en seco, permite una reparación a la vez, establece el umbral de nodo no saludable en un 10%, utiliza un período de gracia de drenaje de 60 minutos y desactiva el comportamiento de fuerza después de la gracia:
apiVersion: oci.oraclecloud.com/v1beta1 kind: NodeRepairConfig metadata: name: gpu-node-repair spec: nodeSelector: matchLabels: example.com/gpu-repair: "enabled" policy: dryRun: true evictionGracePeriodMinutes: 60 forceActionAfterGracePeriod: false maxUnhealthyNodeThreshold: "10%" maximumParallelNodeRepairs: 1En la sección
policy,dryRunyforceActionAfterGracePeriodson valores booleanos.evictionGracePeriodMinuteses un entero no negativo.maximumParallelNodeRepairses un entero positivo.maxUnhealthyNodeThresholdacepta un recuento de nodos positivo o un porcentaje entrecomillado, como"10%".Comience con
dryRun: true. Después de validar la configuración, actualice solodryRunafalsepara la operación activa.Tenga en cuenta que la recuperación de instancias de GPU está controlada por señales de estado. No aplique la etiqueta de reparación iniciada por el usuario
oci.oraclecloud.com/customer-report-host-status=unhealthypara la recuperación de instancias de GPU. Verifique que se informe una señal de estado de GPU elegible para el nodo.
Un nodo es elegible para el reinicio automatizado solo cuando se cumplen todas las condiciones siguientes:
- La condición de nodo
oci.oraclecloud.com/GpuHealthMonitoringFaultDetectedesTrue. NodeHealthReportcontiene una entrada enstatus.signals.clusterHealthCheck[].- La señal tiene un
idno vacío. - La señal tiene
action=REBOOT. El valor es no sensible a mayúsculas/minúsculas. - La señal tiene un valor
firstObservedAtno nulo. - La señal tiene un valor
lastObservedAtno nulo, lo que indica que la señal está activa. - La señal ha permanecido activa durante al menos 10 minutos.
- Las reglas de reintento y enfriamiento del controlador de reparación de nodos permiten otro intento. El tiempo de reutilización de reinicio repetido es de 60 minutos.
- El valor de ejecución simulada efectivo es
falsepara un reinicio real. - Pasan las barandillas de admisión y interrupción posteriores.
Las señales con
action=CUSTOMER_ACTION_REQUIREDno disparan un reinicio automático. Si ve una de estas señales, revise las condiciones de nodo yNodeHealthReport, investigue el problema de estado de la GPU informado y póngase en contacto con Soporte si necesita ayuda para resolverlo.- La condición de nodo
-
Active la reparación en directo en el recurso
NodeRepairConfig.La recuperación de instancias de GPU comienza solo después de que la señal elegible se haya mantenido activa durante al menos 10 minutos, y el tiempo de reutilización de reinicio repetido es de 60 minutos. El comportamiento de drenaje sigue la política de reparación especificada en el recurso
NodeRepairConfigcoincidente. Draining utiliza la API de desalojo de Kubernetes y respeta los presupuestos de interrupción de pod. El tiempo necesario para completar la recuperación de la instancia de GPU puede variar en función de la configuración de interrupción de la carga de trabajo, el comportamiento de vaciado de nodos y el estado de la instancia de Compute. -
Verifique que la recuperación de la instancia de GPU se ha realizado correctamente.
Confirme que
NodeHealthReportmuestra una acciónRebooten modo activo y que tiene un estado de terminalCompleted. Confirme que la instancia informática tiene el estadoRunning, que el nodo de Kubernetes esReadyy que el resultado de estado de la GPU actual ya no informa el fallo. Revise el resultado de estado de la GPU después de que se complete el flujo de trabajo.
Si el resultado de estado de la GPU aún informa el mismo fallo después del reinicio o vuelve a informar el fallo, el fallo no se ha resuelto. Un flujo de trabajo de recuperación completado no significa que se haya corregido el fallo subyacente de la GPU. La recuperación de instancias de GPU utiliza reglas de recuperación para evitar bucles de reinicio inmediato. Una vez que el resultado de estado de la GPU deja de informar el fallo, un resultado de estado de la GPU posterior que informe un nuevo fallo puede hacer que el nodo sea elegible para otra reparación.
El recurso
GpuHealthMonitoringAction generado es propiedad del controlador. No cree ni edite recursos GpuHealthMonitoringAction.Supervisión y solución de problemas de reparación de host de GPU para nodos de trabajador de GPU
Utilice los recursos de Kubernetes y las herramientas de supervisión de Kubernetes estándar para inspeccionar NodeHealthReport, las condiciones del nodo, las cargas de trabajo afectadas y el flujo de trabajo de reparación.
Un
NodeHealthReport con un estado Completed indica que el flujo de trabajo de reparación ha finalizado. No indica que se haya corregido el fallo subyacente de la GPU. Verifique las señales de estado actuales, la preparación del nodo de trabajador y el estado de la aplicación después de que se complete el flujo de trabajo.Para supervisar un flujo de trabajo de reparación de host de GPU:
Inspeccione el nodo de trabajador afectado y
NodeHealthReportantes, durante y después de la reparación.Revise
NodeHealthReportpara ver la solicitud de reparación, el progreso de la reparación, la acción, el modo activo o de ejecución en seco y el resultado del flujo de trabajo. Revise el recursoNodede Kubernetes afectado para ver las etiquetas y condiciones de los nodos. Revise los eventos de Kubernetes para conocer la actividad reciente de reparación y nodo. Para la recuperación de instancias de GPU, compruebe las condicionesGpuHealthMonitoringConfigured,GpuHealthMonitoringUnavailableyGpuHealthMonitoringFaultDetecteden el recursoNodede Kubernetes afectado.Tratar los recursos propiedad del controlador como de solo lectura. No cree ni edite acciones generadas ni recursos propiedad del controlador.
Revise el estado de reparación admitido y el estado del nodo.
Utilice
NodeHealthReportpara revisar la política de reparación, el valor efectivo de ejecución en seco, el resultado de admisión, el resultado terminal y el último intento de reparación. Utilice el recursoNodede Kubernetes afectado para revisar las condiciones del nodo. Cuando corresponda, verifique el estado del ciclo de vida de la instancia informática, la etiqueta definida por Compute que se utiliza para la reparación iniciada por el usuario y si la capacidad de sustitución está lista.No se base en permisos internos, IDs de petición, rutas de archivos, intervalos de sondeo ni fases intermedias de workflow como indicadores de estado.
-
Para la reparación iniciada por el usuario, investigue las solicitudes rechazadas, la reparación diferida, la reparación fallida y la reparación sustituida.
Se puede rechazar una solicitud cuando ningún recurso
NodeRepairConfigcoincide con el nodo o cuando se aplica más de una configuración.Utilice el resultado
NodeHealthReportpara decidir qué investigar:- Si
NodeHealthReportmuestraAdmissionRejected, verifique el recursoNodeRepairConfig, la autorización de disparadores y la configuración de etiquetas. - Si
NodeHealthReportmuestraDeferred, espere a que se borre la condición de bloqueo o ajuste la capacidad si la capacidad de sustitución no está disponible. - Si
NodeHealthReportmuestraFailed, inspeccioneNodeHealthReport, Kubernetes Events, los presupuestos de interrupción del pod, la política de IAM, la etiqueta definida por Compute y el estado de la instancia de Compute. - Si
NodeHealthReportmuestraSuperseded, siga el flujo de trabajo de OKE que se hizo cargo de la reparación. - Si
NodeHealthReportmuestraCompleted, verifique que la instancia original se ha terminado y que la capacidad de sustitución está lista.
- Si
-
Para la recuperación de instancias de GPU, investigue la configuración de supervisión del estado de la GPU, los resultados de estado no disponibles, las señales de reinicio, las señales que requieren acción, los drenajes incompletos, los reinicios completados con un fallo continuo y las señales continuas que no disparan reinicios repetidos.
Utilice condiciones de nodo, señales de estado de GPU y el resultado
NodeHealthReportpara decidir qué investigar:- Si la condición del nodo
GpuHealthMonitoringConfiguredesFalseoUnknown, verifique la configuración del agente de Oracle Cloud y la configuración del complementoGpuHealthMonitoring. - Si la condición del nodo
GpuHealthMonitoringUnavailableesTrue, verifique que la unidad de GPU esté soportada, que Oracle Cloud Agent versión1.64.0o posterior esté instalada, que el plugin Compute RDMA GPU Monitoring esté activado y que el complemento GPU Health Monitoring esté instalado y configurado. - Si una señal de estado de GPU activa tiene
action=REBOOT, superviseNodeHealthReportpara el flujo de trabajo de recuperación de instancias de GPU. - Si una señal de estado de GPU tiene
action=CUSTOMER_ACTION_REQUIRED, investigue el problema de estado de GPU informado. Esta señal no activa un reinicio automatizado. - Si
NodeHealthReportmuestra un vaciado incompleto o una reparación fallida, inspeccione los eventos de Kubernetes, los presupuestos de interrupción del pod, el estado de la carga de trabajo y las condiciones del nodo. - Si se completó el reinicio, pero el resultado de estado de la GPU aún informa el fallo, investigue el fallo en curso.
- Si la misma señal continúa después del reinicio, la recuperación de la instancia de GPU no reinicia inmediatamente el nodo de nuevo. Las reglas de enfriamiento evitan los bucles de reinicio inmediato.
- Si la condición del nodo
-
Antes de abrir una solicitud de servicio, recopile la información necesaria para investigar el flujo de trabajo de reparación.
Incluya el OCID del arrendamiento, el OCID del cluster, la región, la versión de Kubernetes, la versión del complemento de supervisión del estado de la GPU, la versión del agente de Oracle Cloud, el nombre del nodo de trabajador afectado, el OCID de la instancia informática, los recursos
NodeHealthReportyNodeRepairConfigrelevantes, las etiquetas y condiciones de los nodos, los eventos de Kubernetes, el presupuesto de interrupción del pod y el estado de la carga de trabajo, los registros de hora y los resultados actuales del estado de la GPU.No modifique los CRD propiedad de OKE, los recursos del controlador, los objetos de admisión, las acciones generadas ni los recursos de coordinación.
Resolución de problemas de reparación de host de GPU
| Incidencia | Acción |
|---|---|
| Ninguna reparación se inicia después de una solicitud iniciada por el usuario. | Compruebe que hay exactamente un NodeRepairConfig que selecciona el nodo, confirme que la solicitud la realizó un operador autorizado e inspeccione el resultado de admisión NodeHealthReport. |
| El nodo permanece acordonado o las cargas de trabajo no se drenan. | Revise los presupuestos de interrupción de pods, los pods que no se pueden expulsar, las restricciones de programación de carga de trabajo y la capacidad de reemplazo disponible. |
| El pool de nodos gestionado no vuelve a su capacidad configurada después de la reparación iniciada por el usuario. | Compruebe la capacidad de la unidad de GPU en la región seleccionada, los límites de servicio, las cuotas de compartimento y el estado del pool de nodos gestionado. |
| Una señal de estado de GPU no inicia la recuperación de la instancia de GPU. | Confirme que la señal y el nodo son elegibles y verifique el complemento Supervisión del estado de la GPU y NodeRepairConfig. |
| El nodo de trabajador de GPU no está listo después de la recuperación de la instancia de GPU. | Compruebe las condiciones del nodo, las señales de estado actuales de la GPU y el estado de la aplicación. Un flujo de trabajo completado no confirma que el fallo de GPU subyacente se haya resuelto. |
Utilice los recursos de Kubernetes, las condiciones de los nodos y los eventos de Kubernetes como prueba de resolución de problemas. Si abre una solicitud de servicio, los Servicios de Soporte Oracle pueden recuperar logs del servicio según sea necesario.