Una de las plataformas más usadas en las empresas para la gestión, operación y mantención de Contenedores es Red Hat OpenShift, en la siguiente guía revisaremos como proteger nuestros contenedores en Red Hat OpenShift 4.x integrado VMware vSphere a través de su Container Storage Interface con Kasten K10 Platform, configurando rutas para acceder a la interfaz de administración de K10 y utilizando Minio S3 como destino de los respaldos.
Pasos Inciales
Como siempre debemos comenzar con la revisión de la documentación oficial de las aplicaciones, primero comenzaremos por Red Hat OpenShift 4.7 (Última versión a la fecha de esta guia):
Donde la documentación indica los requerimientos y forma de instalación de Red Hat OpenShift 4.7 a través de IPI (Installer Provisioned Infrastructure) donde se ejecuta el instalador y solo debemos ingresar los datos solicitados de VMware vCenter. En este post no explicare como instalar OpenShift ya que con IPI es muy facil realizarlo. Si debemos revisar una parte de la documentacion muy importante de OpenShift en relacion a los volumenes
El Storage Class por defecto que se configura en OpenShift a través de IPI es de nombre “thin” utilizando kubernetes.io/vsphere-volume donde al requerir algún volumen persistente para los contenedores, este storage class, nos proveerá de discos independientes y persistentes desde vSphere, por tanto, como sabemos, no podremos realizar snapshots a esos volúmenes, por eso es importante revisar la documentación que nos antecede.
Y por supuesto revisar la documentación de Kasten K10 Platform, actualmente en la versión 3.0.9 (a la fecha de esta post) para los requerimientos y pasos de instalación en Red Hat OpenShift
https://docs.kasten.io/latest/index.html
Instalación Kasten OpenShift 4.x
Antes de instalar Kasten en cualquier distribución de Kubernetes, siempre debemos realizar la ejecución de un script para realizar chequeos previos a la instalacion y validar si tenemos soporte de las caracterisitcas de Kasten K10, con el siguiente comando:
curl https://docs.kasten.io/tools/k10_primer.sh | bash
Si no encuentra el ejecutable helm, pueden ver la la instalación de los requisitos previos en el link en la parte de instalacion de Kasten:
https://24xsiempre.com/veeam-kasten/
Ahora ya que tenemos los requisitos previos, helm, kubectl, vSphere CSI (en este caso la versión 2.1.1) comenzaremos con la instalacion de Kasten K10, como lo indica la documentacion debemos realizar dos comandos:
helm repo add kasten https://charts.kasten.io/
kubectl create namespace kasten-io
Ya tenemos todo pre-configurado, solo nos falta la instalación, como se indica en la documentación de Kasten, realizaremos el siguiente comando
helm install k10 kasten/k10 --namespace=kasten-io \
--set scc.create=true
Como se ve en la imagen anterior, ya tenemos instalado nuestro Kasten K10 sobre OpenShift, ahora revisaremos el estado de los pods con el comando:
watch oc get pods -n kasten-io
Debemos esperar que todos los pods de Kasten se encuentren en estado “running”
Y si revisamos los volumenes persistentes que usa Kasten desde la linea de comandos:
oc get pv,pvc
Observamos que esta utilizando el Storage Class, vsphere-csi, y asociado a los volúmenes que también podemos observar en en el datastore que utilizamos en vCenter:
Asi como tambien en la consola de Red Hat OpenShift
Acceso K10 Dashboard a través de Ruta en OpenShift
Para acceder a la consola de administracion de Kasten K10, solo debemos realizar una ruta en OpenShift para exponer nuestro servicio, en este caso lo realizaremos a traves de la consola Web de Red Hat OpenShift, vamos Networking -> Routes y en la esquina superior izquierda seleccionamos el proyecto “kasten-io”
Aquí realizaremos la creación de la Ruta haciendo clic en “Create Route” e ingresaremos la siguiente informacion:
- Name: El nombre que quieras en este caso “k10”
- Hostname: lo dejamos en blanco para que nos asigne un hostname o ingresas uno que quieras
- Path: por defecto
- Service: Seleccionar el servicio “gateway”
- Target Port: Seleccionar el único que despliega, si no, solo 8000 -> 8000 TCP
Y luego al hacer clic en “Create” nos mostrara los detalles y el link de acceso que se ve en “Location“
Luego hacen clic o copiar la direccion URL que se encuentra en “Location” y le agregan “/k10/#/” para acceder a la consola de administracion, la url en mi caso quedaria:
http://k10-kasten-io.apps.oc.24xsiempre.cl/k10/#/
Y al acceder a la URL veremos la consola y mensaje de bienvenida de Kasten:
Ingresamos nuestros datos y procederemos a configurar nuestra solución de Kasten K10 Platform.
Configuración Kasten K10 con Minio S3
Primero instalaremos Minio sobre Ubuntu, donde puedes seguir una de las múltiples guías muy simples de configurar por ejemplo:
Luego de tener operativo Minio S3, realizaremos la configuracion de Kasten k10 ingresando en “Settings” para agregar un nuevo “Profile”
Donde ingresaremos el nombre del perfil y selecionaremos “S3 Compatible” para usar con Minio
- Profile Name: openshift, o puede ser el nombre que desees
- Cloud Storage Provider: S3 Compatible, para usar con Minio debe ser esta opcion, de lo contrario puedes usar la que necesites
- S3 Access Key: Access key, de Minio o tu proveedor de almacenamiento de objetos
- S3 Secret: Secret o Password, de Minio o tu proveedor de almacenamiento de objetos
- Endpoint: http://40.40.40.100:9000/ , o la direccion de tu servidor minio
- Skip Certificate chain and hostname verification: Habilitado, ya que no estamos usando SSL en este caso.
- Region: Dejar en Blanco
- Bucket Name: openshift, nombre del bucket a utilizar
Y la configuración se mostrará así:
Configuración Kasten K10 con vSphere vCenter
Ingresando en “Settings” y seleccionando “Infrastructure” generaremos un nuevo “Profile”
Donde
- Profile Name: vcenter, o el nombre que quieras
- Infrastructure Type: vSphere
- vCenter Server: direccion ip o dns de vcenter, de preferencia fqdn
- vSphere User: usuario vcenter con privilegios
- vSphere Password: password
Y ya teniendo todo esto configurado podrás realizar los respaldos utilizando la interfaz CSI para vSphere creando snapshots de los volúmenes persistentes que existen en los datastores configurados.
Y por supuesto la generación de políticas de respaldos con Kasten k10 la puedes revisar en https://24xsiempre.com/veeam-kasten/
Excelente, Marco! Parabéns.