En este documento, se describen los errores y los códigos correspondientes que puedes encontrar cuando usas la Copia de seguridad para GKE para realizar operaciones de restablecimiento. En cada sección, se incluyen aspectos que debes tener en cuenta cuando realices acciones para resolver los errores de restablecimiento, así como instrucciones para resolver los errores de la operación de restablecimiento.
Error 200010301: No se pudo completar la operación de restablecimiento debido a que el servicio de webhook de admisión no está disponible
El error 200010301
se produce cuando falla un intento de completar una operación de restablecimiento porque no está disponible un servicio de webhook de admisión, también conocido como devolución de llamada HTTP, lo que genera el siguiente mensaje de error. El mensaje de error indica que el servidor de la API de GKE intentó comunicarse con un webhook de admisión mientras intentaba restablecer un recurso, pero el servicio que respalda el webhook no estaba disponible o no se encontró:
resource [/example-group/ClusterSecretStore/example-store] restore failed:
Internal error occurred: failed calling webhook "example-webhook.io":
failed to call webhook: Post "https://example-webhook.example-namespace.svc:443/validate-example": service "example-webhook" not found.
Este error ocurre cuando un recurso de GKE ValidatingAdmissionWebhook
o MutatingAdmissionWebhook
está activo en el clúster de destino, pero el servidor de la API de GKE no puede acceder al extremo configurado en el webhook. Los webhooks de admisión interceptan las solicitudes al servidor de la API de GKE, y su configuración especifica cómo el servidor de la API de GKE debe consultar las solicitudes.
El clientConfig
del webhook especifica el backend que controla las solicitudes de admisión, que puede ser un servicio de clúster interno o una URL externa. La elección entre estas dos opciones depende de los requisitos operativos y de arquitectura específicos de tu webhook. Según el tipo de opción, es posible que la operación de restablecimiento haya fallado por los siguientes motivos:
Servicios en el clúster: El servicio de GKE y sus Pods de respaldo no se restablecieron ni están listos cuando el servidor de la API de GKE intentó llamar al webhook. Esto ocurre durante las operaciones de restablecimiento en las que se aplican configuraciones de webhook con alcance de clúster antes de que los servicios con espacio de nombres estén completamente en un estado
ready
.URLs externas: El extremo externo no está disponible temporalmente debido a problemas de conectividad de red entre el clúster de GKE y el extremo externo, o bien debido a problemas de resolución de DNS o reglas de firewall.
Para resolver este error, sigue estas instrucciones:
Identifica el webhook con errores que se menciona en el mensaje de error. Por ejemplo,
failed calling webhook "..."
.Ejecuta el comando
kubectl get validatingwebhookconfigurations
para inspeccionar el webhook:kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
Reemplaza
WEBHOOK_NAME
por el nombre del webhook que se identificó en el mensaje de error.También puedes ejecutar el comando
kubectl get mutatingwebhookconfigurations
para inspeccionar el webhook:kubectl get mutatingwebhookconfigurations WEBHOOK_NAME -o yaml
Reemplaza
WEBHOOK_NAME
por el nombre del webhook que se identificó en el mensaje de error.Realiza los siguientes pasos para solucionar problemas según el tipo de configuración:
Basado en servicio
clientConfig
Para definir un orden de restauración personalizado, modifica el recurso
RestorePlan
para incluir unRestoreOrder
con entradasGroupKindDependency
. Esto permite que los componentes que respaldan el webhook, comoDeployment
,StatefulSet
oService
, se restablezcan y estén listos antes deValidatingWebhookConfiguration
oMutatingWebhookConfiguration
.Para obtener instrucciones sobre cómo definir un orden de restablecimiento personalizado, consulta Cómo especificar el orden de restablecimiento de los recursos durante el restablecimiento.
Este enfoque puede fallar porque los Pods del servicio no entran en un estado
ready
completo incluso después de que se crea el objetoService
. Otro motivo de falla podría ser que otra aplicación haya creado inesperadamente la configuración del webhook. Como alternativa, puedes realizar una operación de restablecimiento en dos etapas siguiendo estos pasos:Crea un recurso
Restore
con la copia de seguridad. Para ello, configura la operación de restauración con un filtro de restauración detallado que incluya los recursos específicos que se requieren para que funcione el webhook, por ejemplo,Namespaces
,Deployments
,StatefulSets
oServices
.Para obtener más información sobre cómo configurar el restablecimiento con un filtro de restablecimiento detallado, consulta Cómo habilitar el restablecimiento detallado.
Crea otro recurso
Restore
para la operación de copia de seguridad y configura el resto de los recursos que elijas.
clientConfig
basado en URLVerifica el extremo HTTPS externo y asegúrate de que esté activo, sea accesible y funcione correctamente.
Confirma que haya conectividad de red desde los nodos y el plano de control de tu clúster de GKE a la URL externa. También es posible que debas verificar las reglas de firewall, por ejemplo, si usas una nube privada virtual, una solución local o un proveedor de servicios en la nube que aloja el webhook, las políticas de red y la resolución de DNS.
Vuelve a intentar la operación de restablecimiento. Si la operación sigue fallando, comunícate con Atención al cliente de Cloud para obtener más ayuda.
Error 200010302: No se pudo completar la operación de restablecimiento debido a que se rechazó la solicitud de creación de recursos
El error 200010302
se produce cuando falla un intento de completar una operación de restablecimiento porque un webhook de admisión rechaza una solicitud de creación de recursos, lo que genera el siguiente mensaje de error que indica que no se pudo crear un recurso de tu copia de seguridad en el clúster de destino porque un webhook de admisión activo interceptó la solicitud y la rechazó según una política personalizada:
[KubeError]; e.g. resource
[/example-namespace/example-api/ExampleResource/example-name]
restore failed: admission webhook "example-webhook.example.com" denied the request: {reason for denial}
Este error se debe a la configuración establecida en el clúster de GKE de destino, que tiene un ValidatingAdmissionWebhook
o un MutatingAdmissionWebhook
que aplica reglas específicas sobre la creación y modificación de recursos, lo que bloquea la solicitud de creación de recursos.
Por ejemplo, un webhook impide la creación de un recurso porque ya existe un recurso relacionado, pero en conflicto, en el clúster. Por ejemplo, un webhook podría rechazar la creación de una implementación si ya la administra un recurso de la API de HorizontalPodAutoscaler
de GKE.
Para resolver este error, sigue estas instrucciones:
Identifica el webhook que rechaza la solicitud con el mensaje de error que se produce cuando falla la operación de restablecimiento. Por ejemplo,
webhook WEBHOOK_NAME denied the request
. El mensaje de error contiene la siguiente información:Nombre del webhook: Es el nombre del webhook que rechaza la solicitud.
Reason for denial: Es el motivo específico por el que se rechazó la solicitud.
Ejecuta el comando
kubectl get validatingwebhookconfigurations
para inspeccionar el webhook:kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
Reemplaza
WEBHOOK_NAME
por el nombre del webhook que identificaste en el mensaje de error.También puedes ejecutar el comando
kubectl get mutatingwebhookconfigurations
para inspeccionar el webhook:kubectl get mutatingwebhookconfigurations WEBHOOK_NAME -o yaml
Reemplaza
WEBHOOK_NAME
por el nombre del webhook que identificaste en el mensaje de error.Resuelve el problema subyacente en el clúster de destino. La acción correcta depende del error específico. En el ejemplo, si hay un conflicto de
HorizontalPodAutoscaler
, debes borrar elHorizontalPodAutoscaler
existente en el clúster de destino antes de ejecutar la restauración para permitir que se creen las cargas de trabajo de la copia de seguridad y sus recursos asociados.Vuelve a intentar la operación de restablecimiento. Si la operación de restablecimiento sigue fallando, comunícate con Atención al cliente de Cloud para obtener más ayuda.
Error 200060202: No se pudo completar la operación de restablecimiento debido a la falta de recursos de GKE durante la validación de la carga de trabajo
El error 200060202
se produce durante la fase de validación de la carga de trabajo de una operación de restablecimiento cuando no se encuentra en el clúster de destino un recurso de GKE que se espera que valide la copia de seguridad para GKE, lo que genera el siguiente mensaje de error:
Workload Validation Error: [KIND] "[NAME]" not found
Por ejemplo, Example: Workload Validation Error: pods "jenkins-0" not found
Este error se produce cuando Copia de seguridad para GKE crea o actualiza correctamente el recurso de GKE como parte del proceso de la operación de restablecimiento, pero, cuando comienza la etapa de validación, uno o más de los recursos de GKE ya no están presentes en el clúster de destino porque se borraron después de que el proceso de restablecimiento los creó o actualizó inicialmente, pero antes de que se pudiera completar la validación de la carga de trabajo para el recurso de GKE. Este error puede ocurrir por los siguientes motivos:
Borrado manual: Un usuario o administrador borró manualmente el recurso con
kubectl
o con otras herramientas de Google Cloud .Automatización externa: Los controladores de GitOps, como Sincronizador de configuración, ArgoCD, Flux, secuencias de comandos personalizadas o cualquier otra herramienta de administración de clústeres, revirtieron o borraron el recurso para que coincidiera con el estado deseado en un repositorio.
Controladores de GKE: Un controlador de GKE borró un recurso porque entra en conflicto con otros recursos o políticas, o una cadena de
OwnerReference
conduce a la recolección de elementos no utilizados, o el proceso de limpieza automatizado de GKE que borra los recursos dependientes cuando se borra su recursoowner
.
Para resolver este error, sigue estas instrucciones:
Identifica el recurso faltante con el mensaje de error que aparece cuando no se completa la operación de restablecimiento.
Ubica el espacio de nombres al que pertenece el recurso con uno de los siguientes métodos:
Registros de auditoría de GKE: Examina los registros de auditoría de GKE que se generaron cuando intentaste realizar la operación de restauración. Puedes filtrar los registros de las operaciones de borrado en los recursos
Kind
yName
. La entrada de registro de auditoría contiene el espacio de nombres original.Detalles de la copia de seguridad: Revisa el alcance de la operación de restablecimiento y el contenido de la copia de seguridad. El índice de la copia de seguridad muestra el espacio de nombres original del recurso. También puedes verificar si
RestorePlan
contiene unTransformationRule
que especifica reglas para restablecer el recurso en el espacio de nombres que elijas.Buscar en todos los espacios de nombres: Ejecuta el comando
kubectl get
para buscar el recurso en todos los espacios de nombres:kubectl get KIND --all-namespaces | grep NAME
Reemplaza
KIND
yNAME
por los valores del mensaje de error. Si el recurso aún existe, este comando mostrará su espacio de nombres.
Para verificar la eliminación, ejecuta el comando
kubectl get
:kubectl get KIND NAME -n [NAMESPACE]
Reemplaza
KIND
yNAME
por los valores del mensaje de error. Deberías recibir un mensaje de errornot found
.Investiga la causa de la eliminación con uno de los siguientes métodos:
Registros de auditoría de GKE: Identifican qué entidad emitió la solicitud de eliminación. Por ejemplo, el usuario, la cuenta de servicio o el controlador.
Revisa las automatizaciones configuradas: Si usas GitOps o cualquier otra herramienta de automatización, verifica sus registros y estado para ver si interfirieron en los recursos restablecidos.
Examina los eventos relacionados: Ejecuta el comando
kubectl get events
para verificar los eventos de GKE en el espacio de nombres determinado:kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
Reemplaza
NAMESPACE_NAME
por el nombre del espacio de nombres.
Aborda la causa de la eliminación del recurso según los resultados del paso anterior. Por ejemplo, pausar automatizaciones en conflicto, corregir errores de configuración o ajustar los permisos de los usuarios.
Recupera el recurso faltante con uno de los siguientes métodos:
Vuelve a aplicar los archivos de manifiesto: Si tienes el manifiesto del recurso faltante, puedes volver a aplicarlo al espacio de nombres correcto.
Realiza un restablecimiento detallado: Realiza una operación de restablecimiento detallado para restablecer de forma selectiva solo el recurso faltante de la misma copia de seguridad, lo que garantiza que especifiques el espacio de nombres correcto. Para obtener más información sobre cómo realizar una operación de restablecimiento detallado, consulta Habilita el restablecimiento detallado.
Vuelve a intentar la operación de restablecimiento. Si la operación de restablecimiento sigue fallando, comunícate con Atención al cliente de Cloud para obtener más ayuda.
Error 200060201: No se pudo completar la operación de restablecimiento debido a que se agotó el tiempo de espera de la validación de la carga de trabajo
El error 200060201
se produce cuando una o más cargas de trabajo restablecidas no se convierten en ready
por completo durante una operación de restablecimiento dentro del límite de tiempo esperado después de que se crearon los recursos en el clúster, lo que genera el siguiente mensaje de error:
Workload Validation Error: Timedout waiting for workloads to be ready - [namespace/workload_name, ...]
Este error se produce porque la Copia de seguridad para GKE realiza un paso de validación después de restablecer la configuración de los recursos de GKE para garantizar que las cargas de trabajo críticas funcionen correctamente. Copia de seguridad para GKE espera a que ciertas cargas de trabajo alcancen un estado ready
, pero al menos una carga de trabajo no cumplió con el siguiente criterio de preparación dentro del período de tiempo de espera asignado:
Para
Pods
:status.Phase
esRunning
Para
Deployments
:status.ReadyReplicas
es igual aspec.Replicas
Para
StatefulSets
:status.ReadyReplicas
es igual aspec.Replicas
Para
DaemonSets
:status.NumberReady
es igual astatus.DesiredNumberScheduled
Para resolver este error, sigue estas instrucciones:
Identifica las cargas de trabajo que no están en estado
ready
en el mensaje de error que enumera las cargas de trabajo y sus espacios de nombres que no pudieron ingresar en un estadoready
.Para inspeccionar el estado de la carga de trabajo y obtener detalles y eventos de las cargas de trabajo con errores, ejecuta el comando
kubectl describe
:kubectl describe WORKLOAD_TYPE WORKLOAD_NAME -n NAMESPACE_NAME kubectl get pods -n NAMESPACE_NAME -l SELECTOR_FOR_WORKLOAD
Reemplaza lo siguiente:
WORKLOAD_TYPE
: Es el tipo de carga de trabajo, por ejemplo,Deployment
,StatefulSet
oDaemonSet
.WORKLOAD_NAME
: Es el nombre de la instancia de carga de trabajo específica.NAMESPACE_NAME
: Es el espacio de nombres en el que se encuentra la carga de trabajo.SELECTOR_FOR_WORKLOAD
: Es el selector de etiquetas para encontrar elPods
asociado con la carga de trabajo. Por ejemplo,app=my-app
.
En el caso de los Pods dentro de los tipos de cargas de trabajo
Deployments
oStatefulSets
, verifica el estado de los Pods individuales ejecutando el comandokubectl describe pod
:kubectl describe pod POD_NAME -n NAMESPACE_NAME
Reemplaza lo siguiente:
POD_NAME
: Es el nombre del pod específico.NAMESPACE_NAME
: Es el espacio de nombres en el que se encuentra el Pod.
En la sección
Events
, analiza los eventos y los registros en el resultado dedescribe
y busca la siguiente información:ImagePullBackOff / ErrImagePull
: Indica que hay problemas para recuperar imágenes de contenedor.CrashLoopBackOff
: Indica que los contenedores se inician y fallan.
En la sección
Containers
, analiza los registros del contenedor en el resultado dedescribe
para encontrar el nombre del contenedor ejecutando el comandokubectl logs
:kubectl logs POD_NAME -n NAMESPACE_NAME -c CONTAINER_NAME
Reemplaza lo siguiente:
POD_NAME
: Es el nombre del pod específico.NAMESPACE_NAME
: Es el espacio de nombres en el que se encuentra el Pod.CONTAINER_NAME
: Es el nombre del contenedor dentro del Pod.
Según el resultado de
describe
, hay varios motivos por los que es posible que el pod no aparezca en el resultado del recurso, incluidos los siguientes:Fallas en los sondeos de preparación: Los sondeos de preparación del contenedor no se completan correctamente.
Problemas de recursos: No hay suficiente CPU, memoria o algún otro recurso en el clúster, o se alcanzaron los límites de cuota.
Problemas con los contenedores init: Fallas en los contenedores init que impiden que se inicien los contenedores principales.
Errores de configuración: Errores en
ConfigMaps
,Secrets
o variables de entornoProblemas de red:
Pods
no puede comunicarse con los servicios requeridos.
Verifica los recursos del clúster de GKE para asegurarte de que tenga suficiente capacidad de nodos, CPU y memoria para ejecutar las cargas de trabajo restauradas. En los clústeres de Autopilot, el aprovisionamiento automático de nodos puede tardar más tiempo, por lo que recomendamos verificar si hay limitaciones o errores de escalamiento de nodos. Aborda los problemas subyacentes según tus hallazgos y resuelve los problemas que impiden que las cargas de trabajo entren en un estado
ready
. Este enfoque puede implicar corregir manifiestos, ajustar solicitudes o límites de recursos, corregir políticas de red o garantizar que se cumplan las dependencias.Después de resolver los problemas subyacentes, espera a que las cargas de trabajo entren en un estado
ready
. No es necesario que vuelvas a ejecutar la operación de restablecimiento.
Si el problema persiste, comunícate con Atención al cliente de Cloud para obtener más ayuda.
Error 200060102: No se pudo completar la operación de restablecimiento debido a un error de validación del volumen
El error 200060102
se produce porque uno o más recursos VolumeRestore
, que administran el proceso de restablecimiento de datos de VolumeBackup
a un PersistentVolume
, ingresaron en un estado failed
o deleting
durante la fase de validación de volumen de una operación de restablecimiento. El error en el restablecimiento del volumen genera el siguiente mensaje de error en el campo stateReason del recurso de restablecimiento:
Volume Validation Error: Some of the volume restores failed - [projects/PROJECT_ID/locations/LOCATION/restorePlans/RESTORE_PLAN_ID/restores/RESTORE_ID/volumeRestores/VOLUME_RESTORE_ID (PVC: NAMESPACE/PVC_NAME), ...]
El mensaje de error enumera los nombres completos de los recursos VolumeRestore
que fallaron, incluidos el nombre y el espacio de nombres del PersistentVolumeClaim
de destino. El mensaje de error indica que el proceso de restablecimiento de datos para el PersistentVolumeClaim
afectado no se completó correctamente cuando Copia de seguridad para GKE inició recursos de VolumeRestore
para aprovisionar PersistentVolumes
desde VolumeBackups
, y falló la creación del Persistent Disk subyacente a partir de la instantánea. Las fallas de VolumeRestore
pueden ocurrir por los siguientes motivos:
Cuota insuficiente: No hay suficiente cuota de Persistent Disk asignada en el proyecto o la región, por ejemplo,
SSD_TOTAL_GB
.Problemas de permisos: La cuenta de servicio que usa Copia de seguridad para GKE no tiene los permisos necesarios para crear discos o acceder a instantáneas.
Problemas de red: Hay problemas de red transitorios o persistentes que interrumpen el proceso de creación del disco.
Instantánea no válida: La fuente
VolumeBackup
o la instantánea subyacente del Persistent Disk están dañadas o no se puede acceder a ellas.Restricciones de recursos: Otras restricciones de recursos del clúster dificultan el aprovisionamiento de volúmenes.
Errores internos: Hay problemas internos en el servicio de Persistent Disk.
Para resolver este error, sigue estas instrucciones:
Identifica el
PersistentVolumeClaims
que falló y que se indica en el mensaje de error, el cual enumera los nombres de recursos completos de los objetosVolumeRestore
que fallaron.Para obtener detalles de cada recurso
VolumeRestore
con errores, ejecuta el comandogcloud beta container backup-restore volume-restores describe
:gcloud beta container backup-restore volume-restores describe VOLUME_RESTORE_ID \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_ID \ --restore=RESTORE_ID
Reemplaza lo siguiente:
VOLUME_RESTORE_ID
: Es el ID del recursoVolumeRestore
que falló.PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .LOCATION
: Es la Google Cloud ubicación del restablecimiento.RESTORE_PLAN_ID
: Es el ID del plan de restablecimiento.RESTORE_ID
: Es el ID de la operación de restablecimiento.
Examina los campos
state
ystateMessage
en el resultado para obtener detalles sobre la falla.Ejecuta el comando
kubectl get pvc
para examinar el estado del destinoPersistentVolumeClaim
:kubectl get pvc PVC_NAME -n NAMESPACE_NAME -o yaml
Reemplaza lo siguiente:
PVC_NAME
: Es el nombre del recursoPersistentVolumeClaim
.NAMESPACE_NAME
: Es el espacio de nombres en el que se encuentraPersistentVolumeClaim
.
Confirma que la sección
status.phase
del resultado indique una fasePending
. Esta fase significa que elPersistentVolumeClaim
aún no está vinculado a unPersistentVolume
, lo que se espera si falla elVolumeRestore
.Inspecciona la sección
Events
en el resultado de YAML para ver mensajes relacionados con errores de aprovisionamiento, comoProvisioningFailed
, por ejemplo:Cloud KMS error when using key projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY: Permission 'cloudkms.cryptoKeyVersions.useToEncrypt' denied on resource 'projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY' (or it may not exist).
El resultado indica que hay un problema de permisos al acceder a la clave de encriptación durante la creación del disco. Para proporcionar el permiso pertinente para acceder a la clave, sigue las instrucciones que se describen en la documentación de Copia de seguridad para GKE sobre cómo habilitar la encriptación con CMEK.
compute service agent
Revisa los eventos de GKE en el espacio de nombres
PersistentVolumeClaim
, que proporcionan mensajes de error detallados del controladorPersistentVolume
o del controlador de CSI, ejecutando el comandokubectl get events
:kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
Reemplaza
NAMESPACE_NAME
por el espacio de nombres dePersistentVolumeClaim
.Identifica eventos relacionados con el nombre
PersistentVolumeClaim
, que contiene palabras clave comoFailedProvisioning
oExternalProvisioning
. Los eventos también pueden contener errores del aprovisionador de almacenamiento, comopd.csi.storage.gke.io
.Examina los registros de Persistent Disk. Para ello, verifica los registros de auditoría de Cloud y los registros de Persistent Disk en Cloud Logging en busca de errores relacionados con las operaciones de creación de discos en el momento de la falla.
Según los mensajes de error generados, aborda los siguientes problemas subyacentes:
Aumenta las cuotas de Persistent Disk si se indica, como
(QUOTA_EXCEEDED}: Quota SSD_TOTAL_GB exceeded
.Verifica y corrige los permisos de IAM.
Investigar y resolver problemas de red
Comunícate con Atención al cliente de Cloud para resolver problemas relacionados con la instantánea o el servicio de Persistent Disk.
El
PersistentVolumeClaim
permanece en estadoPending
.El proceso de la operación de restablecimiento no reintenta automáticamente la operación
VolumeRestore
. Para resolver este problema, debes activar una operación de restauración para la carga de trabajoDeployment
oStatefulSet
que usa elPersistentVolumeClaim
afectado.Usa un restablecimiento detallado para restablecer de forma selectiva la carga de trabajo
Deployment
oStatefulSet
asociada con elPersistentVolumeClaim
fallido. Este enfoque permite que los mecanismos estándar de GKE vuelvan a controlar el proceso de creación y vinculación dePersistentVolumeClaim
si se corrige el problema subyacente. Para obtener más información sobre el restablecimiento detallado, consulta Habilita el restablecimiento detallado.
Si el problema persiste o no está clara la causa de la falla de VolumeRestore
, comunícate con Atención al cliente de Cloud para obtener más ayuda.
Error 200060101: No se pudo completar la operación de restablecimiento debido a que se agotó el tiempo de espera de la validación del volumen
El error 200060101
se produce durante la fase de validación del volumen de una operación de restablecimiento cuando Copia de seguridad para GKE deja de esperar porque al menos un recurso VolumeRestore
, que administra el restablecimiento de datos desde un VolumeBackup
, no alcanzó un estado succeeded
dentro del período de tiempo de espera asignado. Es posible que otros recursos VolumeRestore
también estén incompletos.
El mensaje de error en el campo stateReason
del recurso Restore
muestra el primer recurso VolumeRestore
encontrado que aún no estaba en un estado succeeded
cuando se verificó el tiempo de espera. Incluye el nombre y el espacio de nombres del PersistentVolumeClaim
de destino para ese VolumeRestore
específico, por ejemplo:
Volume Validation Error: Timed out waiting for volume restore [projects/PROJECT_ID/locations/LOCATION/restorePlans/RESTORE_PLAN_NAME/restores/RESTORE_NAME/volumeRestores/VOLUME_RESTORE_ID (PVC: PVC_NAMESPACE/PVC_NAME)]
Copia de seguridad para GKE inicia recursos VolumeRestore
para aprovisionar PersistentVolumes
desde VolumeBackups
. El error indica que la creación subyacente del Persistent Disk a partir de la instantánea y la vinculación posterior del PersistentVolumeClaim
al PersistentVolume
tardaron más que el tiempo de espera calculado para el VolumeRestore
citado. Es posible que otros VolumeRestores
para la misma operación de restablecimiento también se encuentren en un estado no completado.
Aunque se haya alcanzado el tiempo de espera desde la perspectiva de Copia de seguridad para GKE, es posible que el proceso subyacente de creación de discos para el recurso VolumeRestore
mencionado y, posiblemente, los recursos VolumeRestore
, aún esté en curso o haya fallado.
Para resolver este problema, sigue estas instrucciones:
Identifica el nombre y el espacio de nombres de
PersistentVolumeClaim
que agotó el tiempo de espera en el mensaje de error, por ejemplo,(PVC: PVC_NAMESPACE/PVC_NAME)
.Ejecuta el comando
gcloud beta container backup-restore volume-restores list
para enumerar todos losVolumeRestores
asociados con la operación de restablecimiento y ver sus estados actuales:gcloud beta container backup-restore volume-restores list \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_NAME \ --restore=RESTORE_NAME
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto Google Cloud .LOCATION
: Es la Google Cloud ubicación del restablecimiento.RESTORE_PLAN_NAME
: Es el nombre del plan de restablecimiento.RESTORE_NAME
: Es el nombre de la operación de restablecimiento.
Ubica los
VolumeRestores
que no estén en estadosucceeded
.Para obtener detalles sobre el
VolumeRestore
mencionado en el error y cualquier otroVolumeRestores
que no esté en estadosucceeded
, ejecuta el comandogcloud beta container backup-restore volume-restores describe
:gcloud beta container backup-restore volume-restores describe VOLUME_RESTORE_ID \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_NAME \ --restore=RESTORE_NAME
Reemplaza lo siguiente:
VOLUME_RESTORE_ID
: Es el ID del recursoVolumeRestore
.PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .LOCATION
: Es la Google Cloud ubicación del restablecimiento.RESTORE_PLAN_NAME
: Es el nombre del plan de restablecimiento.RESTORE_NAME
: Es el nombre de la operación de restablecimiento.
Verifica los campos
state
ystateMessage
. Es probable que el valor del campostate
seacreating
orestoring
. El campostateMessage
puede proporcionar más contexto y contener los detalles delPersistentVolumeClaim
de destino.Para examinar el estado del destino identificado
PersistentVolumeClaims
, ejecuta el comandokubectl get pvc
:kubectl get pvc PVC_NAME -n PVC_NAMESPACE -o yaml
Reemplaza lo siguiente:
PVC_NAME
: el nombre dePersistentVolumeClaim
.PVC_NAMESPACE
: Es el espacio de nombres dePersistentVolumeClaim
.
Es probable que el valor de
PersistentVolumeClaim's
status.phase
seaPending
. Verifica si hay los siguientes errores en la secciónEvents
:Waiting for first consumer to be created before binding
: Indica que elStorageClass
tienevolumeBindingMode: WaitForFirstConsumer
.El aprovisionamiento de
PersistentVolume
se retrasa hasta que se crea y programa unPod
que usaPersistentVolumeClaim
. El problema podría estar relacionado con la programación dePod
, no con el aprovisionamiento de volumen en sí. Por lo tanto, te recomendamos que confirmes por qué no se programan o no se inician losPods
que consumen losPersistentVolumeClaim
.FailedProvisioning
o errores del aprovisionador de almacenamiento: Por ejemplo,pd.csi.storage.gke.io
.
Revisa los eventos de GKE en los espacios de nombres pertinentes ejecutando el comando
kubectl get events
:kubectl get events -n PVC_NAMESPACE --sort-by='.lastTimestamp'
Reemplaza
PVC_NAMESPACE
por el espacio de nombres dePersistentVolumeClaim
.Busca eventos relacionados con los nombres de
PersistentVolumeClaim
, como mensajes o errores de aprovisionamiento.Verifica los registros de Registros de auditoría de Cloud y de Persistent Disk en Cloud Logging.
Supervisa el estado de todos los
VolumeRestores
en los estadoscreating
yrestoring
.Después de que se corrige el problema, el estado del
VolumeRestores
puede pasar a los estadossucceeded
ofailed
. Si losVolumeRestores
alcanzan un estadosucceeded
, losPersistentVolumeClaims
deberían convertirse enBound
y las cargas de trabajo deberían ser funcionales. Si algúnVolumeRestore
entra en un estadofailed
, debes seguir los pasos para solucionar problemas y resolver el error de validación del volumen. Para obtener más información, consulta Error 200060102: No se pudo completar la operación de restablecimiento debido a un error de validación del volumen
Si los VolumeRestores
permanecen en los estados creating
o restoring
durante un período excesivo, comunícate con Atención al cliente de Cloud para obtener más ayuda.