Skip to content

Rancher

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:~>

  1. Procederemos a instalar la herramienta HELM (puede omitir este paso si ya cuenta con ella).
    export HELM_VERSION=v3.16.2
    
    cd ~
    
    curl -sLO https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz
    
    tar -xvzf helm-${HELM_VERSION}-linux-amd64.tar.gz -C bin/ linux-amd64/helm --strip-components=1
    
  2. Verificar la versión de la herramienta HELM
    helm version
    
  3. El operador de rancher backups utiliza 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.

  4. 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
    

  5. Habilitaremos el acceso al cluster1 defieniedo la variable KUBECONFIG. Utilizaremos el cluster1, para desplegar la MiniIO.

    export KUBECONFIG=/home/student/rke2_conn/cluster1/cluster1_kubeconfig.yaml
    

  6. 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
    

  7. 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
    
  8. Verificamos la instalacion del operador.

    kubectl rollout status deployment/minio-operator -n minio-operator
    
    Salida:
    deployment "minio-operator" successfully rolled out
    

  9. Con el operador de MinIO funcionando, procederemos a crear los recursos necesarios para utilizar MinIO.

  10. Para crear un tenant de 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
    

  11. 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: 5Gi
    
    requestAutoCert: false
    
    En el bloque de ingress (Consulte su inventario por el valor de WILDCARD):
    tenant:
      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
    

  12. 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  
    

  13. Verificamos la instalacion del tenant ingresando a la siguiente direccion:

    https://minio-console.*WILDCARD*/
    
    Deberiamos ver una pantalla similar a: Minio

  14. Ingresamos con las credenciales definidas en el archivo values.yaml.

  15. Crearemos un bucket con el nombre backup-rancher, con los valores por defecto. bucket1 bucket2 bucket3

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

  1. 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
    
  2. Ingresar a Rancher Manager Server, seleccioar el cluster local. En aplicaciones buscaremos rancher backups. Backups

  3. Procederemos a instalar, tomando de referencias las opciones de la siguiente pantalla: Backups Ajustando el valor de Endpoit, por el que corresponde para su laboratorio.

  4. Al finaliza la instalacion, ingresaremos a la nueva sección de Rancher backups en el menu del lado izquierdo. Crearemos un backup, con los valores por defecto.

  5. Esperaremos a que finalice el backup al mostrar el estado Completed.

  6. Podemos consultar en la console de MinIO la existencia del nuevo objeto en el bucket. Backups

  7. Hemos Realizado una copia de seguridad de Rancher Manager Server.

  8. Podemos Realizar cambios en Rancher, por ejemplo: Branding, Usuarios, etc.

  9. Ingresaremosde nuevo a la sección de Rancher backups en el menu del lado izquierdo.

  10. 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.

  11. 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
    

  12. Ha completado la restauración de su ambiente. Puede validar el estado de su sistema.