|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
|
Esta es documentación inédita para SUSE® Storage 1.12 (Dev). |
Requisitos
Cada nodo en el clúster de Kubernetes donde SUSE Storage está instalado debe cumplir con los siguientes requisitos:
-
Un entorno de ejecución de contenedor compatible con Kubernetes (Docker v1.13+, containerd v1.3.7+, etc.)
-
Kubernetes v1.25 o posterior
-
open-iscsiestá instalado y el daemoniscsidestá en funcionamiento en todos los nodos. Esto es necesario, ya que SUSE Storage depende deiscsiadmen el host para proporcionar volúmenes persistentes a Kubernetes. Para obtener ayuda instalandoopen-iscsi, consulta Instalando open-iscsi. -
El soporte RWX requiere que cada nodo tenga un cliente NFSv4 instalado.
-
Para instalar un cliente NFSv4, consulta Instalando Cliente NFSv4.
-
-
El sistema de archivos del host soporta la característica
file extentspara almacenar los datos. Actualmente soportamos:-
ext4
-
XFS
-
-
bash,curl,findmnt,grep,awk,blkid,lsblkdeben estar instalados. -
Propagación de montajes debe estar habilitada.
Las cargas de trabajo de SUSE Storage deben poder ejecutarse como root para que SUSE Storage se despliegue y opere correctamente.
La Herramienta de Línea de Comando de Longhorn se puede usar para verificar el entorno de Longhorn en busca de problemas potenciales.
Para el hardware mínimo recomendado, consulta la guía de mejores prácticas.
Configuración Específica del SO/Distro
Debes realizar configuraciones adicionales antes de usar SUSE Storage con ciertos sistemas operativos y distribuciones.
Comprobando la versión de Kubernetes
Utiliza el siguiente comando para comprobar la versión de tu servidor Kubernetes:
kubectl version
Resultado:
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.10", GitCommit:"b8609d4dd75c5d6fba4a5eaa63a5507cb39a6e99", GitTreeState:"clean", BuildDate:"2023-10-18T11:44:31Z", GoVersion:"go1.20.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.10+k3s2", GitCommit:"cb5cb5557f34e240e38c68a8c4ca2506c68b1d86", GitTreeState:"clean", BuildDate:"2023-11-08T03:21:46Z", GoVersion:"go1.20.10", Compiler:"gc", Platform:"linux/amd64"}
El Server Version debe ser mayor o igual a v1.25.
Política de seguridad de pods
SUSE Storage se envía con una política de seguridad de pods predeterminada que otorgará a SUSE Storage los privilegios necesarios para poder funcionar correctamente.
No se necesita ninguna configuración especial para que SUSE Storage funcione correctamente en clústeres con la política de seguridad de pods habilitada.
Notas sobre la propagación de montajes
Si tu clúster de Kubernetes fue aprovisionado por Rancher v2.0.7+ o posterior, la función de Propagación de Montajes está habilitada por defecto.
Si la Propagación de Montajes está deshabilitada, la función de Imagen Base estará deshabilitada.
Permisos de raíz y privilegiados
Los componentes de SUSE Storage requieren acceso de raíz con permisos privilegiados para realizar operaciones y gestión de volúmenes, porque SUSE Storage depende de recursos del sistema en el host a través de diferentes espacios de nombres. Por ejemplo, SUSE Storage utiliza nsenter para entender el uso de dispositivos de bloque o cifrar/descifrar volúmenes en el host.
A continuación se presentan los directorios que requieren acceso con permisos de raíz y privilegiados para los componentes de SUSE Storage:
-
Longhorn Manager
-
/boot: Obtén información sobre los módulos requeridos de
/boot/config-$(uname -r)en el host. -
/dev: Los dispositivos de bloque creados por Longhorn están bajo la ruta
/dev. -
/proc: Encuentra el proceso de host reconocido como el entorno de ejecución de contenedor, luego utiliza
nsenterpara acceder a los montajes en el host y entender el uso de discos. -
/var/lib/longhorn: La ruta predeterminada para almacenar datos de volúmenes en un host.
-
-
Imagen de Longhorn Engine
-
/var/lib/longhorn/engine-binaries: La ruta predeterminada para almacenar los binarios de Longhorn Engine.
-
-
Gestor de instancias de Longhorn
-
/: Accede a cualquier ruta de datos en este nodo y a los binarios de Longhorn Engine.
-
/dev: Los dispositivos de bloque creados por Longhorn están bajo la ruta
/dev. -
/proc: Encuentra el proceso de host reconocido como el entorno de ejecución de contenedor, luego utiliza
nsenterpara gestionar los objetivos e iniciadores de iSCSI, así como algunos sistemas de archivos.
-
-
Gestor de comparticiones de Longhorn
-
/dev: Los dispositivos de bloque creados por Longhorn están bajo la ruta
/dev. -
/lib/modules: Módulos del kernel requeridos por
cryptsetuppara la encriptación de volúmenes. -
/proc: Encuentra el proceso de host reconocido como el entorno de ejecución de contenedor, luego utiliza
nsenterpara la encriptación de volúmenes. -
/sys: Soporta la encriptación de volúmenes mediante
cryptsetup.
-
-
Plugin CSI de Longhorn
-
/: Para comprobaciones de host a través del montador NFS (obsoleto). Ten en cuenta que, esto será eliminado en la próxima versión.
-
/dev: Los dispositivos de bloque creados por Longhorn están bajo la ruta
/dev. -
/lib/modules: Módulos del kernel requeridos por el plugin CSI de Longhorn.
-
/sys: Soporta la encriptación de volúmenes mediante
cryptsetup. -
/var/lib/kubelet/plugins/kubernetes.io/csi: La ruta donde el plugin Longhorn CSI crea la ruta de preparación (a través de
NodeStageVolume) de un dispositivo de bloque. La ruta de preparación se montará en la ruta de destino/var/lib/kubelet/pods(a través deNodePublishVolume) para que un único volumen pueda ser montado en múltiples Pods. -
/var/lib/kubelet/plugins_registry: La ruta donde el registrador del controlador de nodo registra el plugin CSI con kubelet.
-
/var/lib/kubelet/plugins/driver.longhorn.io: La ruta donde se encuentra el socket para la comunicación entre kubelet y el controlador Longhorn CSI.
-
/var/lib/kubelet/pods: La ruta donde el controlador Longhorn CSI monta el volumen desde la ruta de destino (a través de
NodePublishVolume).
-
-
Longhorn CSI Attacher/Provisioner/Resizer/Snapshotter
-
/var/lib/kubelet/plugins/driver.longhorn.io: La ruta donde se encuentra el socket para la comunicación entre kubelet y el controlador Longhorn CSI.
-
-
Gestor de Imágenes de respaldo de Longhorn
-
/var/lib/longhorn: La ruta predeterminada para almacenar datos en el host.
-
-
Fuente de Datos de Imagen de Copia de Seguridad de Longhorn
-
/var/lib/longhorn: La ruta predeterminada para almacenar datos en el host.
-
-
Despliegue de Restauración del Sistema Longhorn
-
/var/lib/longhorn/engine-binaries: La ruta predeterminada para almacenar los binarios de Longhorn Engine.
-
Instalando open-iscsi
El comando utilizado para instalar open-iscsi difiere según la distribución de Linux.
Para GKE, recomendamos usar Ubuntu como imagen del sistema operativo invitado ya que contiene open-iscsi.
Es posible que necesites editar el grupo de seguridad del clúster para permitir el acceso SSH.
-
SUSE y openSUSE: Ejecute el comando siguiente:
zypper install open-iscsi systemctl enable iscsid systemctl start iscsid
-
Debian y Ubuntu: Ejecute el comando siguiente:
apt-get install open-iscsi
-
RHEL, CentOS y EKS (EKS Kubernetes Worker AMI con imagen AmazonLinux2): ejecute los comandos siguientes:
yum --setopt=tsflags=noscripts install iscsi-initiator-utils echo "InitiatorName=$(/sbin/iscsi-iname)" > /etc/iscsi/initiatorname.iscsi systemctl enable iscsid systemctl start iscsid
Por favor, asegúrate de que el módulo iscsi_tcp se haya cargado antes de que el servicio iscsid comience. Generalmente, debería cargarse automáticamente junto con la instalación del paquete.
modprobe iscsi_tcp
En SUSE y openSUSE, el módulo iscsi_tcp se incluye solo en el paquete kernel-default. Si el paquete kernel-default-base está instalado en tu sistema, debes reemplazarlo por kernel-default.
|
También proporcionamos un instalador iscsi para facilitar a los usuarios la instalación automática de open-iscsi. Puedes usar el CLI de Longhorn para instalar los requisitos previos.
Puedes usar el comando longhornctl check preflight. Este comando verifica el entorno de tu clúster de Kubernetes para asegurarse de que cumple con los requisitos de SUSE Storage. Realiza una serie de comprobaciones que pueden ayudar a identificar problemas potenciales que pueden impedir que SUSE Storage funcione correctamente.
Ejemplo:
> longhornctl check preflight
INFO[2025-08-22T12:58:40+08:00] Initializing preflight checker
INFO[2025-08-22T12:58:40+08:00] Cleaning up preflight checker
INFO[2025-08-22T12:58:42+08:00] Running preflight checker
INFO[2025-08-22T12:58:49+08:00] Retrieved preflight checker result:
ip-10-0-1-132:
info:
- Service iscsid is running
- NFS4 is supported
- Package nfs-client is installed
- Package open-iscsi is installed
- Package cryptsetup is installed
- Package device-mapper is installed
- Module dm_crypt is loaded
warn:
- Kube DNS "coredns" is set with fewer than 2 replicas; consider increasing replica count for high availability
INFO[2025-08-22T12:58:49+08:00] Cleaning up preflight checker
INFO[2025-08-22T12:58:50+08:00] Completed preflight checker
En casos raros, puede ser necesario modificar la política de SELinux instalada para que SUSE Storage funcione. Si estás ejecutando una versión actualizada de una distribución derivada de Fedora (por ejemplo, Fedora, RHEL, Rocky, CentOS, etc.) y planeas mantener SELinux habilitado, consulta la KB para más detalles.
Instalando el cliente NFSv4
La función de copia de seguridad requiere NFSv4, v4.1 o v4.2, y la función de volumen ReadWriteMany (RWX) requiere NFSv4.1. Antes de instalar el daemon y las utilidades del espacio de usuario del cliente NFSv4, asegúrate de que el soporte del kernel del cliente esté habilitado en cada nodo SUSE Storage.
-
Verifica que el soporte de
NFSv4.1esté habilitado en el kernel.cat /boot/config-`uname -r`| grep CONFIG_NFS_V4_1
-
Verifica que el soporte de
NFSv4.2esté habilitado en el kernel.cat /boot/config-`uname -r`| grep CONFIG_NFS_V4_2
El comando utilizado para instalar un cliente NFSv4 varía según la distribución de Linux.
-
Para Debian y Ubuntu, usa este comando:
apt-get install nfs-common
-
Para RHEL, CentOS y EKS con
EKS Kubernetes Worker AMI with AmazonLinux2 image, usa este comando:yum install nfs-utils
-
Para SUSE/OpenSUSE puedes instalar un cliente NFSv4 a través de:
zypper install nfs-client
-
Para Talos Linux, el cliente NFS es parte de la imagen
kubeletmantenida por el equipo de Talos. -
Para Container-Optimized OS, el NFS es compatible con la imagen del nodo.
También proporcionamos un instalador nfs para facilitar a los usuarios la instalación automática de nfs-client. Puedes usar el CLI de Longhorn para instalar los requisitos previos.
Puedes usar el comando longhornctl check preflight. Este comando verifica el entorno de tu clúster de Kubernetes para asegurarse de que cumple con SUSE Storage. Realiza una serie de comprobaciones que pueden ayudar a identificar problemas potenciales que pueden impedir que SUSE Storage funcione correctamente.
Ejemplo:
> longhornctl check preflight
INFO[2025-08-22T12:58:40+08:00] Initializing preflight checker
INFO[2025-08-22T12:58:40+08:00] Cleaning up preflight checker
INFO[2025-08-22T12:58:42+08:00] Running preflight checker
INFO[2025-08-22T12:58:49+08:00] Retrieved preflight checker result:
ip-10-0-1-132:
info:
- Service iscsid is running
- NFS4 is supported
- Package nfs-client is installed
- Package open-iscsi is installed
- Package cryptsetup is installed
- Package device-mapper is installed
- Module dm_crypt is loaded
warn:
- Kube DNS "coredns" is set with fewer than 2 replicas; consider increasing replica count for high availability
INFO[2025-08-22T12:58:49+08:00] Cleaning up preflight checker
INFO[2025-08-22T12:58:50+08:00] Completed preflight checker
Instalando Cryptsetup y LUKS
Cryptsetup es una utilidad de código abierto utilizada para configurar de manera conveniente los objetivos de mapeo de dispositivos basados en dm-crypt y SUSE Storage utiliza LUKS2 (Linux Unified Key Setup) que es el formato estándar para la encriptación de discos en Linux para soportar la encriptación de volúmenes.
El comando utilizado para instalar la herramienta cryptsetup varía según la distribución de Linux.
-
Para Debian y Ubuntu, usa este comando:
apt-get install cryptsetup -
Para RHEL, CentOS, Rocky Linux y EKS con
EKS Kubernetes Worker AMI with AmazonLinux2 image, utiliza este comando:yum install cryptsetup -
Para SUSE/OpenSUSE, utiliza este comando:
zypper install cryptsetup
Instalando la Herramienta de Espacio de Usuarios del Mapeador de Dispositivos
El mapeador de dispositivos es un marco proporcionado por el kernel de Linux para mapear dispositivos de bloques físicos en dispositivos de bloques virtuales de nivel superior. Forma la base de la encriptación de discos dm-crypt y proporciona el dispositivo dm lineal en la parte superior del volumen v2. El mapeador de dispositivos suele estar incluido por defecto en muchas distribuciones de Linux. Algunas distribuciones ligeras o altamente personalizadas o una instalación mínima de una distribución pueden excluirlo para ahorrar espacio o reducir la complejidad.
El comando utilizado para instalar el mapeador de dispositivos varía según la distribución de Linux.
-
Para Debian y Ubuntu, usa este comando:
apt-get install dmsetup -
Para RHEL, CentOS, Rocky Linux y EKS con
EKS Kubernetes Worker AMI with AmazonLinux2 image, utiliza este comando:yum install device-mapper -
Para SUSE/OpenSUSE, utiliza este comando:
zypper install device-mapper
Herramienta de Línea de Comandos de Longhorn
Comprobando Requisitos Previos Usando la Herramienta de Línea de Comandos de Longhorn
La herramienta longhornctl es una interfaz de línea de comandos (CLI) para operaciones de Longhorn. Para más información, consulta Herramienta de Línea de Comandos (longhornctl).
Para comprobar requisitos previos y configuraciones, descarga la herramienta longhornctl y luego ejecuta el subcomando check:
# For AMD64 platform
curl -sSfL -o longhornctl https://github.com/longhorn/cli/releases/download/v1.12.0/longhornctl-linux-amd64
# For ARM platform
curl -sSfL -o longhornctl https://github.com/longhorn/cli/releases/download/v1.12.0/longhornctl-linux-arm64
chmod +x longhornctl
./longhornctl check preflight
Ejemplo de resultado:
INFO[2024-01-01T00:00:01Z] Initializing preflight checker
INFO[2024-01-01T00:00:01Z] Cleaning up preflight checker
INFO[2024-01-01T00:00:01Z] Running preflight checker
INFO[2024-01-01T00:00:02Z] Retrieved preflight checker result:
worker1:
info:
- Service iscsid is running
- NFS4 is supported
- Package nfs-common is installed
- Package open-iscsi is installed
warn:
- multipathd.service is running. Please refer to https://longhorn.io/kb/troubleshooting-volume-with-multipath/ for more information.
worker2:
info:
- Service iscsid is running
- NFS4 is supported
- Package nfs-common is not installed
- Package open-iscsi is installed
Instalando Requisitos Previos Usando la Herramienta de Línea de Comandos de Longhorn
Utiliza el subcomando install para instalar y configurar las dependencias preliminares antes de instalar Longhorn. Esto implica operaciones que pueden requerir un reinicio del sistema en ciertas distribuciones de Linux.
Aquí tienes ejemplos de cómo usar el subcomando install:
-
Para ejecutar desde un binario
longhornctldescargado localmente:./longhornctl install preflight -
Para ejecutar con parámetros explícitos
kube-configyimage:longhornctl --kubeconfig ~/.kube/config --image longhornio/longhorn-cli:v1.12.0 install preflight
Ejemplo de resultado después de ejecutar el comando de instalación:
INFO[2025-03-11T08:17:57+08:00] Initializing preflight installer
INFO[2025-03-11T08:17:57+08:00] Cleaning up preflight installer
INFO[2025-03-11T08:17:57+08:00] Running preflight installer
INFO[2025-03-11T08:17:57+08:00] Installing dependencies with package manager
INFO[2025-03-11T08:18:28+08:00] Installed dependencies with package manager
INFO[2025-03-11T08:18:28+08:00] Cleaning up preflight installer
INFO[2025-03-11T08:18:28+08:00] Completed preflight installer. Use 'longhornctl check preflight' to check the result.
|
En algunas distribuciones de Linux inmutables, como SUSE Linux Enterprise Micro (SLE Micro), puede que necesites reiniciar los nodos de trabajo después de ejecutar el subcomando La documentación de la distribución de Linux que estás utilizando debería detallar tales requisitos. Por ejemplo, la documentación de SLE Micro explica cómo todos los cambios realizados por el comando |