En este documento se describen los errores y los códigos correspondientes que pueden producirse al usar la función de copia de seguridad de GKE para realizar operaciones de restauración. En cada sección se incluyen aspectos que debes tener en cuenta al realizar acciones para resolver los errores de restauración, así como instrucciones sobre cómo resolverlos.
Error 200010301: no se ha podido completar la operación de restauración debido a que el servicio de webhook de admisión no está disponible
El error 200010301
se produce cuando no se puede completar una operación de restauración porque no está disponible un servicio de webhook de admisión, también denominado retrollamada HTTP, lo que provoca el siguiente mensaje de error. El mensaje de error indica que el servidor de la API de GKE ha intentado ponerse en contacto con un webhook de admisión al intentar restaurar un recurso, pero el servicio que admite el webhook no estaba disponible o no se ha encontrado:
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 se produce cuando un recurso de ValidatingAdmissionWebhook
o MutatingAdmissionWebhook
de GKE está activo en el clúster de destino, pero el servidor de la API de GKE no puede acceder al endpoint 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 debe consultar el servidor de la API de GKE las solicitudes.
El webhook clientConfig
especifica el backend que gestiona 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. En función del tipo de opción,
es posible que la operación de restauración haya fallado por los siguientes motivos:
Servicios en el clúster: el servicio de GKE y sus pods de respaldo no se restauran ni están listos cuando el servidor de la API de GKE intenta llamar al webhook. Esto ocurre durante las operaciones de restauración en las que se aplican configuraciones de webhook con ámbito de clúster antes de que los servicios con ámbito de espacio de nombres estén completamente en estado
ready
.URLs externas: el endpoint externo no está disponible temporalmente debido a problemas de conectividad de red entre el clúster de GKE y el endpoint externo, o bien a problemas de resolución de DNS o reglas de cortafuegos.
Para resolver este error, siga estas instrucciones:
Identifica el webhook que falla y que se menciona en el mensaje de error. Por ejemplo,
failed calling webhook "..."
.Inspecciona el webhook ejecutando el comando
kubectl get validatingwebhookconfigurations
:kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
Sustituye
WEBHOOK_NAME
por el nombre del webhook que se ha identificado 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
Sustituye
WEBHOOK_NAME
por el nombre del webhook que se ha identificado en el mensaje de error.Sigue los pasos que se indican a continuación para solucionar el problema en función del tipo de configuración:
Basado en servicios
clientConfig
Define un orden de restauración personalizado modificando el recurso
RestorePlan
para incluir unRestoreOrder
con entradasGroupKindDependency
. De esta forma, los componentes que respaldan el webhook, comoDeployment
,StatefulSet
oService
, se pueden restaurar y estar listos antes deValidatingWebhookConfiguration
oMutatingWebhookConfiguration
.Para obtener instrucciones sobre cómo definir un orden de restauración personalizado, consulta Especificar el orden de restauración de los recursos durante la restauración.
Este enfoque puede fallar porque los pods del servicio no entran en un estado
ready
completo, incluso después de crear el objetoService
. Otro motivo por el que se puede producir un error es que otra aplicación haya creado la configuración del webhook de forma inesperada. También puede realizar una operación de restauración en dos fases siguiendo estos pasos:Crea un recurso
Restore
a partir de la copia de seguridad configurando la operación de restauración con un filtro de restauración detallado que incluya los recursos específicos que necesita el webhook para funcionar. Por ejemplo,Namespaces
,Deployments
,StatefulSets
oServices
.Para obtener más información sobre cómo configurar la restauración con un filtro de restauración detallado, consulta Habilitar la restauración detallada.
Crea otro recurso
Restore
para la operación de copia de seguridad y configura el resto de los recursos que elijas.
Basado en URLs
clientConfig
Verifica el endpoint HTTPS externo y asegúrate de que esté activo, 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 tengas que comprobar las reglas del cortafuegos, por ejemplo, si utilizas Virtual Private Cloud, un entorno local o un proveedor de servicios en la nube que aloje el webhook, las políticas de red y la resolución de DNS.
Vuelve a intentar la operación de restauración. Si la operación sigue fallando, ponte en contacto con Cloud Customer Care para obtener más ayuda.
Error 200010302: no se ha podido completar la operación de restauración porque se ha denegado la solicitud de creación de recursos
El error 200010302
se produce cuando no se puede completar una operación de restauración porque un webhook de admisión deniega una solicitud de creación de recursos, lo que provoca el siguiente mensaje de error, que indica que no se ha podido crear un recurso de tu copia de seguridad en el clúster de destino porque un webhook de admisión activo ha interceptado la solicitud y la ha rechazado 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 definida en el clúster de GKE de destino, que tiene un ValidatingAdmissionWebhook
o un MutatingAdmissionWebhook
que aplica reglas específicas a 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 en el clúster un recurso relacionado, pero conflictivo. Por ejemplo, un webhook puede denegar la creación de una implementación si ya la gestiona un recurso de la API de GKE.HorizontalPodAutoscaler
Para resolver este error, siga estas instrucciones:
Identifica el webhook que está denegando la solicitud mediante el mensaje de error que se produce cuando falla la operación de restauración. Por ejemplo,
webhook WEBHOOK_NAME denied the request
El mensaje de error contiene la siguiente información:Nombre del webhook: el nombre del webhook que deniega la solicitud.
Motivo del rechazo: el motivo específico por el que se ha rechazado la solicitud.
Inspecciona el webhook ejecutando el comando
kubectl get validatingwebhookconfigurations
:kubectl get validatingwebhookconfigurations WEBHOOK_NAME -o yaml
Sustituye
WEBHOOK_NAME
por el nombre del webhook que has identificado 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
Sustituye
WEBHOOK_NAME
por el nombre del webhook que has identificado en el mensaje de error.Resuelve el problema subyacente en el clúster de destino. La acción correcta depende del error específico. Por ejemplo, si hay un conflicto de
HorizontalPodAutoscaler
, debes eliminar elHorizontalPodAutoscaler
del clúster de destino antes de ejecutar la restauración para permitir que se creen las cargas de trabajo de las que se ha creado una copia de seguridad y sus recursos asociados.Vuelve a intentar la operación de restauración. Si la operación de restauración sigue fallando, ponte en contacto con el equipo de Asistencia de Google Cloud para obtener más ayuda.
Error 200060202: no se ha podido completar la operación de restauración porque falta un recurso 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 restauración cuando no se encuentra en el clúster de destino un recurso de GKE que Copia de seguridad de GKE espera validar. Como resultado, se muestra 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 Backup for GKE crea o actualiza correctamente el recurso de GKE como parte del proceso de la operación de restauración, pero, cuando comienza la fase de validación, uno o varios de los recursos de GKE ya no están presentes en el clúster de destino porque se eliminaron después de que el proceso de restauración los creara o actualizara inicialmente, pero antes de que se pudiera completar la validación de la carga de trabajo del recurso de GKE. Este error puede producirse por los siguientes motivos:
Eliminación manual: un usuario o administrador ha eliminado manualmente el recurso con
kubectl
u otras Google Cloud herramientas.Automatización externa: los controladores GitOps, como Config Sync, ArgoCD, Flux, las secuencias de comandos personalizadas u otras herramientas de gestión de clústeres, han revertido o eliminado el recurso para que coincida con el estado deseado en un repositorio.
Controladores de GKE: un controlador de GKE ha eliminado un recurso porque entra en conflicto con otros recursos o políticas, o bien una cadena
OwnerReference
ha llevado a la recogida de elementos no utilizados o al proceso de limpieza automatizado de GKE que elimina los recursos dependientes cuando se elimina su recursoowner
.
Para resolver este error, siga estas instrucciones:
Identifica el recurso que falta mediante el mensaje de error que aparece cuando no se completa la operación de restauración.
Busca el espacio de nombres al que pertenece el recurso con uno de los siguientes métodos:
Registros de auditoría de GKE: consulta 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 eliminación de los recursos
Kind
yName
. La entrada del registro de auditoría contiene el espacio de nombres original.Detalles de la copia de seguridad: revisa el alcance de la operación de restauración 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 el
RestorePlan
contiene unTransformationRule
que especifique reglas para restaurar 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
Sustituye
KIND
yNAME
por los valores del mensaje de error. Si el recurso sigue existiendo, este comando mostrará su espacio de nombres.
Para verificar la eliminación, ejecuta el comando
kubectl get
:kubectl get KIND NAME -n [NAMESPACE]
Sustituye
KIND
yNAME
por los valores del mensaje de error. Debería aparecer unnot found
mensaje de error.Investiga la causa de la eliminación con uno de los siguientes métodos:
Registros de auditoría de GKE: identifican qué entidad ha emitido la solicitud de eliminación. Por ejemplo, el usuario, la cuenta de servicio o el controlador.
Revisa las automatizaciones configuradas: si usas GitOps u otras herramientas de automatización, consulta sus registros y su estado para ver si han interferido en los recursos restaurados.
Examina los eventos relacionados: comprueba los eventos de GKE en el espacio de nombres determinado ejecutando el comando
kubectl get events
:kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
Sustituye
NAMESPACE_NAME
por el nombre del espacio de nombres.
Soluciona la causa de la eliminación del recurso en función de los resultados del paso anterior. Por ejemplo, pausar automatizaciones conflictivas, corregir errores de configuración o ajustar los permisos de los usuarios.
Recupera el recurso que falta con uno de los siguientes métodos:
Vuelve a aplicar los archivos de manifiesto: si tienes el manifiesto del recurso que falta, puedes volver a aplicarlo al espacio de nombres correcto.
Realiza una restauración granular: lleva a cabo una operación de restauración granular para restaurar de forma selectiva solo el recurso que falta de la misma copia de seguridad, lo que te asegura que especificas el espacio de nombres correcto. Para obtener más información sobre cómo realizar una operación de restauración granular, consulta Habilitar la restauración granular.
Vuelve a intentar la operación de restauración. Si la operación de restauración sigue fallando, ponte en contacto con el equipo de Asistencia de Google Cloud para obtener más ayuda.
Error 200060201: No se ha podido completar la operación de restauración debido al tiempo de espera de la validación de la carga de trabajo
El error 200060201
se produce cuando una o varias cargas de trabajo restauradas no se convierten en ready
por completo durante una operación de restauración dentro del plazo previsto después de que se hayan creado los recursos en el clúster. Esto provoca el siguiente mensaje de error:
Workload Validation Error: Timedout waiting for workloads to be ready - [namespace/workload_name, ...]
Este error se produce porque Backup for GKE realiza un paso de validación después de restaurar las configuraciones de recursos de GKE para asegurarse de que las cargas de trabajo críticas funcionen correctamente. Copia de seguridad de GKE espera a que determinadas cargas de trabajo alcancen el estado ready
, pero al menos una de ellas no ha cumplido el siguiente criterio de preparación en el periodo 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, siga estas instrucciones:
Identifica las cargas de trabajo que no están en estado
ready
en el mensaje de error que muestra las cargas de trabajo y sus espacios de nombres que no han podido pasar al estadoready
.Inspecciona el estado de las cargas de trabajo y consulta los detalles y los eventos de las cargas de trabajo que han fallado ejecutando el comando
kubectl describe
:kubectl describe WORKLOAD_TYPE WORKLOAD_NAME -n NAMESPACE_NAME kubectl get pods -n NAMESPACE_NAME -l SELECTOR_FOR_WORKLOAD
Haz los cambios siguientes:
WORKLOAD_TYPE
: el tipo de carga de trabajo. Por ejemplo,Deployment
,StatefulSet
oDaemonSet
.WORKLOAD_NAME
: el nombre de la instancia de carga de trabajo específica.NAMESPACE_NAME
: el espacio de nombres en el que se encuentra la carga de trabajo.SELECTOR_FOR_WORKLOAD
: el selector de etiquetas para buscarPods
asociado a la carga de trabajo. Por ejemplo,app=my-app
.
En el caso de los pods de los tipos de carga de trabajo
Deployments
oStatefulSets
, comprueba el estado de los pods individuales ejecutando el comandokubectl describe pod
:kubectl describe pod POD_NAME -n NAMESPACE_NAME
Haz los cambios siguientes:
POD_NAME
: el nombre del pod específico.NAMESPACE_NAME
: el espacio de nombres en el que se encuentra el pod.
En la sección
Events
, analiza los eventos y los registros de la salidadescribe
y busca la siguiente información:ImagePullBackOff / ErrImagePull
: indica que hay problemas al obtener imágenes de contenedor.CrashLoopBackOff
: indica que los contenedores se están iniciando y fallando.
En la sección
Containers
, analiza los registros de contenedores en la salidadescribe
para encontrar el nombre del contenedor ejecutando el comandokubectl logs
:kubectl logs POD_NAME -n NAMESPACE_NAME -c CONTAINER_NAME
Haz los cambios siguientes:
POD_NAME
: el nombre del pod específico.NAMESPACE_NAME
: el espacio de nombres en el que se encuentra el pod.CONTAINER_NAME
: el nombre del contenedor 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, entre los que se incluyen los siguientes:Errores en la comprobación de preparación: las comprobaciones de preparación del contenedor no se realizan correctamente.
Problemas con los recursos: no hay suficiente CPU, memoria u otros recursos en el clúster o se han alcanzado los límites de cuota.
Problemas con los contenedores init: errores en los contenedores init que impiden que se inicien los contenedores principales.
Errores de configuración: errores en
ConfigMaps
,Secrets
o variables de entorno.Problemas de red:
Pods
no puede comunicarse con los servicios necesarios.
Comprueba los recursos del clúster de GKE para asegurarte de que tiene suficiente capacidad de nodo, 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 te recomendamos que compruebes si hay limitaciones o errores de escalado de nodos. Aborda los problemas subyacentes en función de tus conclusiones 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 asegurarse de que se cumplen las dependencias.Una vez que se hayan resuelto los problemas subyacentes, espera a que las cargas de trabajo pasen al estado
ready
. No es necesario que vuelvas a ejecutar la operación de restauración.
Si el problema persiste, ponte en contacto con Cloud Customer Care para obtener más ayuda.
Error 200060102: no se ha podido completar la operación de restauración debido a un error de validación del volumen
El error 200060102
se produce porque uno o varios recursos VolumeRestore
, que gestionan el proceso de restauración de datos de VolumeBackup
a PersistentVolume
, han entrado en el estado failed
o deleting
durante la fase de validación de volúmenes de una operación de restauración. Si no se puede restaurar el volumen, se mostrará el siguiente mensaje de error en el campo stateReason del recurso de restauración:
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 indica los nombres de recursos completos de los VolumeRestore
que han fallado, incluido el nombre y el espacio de nombres del PersistentVolumeClaim
de destino. El mensaje de error indica que el proceso de restauración de datos de PersistentVolumeClaim
no se ha completado correctamente cuando la función de copia de seguridad de GKE ha iniciado los recursos de VolumeRestore
para aprovisionar PersistentVolumes
desde VolumeBackups
y se ha producido un error al crear el disco persistente subyacente a partir de la instantánea. Los errores de VolumeRestore
pueden producirse por los siguientes motivos:
Cuota insuficiente: no hay suficiente cuota de disco persistente asignada en el proyecto o la región (por ejemplo,
SSD_TOTAL_GB
).Problemas de permisos: la cuenta de servicio que usa Backup for GKE no tiene los permisos necesarios para crear discos o acceder a las copias de seguridad.
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 del disco persistente subyacente están dañadas o no se puede acceder a ellas.Restricciones de recursos: otras restricciones de recursos del clúster impiden el aprovisionamiento de volúmenes.
Errores internos: hay problemas internos en el servicio Persistent Disk.
Para resolver este error, siga estas instrucciones:
Identifica el
PersistentVolumeClaims
que aparece en el mensaje de error, que muestra los nombres de recursos completos de los objetosVolumeRestore
que han fallado.Para obtener los detalles de cada recurso
VolumeRestore
que no se haya podido crear, 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
Haz los cambios siguientes:
VOLUME_RESTORE_ID
: el ID del recursoVolumeRestore
que ha fallado.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: la Google Cloud ubicación de la restauración.RESTORE_PLAN_ID
: el ID del plan de restauración.RESTORE_ID
: el ID de la operación de restauración.
Consulta los campos
.state
ystateMessage
de la salida para obtener más información sobre el fallo.Consulta el estado del
PersistentVolumeClaim
de destino ejecutando el comandokubectl get pvc
:kubectl get pvc PVC_NAME -n NAMESPACE_NAME -o yaml
Haz los cambios siguientes:
PVC_NAME
: el nombre delPersistentVolumeClaim
recurso.NAMESPACE_NAME
: el espacio de nombres donde se encuentraPersistentVolumeClaim
.
Confirma que la sección
status.phase
del resultado indica unaPending
fase. En esta fase,PersistentVolumeClaim
aún no está vinculado aPersistentVolume
, lo cual es normal siVolumeRestore
falla.Consulta la sección
Events
de la salida de YAML para ver los 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 cifrado durante la creación del disco. Para proporcionar
compute service agent
permisos relevantes para acceder a la clave, sigue las instrucciones que se describen en la documentación de Copia de seguridad de GKE sobre cómo habilitar el cifrado con CMEK.Revisa los eventos de GKE en el espacio de nombres
PersistentVolumeClaim
, que proporcionan mensajes de error detallados del controladorPersistentVolume
o del controlador CSI, ejecutando el comandokubectl get events
:kubectl get events -n NAMESPACE_NAME --sort-by='.lastTimestamp'
Sustituye
NAMESPACE_NAME
por el espacio de nombres dePersistentVolumeClaim
.Identifica los eventos relacionados con el nombre
PersistentVolumeClaim
, que contiene palabras clave comoFailedProvisioning
oExternalProvisioning
. Los eventos también pueden contener errores del proveedor de almacenamiento, comopd.csi.storage.gke.io
.Examina los registros de Persistent Disk consultando los registros de auditoría de Cloud y los registros de Persistent Disk en Cloud Logging para comprobar si hay errores relacionados con las operaciones de creación de discos en el momento del fallo.
En función de los mensajes de error generados, soluciona los siguientes problemas subyacentes:
Aumenta las cuotas de discos persistentes si es necesario, como en el caso de
(QUOTA_EXCEEDED}: Quota SSD_TOTAL_GB exceeded
.Verifica y corrige los permisos de gestión de identidades y accesos.
Investiga y resuelve problemas de red.
Ponte en contacto con el equipo de atención al cliente de Cloud para resolver los problemas con la instantánea o el servicio de disco persistente.
El
PersistentVolumeClaim
sigue en estadoPending
.El proceso de restauración no vuelve a intentar automáticamente la operación
VolumeRestore
. Para solucionar este problema, debes activar una operación de restauración para la carga de trabajoDeployment
oStatefulSet
que utilice elPersistentVolumeClaim
afectado.Usa una restauración granular para restaurar de forma selectiva la carga de trabajo de
Deployment
oStatefulSet
asociada alPersistentVolumeClaim
que ha fallado. De esta forma, los mecanismos estándar de GKE pueden volver a gestionar el proceso de creación y vinculación dePersistentVolumeClaim
si se soluciona el problema subyacente. Para obtener más información sobre la restauración granular, consulta Habilitar la restauración granular.
Si el problema persiste o no está claro el motivo del fallo de VolumeRestore
, ponte en contacto con el equipo de Asistencia de Google Cloud para obtener más ayuda.
Error 200060101: no se ha podido completar la operación de restauración debido al 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 restauración cuando Backup for GKE deja de esperar porque al menos un recurso VolumeRestore
, que gestiona la restauración de datos de un VolumeBackup
, no ha alcanzado el estado succeeded
en el periodo de tiempo de espera asignado. Es posible que otros recursos VolumeRestore
también estén incompletos.
El mensaje de error del campo stateReason
del recurso Restore
muestra el primer recurso VolumeRestore
que aún no estaba en el estado succeeded
cuando se comprobó el tiempo de espera. Incluye el nombre y el espacio de nombres de PersistentVolumeClaim
de destino de 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)]
La función de copia de seguridad de GKE inicia los recursos VolumeRestore
para aprovisionar
PersistentVolumes
desde VolumeBackups
. El error indica que la creación del disco persistente subyacente a partir de la instantánea y la vinculación posterior del PersistentVolumeClaim
al PersistentVolume
han tardado más que el tiempo de espera calculado para el VolumeRestore
citado. Es posible que otros VolumeRestores
de la misma operación de restauración también estén en un estado no completado.
Aunque se haya alcanzado el tiempo de espera desde la perspectiva de Backup for GKE, es posible que el proceso de creación del disco subyacente del recurso VolumeRestore
mencionado, y posiblemente de otros recursos VolumeRestore
, siga en curso o haya fallado.
Para solucionar este problema, sigue estas instrucciones:
Identifica el nombre y el espacio de nombres de
PersistentVolumeClaim
que ha agotado el tiempo de espera en el mensaje de error. Por ejemplo,(PVC: PVC_NAMESPACE/PVC_NAME)
.Lista todos los
VolumeRestores
asociados a la operación de restauración para ver sus estados actuales ejecutando el comandogcloud beta container backup-restore volume-restores list
:gcloud beta container backup-restore volume-restores list \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN_NAME \ --restore=RESTORE_NAME
Haz los cambios siguientes:
PROJECT_ID
: el ID del Google Cloud proyecto.LOCATION
: la Google Cloud ubicación de la restauración.RESTORE_PLAN_NAME
: el nombre del plan de restauración.RESTORE_NAME
: el nombre de la operación de restauración.
Busca los
VolumeRestores
que no estén en estadosucceeded
.Obtén información sobre el
VolumeRestore
mencionado en el error y cualquier otroVolumeRestores
que no esté en estadosucceeded
ejecutando 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
Haz los cambios siguientes:
VOLUME_RESTORE_ID
: el ID del recursoVolumeRestore
.PROJECT_ID
: el ID de tu proyecto de Google Cloud .LOCATION
: la Google Cloud ubicación de la restauración.RESTORE_PLAN_NAME
: el nombre del plan de restauración.RESTORE_NAME
: el nombre de la operación de restauración.
Comprueba 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
objetivo.Examina el estado del objetivo identificado
PersistentVolumeClaims
ejecutando el comandokubectl get pvc
:kubectl get pvc PVC_NAME -n PVC_NAMESPACE -o yaml
Haz los cambios siguientes:
PVC_NAME
: el nombre delPersistentVolumeClaim
.PVC_NAMESPACE
: el espacio de nombres dePersistentVolumeClaim
.
Es probable que el valor de
PersistentVolumeClaim's
status.phase
seaPending
. Consulte la secciónEvents
para ver si hay alguno de los siguientes errores: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 se programa unPod
que usePersistentVolumeClaim
. El problema puede estar relacionado con laPod
, no con el aprovisionamiento del volumen en sí. Por lo tanto, le recomendamos que confirme 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
.
Para revisar los eventos de GKE en los espacios de nombres correspondientes, ejecuta el comando
kubectl get events
:kubectl get events -n PVC_NAMESPACE --sort-by='.lastTimestamp'
Sustituye
PVC_NAMESPACE
por el espacio de nombres dePersistentVolumeClaim
.Busca eventos relacionados con los nombres de
PersistentVolumeClaim
, como mensajes o errores de aprovisionamiento.Consulta los registros de auditoría de Cloud y los registros de discos persistentes en Cloud Logging.
Monitoriza el estado de todos los
VolumeRestores
en los estadoscreating
yrestoring
.Una vez que se haya solucionado el problema, el estado de la
VolumeRestores
puede cambiar asucceeded
ofailed
. Si losVolumeRestores
alcanzan el estadosucceeded
, losPersistentVolumeClaims
deben convertirse enBound
y las cargas de trabajo deben funcionar. Si algúnVolumeRestore
entra en el estadofailed
, debes seguir los pasos para solucionar el error de validación del volumen. Para obtener más información, consulta Error 200060102: no se ha podido completar la operación de restauración debido a un error de validación del volumen.
Si VolumeRestores
permanecen en los estados creating
o restoring
durante un periodo excesivo, ponte en contacto con el equipo de Asistencia de Cloud para obtener más ayuda.