Ir al contenido
  1. Blog/

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x

··1027 palabras·5 mins·
Autor
Marco Escobar
Data protection, Kubernetes, ciberseguridad e IA. Guías prácticas desde la trinchera: Veeam, Kasten, VMware, Oracle, cloud y lo que sea que esté rompiendo en el homelab esta semana.
Tabla de contenido
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 1

Una de las consultas recurrentes que tenemos últimamente es como configurar el Driver CSI de vSphere en entornos OpenShift 4.x sin la necesidad de utilizar el operador que ya desarrolló VMWare, pero que sólo esta soportado para producción a partir de la versión 4.10 de OpenShift. Por tanto, en esta guía revisaremos como instalar y configurar el driver en versiones anteriores a 4.10 sin la necesidad de usar el operador de VMware.

Introducción
#

Como es de conocimiento general, es posible realizar la instalación del Driver CSI de vSphere para aprovisionar volúmenes directamente como First Class Disk usando los DataStores configurados del ambiente vSphere. Además a partir de la versión 4.8 existe un operador de OpenShift en Preview para realizar la instalación del Driver CSI, el cual es soportado, para ambientes productivos completamente en la ultima versión de OpenShift 4.10.

Generalmente los usuarios de OpenShift no actualizan automáticamente a las últimas versiones de OpenShift hasta que sus aplicaciones y/o las nuevas características o versiones de kOpenShift tengan alguna actualización superior o se encuentren compatibles / soportadas, por tanto, esta guía es para realizar la instalación del driver CSI de vSphere desde la línea de comandos.

Esta guía asume que el lector conoce del ambiente de OpenShift como también conectarse vía línea de comandos. En este caso se usa la version de OpenShift 4.8.39

Requerimientos
#

Crearemos 2 archivos, csi-vsphere.conf y vsphere.conf, los cuales contienen las credenciales de acceso a vSphere:

csi-vsphere.conf

[Global]
# Para conseguir el ID del cluster se debe ejecutar el siguiente comando
# oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
cluster-id = "5341dc3e-4ea8-4de6-a4fd-f2715c75a0b8"
[VirtualCenter "vcenter.24xsiempre.cl"]
insecure-flag = "true"
user = "SuperUserdevSphere"
password = "SuperDuperPassword"
port = "443"
datacenters = "24xSiempre"
```bash

En los puntos anteriores se debe ingresar la información de nuestro ambiente vSphere:

- cluster-id: id del cluster de openshift, se debe ejecutar el comando que se indica en el archivo
- VirtualCenter: dirección fqdn de vcenter
- User: Usuario de vCenter que se usa con OpenShift
- Password: Contraseña del usuario de vCenter
- Datacenters: Nombre del Datacenter de vCenter

Luego crearemos el siguiente archivo:

vsphere.conf

```bash
[Global]
# Para conseguir el ID del cluster se debe ejecutar el siguiente comando
# oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
cluster-id = "5341dc3e-4ea8-4de6-a4fd-f2715c75a0b8"
[VirtualCenter "vcenter.24xsiempre.cl"]
insecure-flag = "true"
user = "SuperUserdevSphere"
password = "SuperDuperPassword"
port = "443"
datacenters = "24xSiempre"
```bash

En los puntos anteriores se debe ingresar la información de nuestro ambiente vSphere:

- cluster-id: id del cluster de openshift, se debe ejecutar el comando que se indica en el archivo
- VirtualCenter: dirección fqdn de vcenter
- User: Usuario de vCenter que se usa con OpenShift
- Password: Contraseña del usuario de vCenter
- Datacenters: Nombre del Datacenter de vCenter

Luego de generar los archivos procederemos a configurar los “secrets” desde estos archivos, ejecutando los siguientes comandos:

```bash
oc create secret generic vsphere-config-secret --from-file=csi-vsphere.conf --namespace=kube-system
oc create configmap cloud-config --from-file=vsphere.conf --namespace=kube-system
```json



Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 2
Y para validar si fueron creados correctamente ejecutaremos: ```bash oc get secret vsphere-config-secret --namespace=kube-system oc get configmap cloud-config --namespace=kube-system ```bash
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x
Ahora procederemos a dejar todos los nodos en “Taint” con el siguiente comando: ```bash kubectl taint nodes --all 'node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule' ```json
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 3
Y procederemos a aplicar los siguientes archivos yaml: ```bash oc apply -f https://raw.githubusercontent.com/kubernetes/cloud-provider-vsphere/master/manifests/controller-manager/cloud-controller-manager-roles.yaml oc apply -f https://raw.githubusercontent.com/kubernetes/cloud-provider-vsphere/master/manifests/controller-manager/cloud-controller-manager-role-bindings.yaml oc apply -f https://github.com/kubernetes/cloud-provider-vsphere/raw/master/manifests/controller-manager/vsphere-cloud-controller-manager-ds.yaml ```json
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 4
Y para validar la correcta aplicación de los archivos anteriores, ejecutaremos: ```bash oc describe nodes | grep "ProviderID" ```json
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 5
## Instalación vSphere-CSI Ahora aplicaremos la instalación del driver con la aplicación de los siguientes archivos: ```bash oc apply -f https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/v2.1.1/manifests/v2.1.1/vsphere-7.0u1/vanilla/rbac/vsphere-csi-controller-rbac.yaml oc apply -f https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/v2.1.1/manifests/v2.1.1/vsphere-7.0u1/vanilla/deploy/vsphere-csi-node-ds.yaml oc apply -f https://raw.githubusercontent.com/kubernetes-sigs/vsphere-csi-driver/v2.1.1/manifests/v2.1.1/vsphere-7.0u1/vanilla/deploy/vsphere-csi-controller-deployment.yaml ```json
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 6
Ejecutaremos el siguiente comando: ```bash oc get deployments --namespace=kube-system ```text Y esperaremos hasta que “READY” se encuentre en el estado 1/1:
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 7
Y Validaremos la instalación del driver en los nodos con el siguiente comando: ```bash oc get CSINode ```bash
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 8
## Creación de StorageClass Ahora pasaremos a la configuración del StorageClass para que utilice el driver CSI de vSphere. Antes de todo en vCenter generaremos un “Storage Policy”, este caso de nombre “Contenedores” el cual debe estar asociado al DataStore que utilizaremos para alojar nuestros discos persistentes:
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 9
Luego editamos el siguiente archivo: ```bash cat << EOF | kubectl apply -f - kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: sc-csi-vsphere annotations: storageclass.kubernetes.io/is-default-class: "false" provisioner: csi.vsphere.vmware.com parameters: StoragePolicyName: "Contenedores" datastoreURL: "ds:///vmfs/volumes/60634600-6fcc5d36-bd83-dcfe07e145f9/" EOF

Donde debemos modificar los siguientes parámetros:

  • name: Es el nombre que deseamos para el StorageClass.
  • StoragePolicyName: El nombre del “Storeage Policy” que creamos anteriormente.
  • datastoreURL: La URL del Datastore de vCenter. En la siguiente imagen esta la info.
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 10

Luego de los cambios que aplicamos en el archivo, lo ejecutaremos en la consola y nos mostrará:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 11

Y también lo podremos validar en la consola de OpenShift:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 12

Creación de Disco Persistente
#

Crearemos un disco persistente desde la consola de OpenShift para validar la creación y eliminación de discos con el nuevo StorageClass. Ingresaremos en la consola de OpenShift, Storage, PersistenVolumeClaims y haremos clic en “Create PersistentVolumeClaim”:

  1. Seleccionamos el StorageClass que creamos con vSphere CSI
  2. Ingresamos el Nombre del Volumen
  3. Ingresamos el tamaño
  4. Clic en “Create”
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 13

Y veremos la creación del disco en OpenShift:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 14

En el Datastore configurado:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 15
Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 16

Ahora eliminaremos el disco para validar el correcto funcionamiento:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 17

Confirmación en OpenShift:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 18

Confirmación de Eliminación en vCenter:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 19

Configuración StorageClass por defecto
#

Ingresaremos en la consola de OpenShift, luego, Storage y haremos clic en “StorageClasses”, donde veremos:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 20

Como se puede observar en la imagen anterior el StorageClass por defecto es “thin”, el cual es creado automáticamente al instalar OpenShift, seleccionaremos el “thin”, luego “Edit Annotations” y cambiaremos el parámetro “storageclass.kubernetes.io/is-default-class” a “false” y guardamos:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 21

Y por último, seleccionamos nuestro StorageClass que usa el driver CSI de vSphere, en este caso, “sc-csi-vsphere”, clic en “Edit Annotations” y cambiamos el parámetro “storageclass.kubernetes.io/is-default-class” a “true” y guardamos:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 22

Ahora veremos que nuestro StorageClass es por defecto y cada nueva creación de discos persistentes lo usará:

Como Instalar vSphere CSI Driver en RedHat OpenShift 4.x — captura 23

Por tanto, ahora solo falta instalar Kasten K10 para proteger todas tus aplicaciones en OpenShift, donde en este blog existen múltiples guías para instalar y configurar Kasten K10.

Posts relacionados
#

Relacionados