Notas sobre el uso de volúmenes persistentes locales de Kubernetes

Acerca de los volúmenes persistentes locales

En el texto, los volúmenes persistentes locales se denominan PV local para abreviar;

  1. El PV local de Kubernetes se ha lanzado en alfa desde la versión 1.7, lanzado en la versión beta 1.10, y el lanzamiento oficial final (Disponibilidad general) es la versión 1.14;
  2. Un PV local corresponde a un espacio de disco local en el nodo especificado;
  3. En comparación con el almacenamiento remoto como NFS, Local PV ofrece un mejor rendimiento gracias a la E / S local;

Diferencia del volumen de HostPath

Antes de la llegada de la PV local, el método para usar discos locales era HostPath Volume, que es lo mismo que usar discos locales. ¿Cuál es la diferencia?

  1. La diferencia más importante es que el PV local está asociado con un nodo específico. Esto significa que el programador de Kubernetes programará un pod que usa PV local en el mismo nodo si se reinicia varias veces. Si se usa el Volumen HostPath, cada reinicio será El programador de Kubernetes puede programarlo en un nuevo nodo y luego usar la misma ruta local;
  2. Cuando queremos usar HostPath Volume, podemos declarar en el PVC o escribir directamente en la configuración del Pod, pero el PV local solo se puede declarar en el PVC.Los recursos PV generalmente son administrados por una persona dedicada, lo que evita el desarrollo del Pod. Conflictos y riesgos causados ​​por el uso no autorizado de discos locales;
  3. También tenga en cuenta que tanto HostPath Volume como Local PV están usando discos locales. En comparación con los sistemas de archivos distribuidos comunes, las fallas en los discos locales pueden causar pérdida de datos. No utilice HostPath Volume y Local PV para guardar datos importantes ;

Se terminan los conceptos básicos, luego la experiencia de combate real;

Información real del entorno de combate

  1. Sistema operativo: CentOS Linux versión 7.8.2003 (Core)
  2. gobernadores: 1.15.3
  3. timón: 2.16.1

Una breve descripción de los pasos para experimentar la fotovoltaica local

El objetivo de este combate real es crear rápidamente un PV local y verificar que el PV local esté normalmente disponible. El texto completo consta de las siguientes partes:

  1. Crear PV local;
  2. Descargue la tabla de tomcat a través de helm;
  3. Modifique el gráfico para permitir que tomcat use el PV local recién creado;
  4. Implementar tomcat;
  5. Compruebe que la carpeta se haya escrito normalmente en el servidor;

Articulo de referencia

Si desea saber más sobre Kubernetes y helm, consulte:

  1. "Kubespray 2.11 instala kubernetes 1.15" ;
  2. "Implemente y experimente Helm (versión 2.16.1)" ;

Después de la preparación, comience la operación práctica;

Crear PV

  1. Cree una carpeta en el nodo de trabajo de kubernetes para que la use el PV local, la mía es: / root / temp / 202005/24 / local-pv /
  2. Otorgue permisos de lectura y escritura a la carpeta anterior: chmod -R a + r, a + w / root / temp / 202005/24 / local-pv
  3. Cree un archivo local-storage-pv.yaml con el siguiente contenido:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: example-pv
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /root/temp/202005/24/local-pv
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1
  1. Acerca de local-storage-pv.yaml deben tenerse en cuenta los siguientes puntos:.
    Un spec.storageClassName igual a local-Storage , este último también especifica el PVC storageClassName igual a local-Storage
    ;. Se requiere el parámetro Spec.nodeAffinity B , para . establecer la relación entre la PV local y el nodo el valor de spec.nodeAffinity.required, nodeSelectorTerms.matchExpressions.values contiene node1 , indicando que el PV local se puede crear en el nodo cuyo nombre de host es node1 ;
  2. Ejecute el comando kubectl apply -f local-storage-pv.yaml para crear PV;
  3. Ejecute kubectl describe pv example-pv para verificar si la creación es exitosa, como se muestra en el cuadro rojo en la siguiente figura, este PV ya está disponible:
    Inserte la descripción de la imagen aquí

Usar PV

A continuación, implemente tomcat a través de helm y deje que tomcat use el PV local anterior, asegúrese de que se haya instalado helm;

  1. Agregar almacén de helm (un almacén con tomcat): helm repo agregar bitnami https://charts.bitnami.com/bitnami
  2. Descargar el gráfico de tomcat: helm fetch bitnami / tomcat
  3. Una vez que el gráfico se haya descargado correctamente, el paquete de compresión de configuración de tomcat tomcat-6.2.4.tgz aparece en el directorio actual, descomprímalo: tar -zxvf tomcat-6.2.4.tgz
  4. Descomprima para obtener la carpeta tomcat, abra el archivo values.yaml después de ingresar, busque el nodo de persistencia y agregue el contenido en el cuadro rojo en la siguiente figura:
    Inserte la descripción de la imagen aquí
  5. Ejecute el comando en el directorio Tomcat : helm install --name-template tomcat001 -f values.yaml. --Namespace hello-storageclass
  6. Verifique el pod y el servicio de tomcat, todo es normal y el puerto está asignado al 31835 del host:
    Inserte la descripción de la imagen aquí
  7. El navegador visita la IP de host: 31835 y aparece la página de bienvenida de Tomcat :
    Inserte la descripción de la imagen aquí
  8. Vaya al directorio / root / temp / 202005/24 / local-pv / para verificar el uso del disco, como se muestra en la figura a continuación, puede ver el PVC asignado a tomcat y los datos básicos de tomcat están escritos:
    Inserte la descripción de la imagen aquí
  9. Verifique el PV local nuevamente y descubra que el estado ha cambiado: Hasta
    Inserte la descripción de la imagen aquí
    ahora, se puede confirmar que Tomcat usa el PV local y los datos se guardan en la carpeta designada del host;

Limpiar PV local

  1. En términos generales, se deben realizar las siguientes operaciones para limpiar PV:
    a. Eliminar pod o implementación;
    b. Eliminar pvc;
    c. Eliminar PV local;
  2. Dado que aquí se usa helm, los pasos 1 y 2 anteriores se ejecutan a través de helm, y el comando helm delete tomcat001
  3. Luego ejecute kubectl delete -f local-storage-pv.yaml en el directorio donde se encuentra local-storage-pv.yaml para eliminar el PV local;

En este punto, el aprendizaje y la práctica de PV local están completos. Si está utilizando este tipo de almacenamiento, espero que este artículo pueda darle alguna referencia;

Bienvenido a seguir mi cuenta pública: programador Xin Chen

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/boling_cavalry/article/details/106453727
Recomendado
Clasificación