Volúmenes Kubernetes HostPath

Un volumen hostPath apunta a un directorio o socket de sistema de archivos específico en el nodo. Hay diferentes tipos de volúmenes en Kubernetes. Debido a que se eliminan los volúmenes GitRepo y EmptyDir, el volumen hostPath es beneficioso en las aplicaciones de Kubernetes porque conserva el contenido de los volúmenes. El volumen hostPath y el tipo de volumen de Kubernetes se tratan en este artículo. Este artículo le muestra cómo iniciar Minikube y crear un manifiesto de archivo YAML. Luego, se le guiará paso a paso a través de la configuración del volumen hostPath y la creación del volumen del módulo.
[*]¿Qué son los volúmenes de Kubernetes?

Los contenedores en un pod de Kubernetes pueden acceder a un directorio de datos llamado volumen de Kubernetes. Según el tipo específico de disco utilizado, la ubicación del directorio, el medio de almacenamiento que lo admite y su contenido variarán. Los procesos dentro de un pod de contenedor ven una vista del sistema de archivos compuesta por lo siguiente:

    • Un sistema de archivos raíz idéntico al contenido de la imagen del contenedor.
    • Contenedores montados con volúmenes (si están definidos). Dentro del sistema de archivos contenedor, cada volumen se monta en una ruta diferente.

El contenedor .spec[*].volumeMounts define los volúmenes. Para cada imagen de contenedor incluida en el pod, debe especificar los volúmenes y las rutas de montaje para cada pod. En Kubernetes existen diferentes tipos de volúmenes como:

    • Volúmenes persistentes
    • Volúmenes de directorios vacíos
    • Volúmenes efímeros
    • Mapa de configuración de volúmenes de Kubernetes
    • Volúmenes de hostPath de Kubernetes

[*]¿Qué son los volúmenes de Kubernetes HostPath?

En Kubernetes, hostPath significa servir recursos como archivos, sockets o directorios desde el host o nodo dentro del pod. hostPath puede especificar cosas como directorios que ya existen o que se crearán en la creación del pod. Como se muestra en la siguiente figura, un volumen hostPath apunta a los recursos en el sistema de archivos del nodo. Los mismos archivos son visibles para todos los pods que usan el mismo volumen hostPath y se ejecutan en el mismo nodo.
Ilustración 1: Los archivos o directorios de un nodo trabajador se montan en el sistema de archivos del contenedor mediante un volumen hostPath. Cuando se destruye un pod, se elimina el contenido de los volúmenes GitRepo y emptyDir, pero no el contenido del volumen hostPath. El siguiente pod puede mostrar todos los archivos que dejó el pod eliminado si está conectado al mismo nodo que el anterior y usa un volumen hostPath que apunta a la misma ruta en el host. Los siguientes son casos de uso importantes para volúmenes hostPath. Si bien la mayoría de las cápsulas no lo requieren, proporciona una vía de escape poderosa en algunas situaciones:

    • Usar el pod para implementar algunos archivos específicos del nodo.
    • Ejecutar un contenedor que necesita acceso a las funciones internas de Docker con el siguiente comando:

> ruta /var/lib/dockerhost

    • Ejecute el cAdvisor en un contenedor con el siguiente comando:
    • Permita que un pod especifique un hostPath para declarar si debe existir o establecerse un hostPath específico antes de que se ejecute el pod.
    • elegir un tipo para el volumen hostPath; esto se puede configurar además del atributo de ruta requerido.

[*]Cómo configurar y crear un HostPath

Empecemos aprendiendo cómo configurar y crear hostPath.
Paso 1: Inicie el servidor Minikube
El primer paso es iniciar el servidor Minikube para que pueda usar los comandos kubectl y ejecutar su aplicación. Minikube le permite implementar sus nodos y pods en el entorno de Kubernetes. Se debe usar el siguiente comando para mantener el minikube en modo activo: esto activa el minikube y hace que el entorno de Kubernetes esté listo para usar.
Paso 2: Cree un archivo YAML de Kubernetes
En este paso, aprenderá a crear un archivo de manifiesto YAML para Kubernetes. Las pruebas y la implementación de aplicaciones en Kubernetes requieren los archivos YAML. Una acción típica al usar Kubernetes es la tendencia a buscar archivos YAML de Kubernetes cuando pretendemos implementar un módulo de prueba. Al usar Kubernetes, existen diferentes formas de generar y editar los archivos. Este artículo explica cómo crear un archivo YAML usando el comando nano, ya que es la mejor opción para los principiantes. Siga estos pasos para crear un archivo YAML con Nano:

    • Inicie el minikube.
    • Para crear un nuevo archivo o modificar uno existente, navegue hasta la ubicación del directorio deseado.
    • El nombre del archivo debe ir seguido de nano. Por ejemplo, desea crear un nuevo archivo llamado host.yaml.

Ejecute el siguiente comando para crear un host de archivos YAML en el directorio del proyecto: El archivo se creará después de que se ejecute el comando. El siguiente paso es trabajar en el archivo host.yaml recién abierto.
Paso 3: configurar HostPath VolumeMount
Siga estos dos pasos para crear un volumen y ponerlo a disposición de un pod:

    • Especifíquelo en el elemento spec:volumes de la plantilla del pod antes de implementar el pod en algunos nodos.
    • Monte el volumen en una propiedad de montaje de contenedor específica mediante el comando spec:containers:name>:volume.

Estas acciones están interconectadas. Debe montar un volumen en un contenedor cuando lo crea. No puede montar un volumen sin definirlo primero en la configuración del pod. Un ejemplo de cómo crear y montar un volumen en una configuración de plantilla de pod YAML es el siguiente: >spec: contenedores: —name: app-one image: nginx-one volumeMounts: —name: volume-one mountPath: / app/config Volumes: —Nombre: Volumen Uno
En el código proporcionado podemos observar lo siguiente:

    • El volumen de prueba con nombre se crea en spec.volumes mediante el comando de volumen y se adjunta al pod.
    • Localice hostPath en la sección de especificaciones del módulo. La ruta/datos específicos se crearán porque el tipo:DirectoryorCreate significa que la ruta debe crearse si no existe.
    • /data está en el nodo donde se envía el pod y está montado en el contenedor en el directorio /test-pd.
    • Tanto la declaración de volumen como la propiedad volumeMounts requieren que se use el mismo nombre de volumen.

Paso 4: Cree el pod de volumen de HostPath
En este paso, usaremos el archivo yaml (host.yaml) para crear un volumen hostPath, como se muestra a continuación: > $ kubectl create -f host.yaml Como se puede ver en la captura de pantalla anterior, el pod se llama » test -pd». construido con éxito.
[*]Conclusión

Este artículo brinda una descripción general de hostPath y muestra cómo crear y configurar los montajes de hostPath en la práctica. Como parte de la función de hostPath de evitar que los datos se borren del sistema de archivos del nodo cuando se elimina un pod, hostPath tiene muchos beneficios, pero también varios riesgos de seguridad. Evita siempre que puedas. Un volumen hostPath debe limitarse solo al directorio o archivo requerido, y debe montarse como ReadOnly si debe usar uno. En este artículo, aprendió paso a paso cómo configurar correctamente un volumen de pod con un ejemplo simple, y también aprendió cómo crear una ruta en hostPath y montarla en el contenedor.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.