
Restauracion de Rancher Kubernetes Engine v2
Introducción
La restauración de Rancher es un proceso crucial para garantizar la recuperación de configuraciones esenciales, como usuarios, roles, permisos, entre otros. Este procedimiento resulta fundamental para asegurar la continuidad operativa y la protección de los datos críticos del sistema.
En este tema, exploraremos el proceso para realizar copias de seguridad utilizando el operador de Rancher. Estas copias se enviarán a un almacenamiento S3, que configuraremos previamente como parte de la implementación.
Objetivo
Objetivo General:
- Capacitar a los administradores de sistemas y equipos de DevOps en el proceso de backup y restauración de Rancher Server, asegurando que puedan realizar restauraciones de manera segura y eficiente. El objetivo es brindarles los conocimientos y las mejores prácticas necesarias para planificar, ejecutar y verificar los backups de RKE2. Esto garantizará que, en caso de un desastre, el clúster pueda ser restaurado con el menor tiempo de inactividad posible, manteniendo todas las configuraciones realizadas.
Laboratorio: Desplegar MinIO en cluster (cluster1)
Antes de comenzar
- Contar con el acceso al ambiente de laboratorio
- Haber realizado la validación de conexión y funcionamiento
- Finalizar las prácticas de laboratorio de las instalaciones de RKE2.
- Esta práctica utiliza cluster (cluster1).
Inicio de laboratorio
Esta práctica se ejecutará con el usuario student en el sistemas lab-X-bastion
student@lab-0-bastion:~>
- Procederemos a instalar la herramienta HELM (puede omitir este paso si ya cuenta con ella).
export HELM_VERSION=v3.16.2cd ~curl -sLO https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gztar -xvzf helm-${HELM_VERSION}-linux-amd64.tar.gz -C bin/ linux-amd64/helm --strip-components=1 - Verificar la versión de la herramienta HELM
helm version -
El operador de
rancher backupsutiliza un almacenamiento de objetos compatible con s3 para almacenar las copias de seguridad. Para esta práctica se ha seleccionado MinIO. Puede optener información de este software en MinIO. -
Si ha reinstalado u omitido la guía de preparación del bastion, ejecute el siguiente comando para obtener los archivos correspondientes de cada cluster.
~/lab.sh get_kubeconfig -
Habilitaremos el acceso al
cluster1defieniedo la variableKUBECONFIG. Utilizaremos elcluster1, para desplegar la MiniIO.export KUBECONFIG=/home/student/rke2_conn/cluster1/cluster1_kubeconfig.yaml -
Agregaremos el repositorio de HELM en el cual se encuentra el chart de MinIO.
helm repo add minio-operator https://operator.min.io helm repo update - Instalaremos el chat del operador de MinIO. Más información acerca de operadores en Operator Framework
helm install \ --namespace minio-operator \ --create-namespace \ operator minio-operator/operator -
Verificamos la instalacion del operador.
Salida:kubectl rollout status deployment/minio-operator -n minio-operatordeployment "minio-operator" successfully rolled out -
Con el operador de MinIO funcionando, procederemos a crear los recursos necesarios para utilizar MinIO.
-
Para crear un
tenantde minio, descargaremos un archivo yaml que contiene los valores por defecto, para crear este recurso.mkdir ~/minio curl -sLo ~/minio/values.yaml https://raw.githubusercontent.com/minio/operator/master/helm/tenant/values.yaml -
Realizaremos los siguiente cambios en el archivo descargado. En el bloque de pool (esta es una instalación, no apta para producción):
pools: - servers: 1 name: pool-0 volumesPerServer: 1 size: 5GiEn el bloque de ingress (Consulte su inventario por el valor de WILDCARD):requestAutoCert: falsetenant: name: backup-minio configuration: name: backup-minio-env-configuration configSecret: name: backup-minio-env-configuration accessKey: backup secretKey: Th1s1sNOTaSecurePASSWORD ingress: api: enabled: true ingressClassName: "nginx" labels: { } annotations: nginx.ingress.kubernetes.io/proxy-body-size: "4096m" tls: [ ] host: minio.*WILDCARD* path: / pathType: Prefix console: enabled: true ingressClassName: "nginx" labels: { } annotations: { } tls: [ ] host: minio-console.*WILDCARD* path: / pathType: Prefix -
Procederemos a crear el recurso tipo
tenant, por medio de Helm.helm upgrade --install --namespace minio --create-namespace --values ~/minio/values.yaml minio minio-operator/tenant -
Verificamos la instalacion del tenant ingresando a la siguiente direccion:
Deberiamos ver una pantalla similar a:https://minio-console.*WILDCARD*/
-
Ingresamos con las credenciales definidas en el archivo
values.yaml. -
Crearemos un
bucketcon el nombrebackup-rancher, con los valores por defecto.

Laboratorio: Deplegar Rancher Backups en cluster (aio).
Antes de comenzar
- Contar con el acceso al ambiente de laboratorio
- Haber realizado la validación de conexión y funcionamiento
- Finalizar las prácticas de laboratorio de las instalaciones de RKE2.
- Esta práctica utiliza cluster (aio).
Inicio de laboratorio
- Crearemos un recurso tipo
secret, el cual contiene las credenciales para utilizar MinIO. (No utilice el administrador del tenant en un cluster de Producción, cree un accessKey nuevo con los persmisos adecuados). Utilice las credenciales definidas en el laboratorio anterior.export KUBECONFIG=/home/student/rke2_conn/aio/aio_kubeconfig.yaml kubectl create secret generic s3-creds --from-literal=accessKey=backup --from-literal=secretKey=Th1s1sNOTaSecurePASSWORD -n cattle-system -
Ingresar a Rancher Manager Server, seleccioar el cluster local. En aplicaciones buscaremos
rancher backups.
-
Procederemos a instalar, tomando de referencias las opciones de la siguiente pantalla:
Ajustando el valor de Endpoit, por el que corresponde para su laboratorio. -
Al finaliza la instalacion, ingresaremos a la nueva sección de
Rancher backupsen el menu del lado izquierdo. Crearemos un backup, con los valores por defecto. -
Esperaremos a que finalice el backup al mostrar el estado
Completed. -
Podemos consultar en la console de MinIO la existencia del nuevo objeto en el bucket.
-
Hemos Realizado una copia de seguridad de Rancher Manager Server.
-
Podemos Realizar cambios en Rancher, por ejemplo: Branding, Usuarios, etc.
-
Ingresaremosde nuevo a la sección de
Rancher backupsen el menu del lado izquierdo. -
Crearemos un Restore.
Ingresando un nombre de Restore y el nombre completo incluyendo la extension del backup creado anterioemente.Este proceso puede demorar entre 5 a 10 minutos y durante este tiempo no es posible acceder a la consola de Rancher Manager Server.
-
Puede consultar el progreso del proceso de Backup/Restore.
kubectl logs -n cattle-resources-system $(kubectl get pods -n cattle-resources-system -l app.kubernetes.io/instance=rancher-backup -o name) --tail=10 -f -
Ha completado la restauración de su ambiente. Puede validar el estado de su sistema.