El clúster K8s instala StorageClass a través del aprovisionador externo del subdirectorio NFS (método Helm Chart)

El clúster de Kubernetes instala StorageClass a través del aprovisionador externo del subdirectorio NFS

introducción básica

El clúster k8s 1.26.4 está instalado en la máquina Centos7.9 basada en Kubeadm. Instale StorageClass a través del aprovisionador externo del subdirectorio NFS (método Helm Chart) Este artículo presentará los pasos y las precauciones pertinentes. El aprovisionador externo del subdirectorio NFS declara oficialmente que este método es adecuado para Kubernetes >=1.9

Introducción al entorno

nombre de la máquina ip versión del sistema núcleo del sistema arquitectura de la CPU
m1 10.11.81.152 CentOS Linux versión 7.9 5.4.242-1.el7 x86
w1 10.11.81.153 CentOS Linux versión 7.9 5.4.242-1.el7 x86
w2 10.11.81.154 CentOS Linux versión 7.9 5.4.242-1.el7 x86
w3 10.11.81.155 CentOS Linux versión 7.9 5.4.242-1.el7 x86
nfs 10.11.82.6 CentOS Linux versión 7.9 3.10.0-1160.90.1 x86

1. Instale el servidor NFS (opere en la máquina nfs)

1.1 Instalar los paquetes de software requeridos por el servidor NFS

yum install -y nfs-utils

1.2 Configure el servicio NFS para que se inicie en el arranque (el servicio rpcbind debe iniciarse primero)

systemctl enable rpcbind
systemctl enable nfs

1.3 Iniciar servicio nfs

systemctl start rpcbind
systemctl start nfs

1.4 Si hay un servicio de firewall, debe abrir los servicios rpc-bind y nfs

firewall-cmd --zone=public --permanent --add-service={
    
    rpc-bind,mountd,nfs}
firewall-cmd --reload

2. Configurar directorio compartido (operación en máquina nfs)

2.1 Después de iniciar el servicio NFS, configure un directorio compartido en el lado del servidor

mkdir /nfs-share

2.2 Configurar el directorio compartido por el servidor NFS

echo "/nfs-share    10.11.81.0/24(rw,sync,no_root_squash,no_all_squash) > /etc/exports

a./nfs-share: Ubicación del directorio compartido
b.10.11.81.0/24: Rango de IP del cliente, * significa todo, es decir, sin límite. Si se trata de un entorno de producción, se recomienda controlar estrictamente la IP accesible
c.rw: configuración de permisos, lectura y escritura
d.sync: sincronización del directorio compartido
e.no_root_squash: se puede utilizar la autorización de root
f.no_all_squash: autorización de usuario normal
2.3 se puede usar para que la configuración de NFS surta efecto

exportfs -r

2.4 Comprobar el estado del montaje

exportfs

3. Instalar Helm Chart (operar en la máquina m1)

Sitio web oficial
3.1 Si no consulta el sitio web oficial, ejecute directamente el siguiente comando para instalar Helm Chart

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

#测试是否安装成功
helm version

4. Instale nfs-utils en todos los nodos de trabajo (opere en w* nodes)

Se encontró un error: consulte el artículo
Si no se realiza este paso, se producirá el siguiente error al iniciar nfs-installing el contenedor nfs-provisioner en el paso 5 "Instalar nfs-provisioner":

mount: wrong fs type, bad option, bad superblock on 125.64.41.244:/data/img,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Busqué en Internet y dije que fue causado por no instalar mount.nfs. También significa que mount.nfs debe instalarse en el nodo de trabajo de nfs para que no haya un tipo de fs incorrecto, una opción incorrecta, un error de superbloque incorrecto. avisos

De acuerdo con el mensaje de error, verifique el archivo /sbin/mount., y se encuentra que no hay ningún archivo /sbin/mount.nfs, simplemente instale nfs-utils.

#所有工作节点执行
yum install nfs-utils -y

5. Instalar nfs-provisioner (operar en la máquina m1)

Referencia del sitio web oficial

#添加repo
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner

helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=10.11.82.6 \   #nfs服务提供方机器
    --set nfs.path=/nfs-share \     #nfs服务提供方目录
    --set storageClass.name=nfs-client \  #Storage Class名称
    --set storageClass.defaultClass=true  #设置为默认Storage Class

Nota: La imagen nfs-subdir-external-provisioner instalada de manera predeterminada proviene de registration.k8s.io. Las descargas nacionales pueden ser limitadas. Puede descargar imágenes relacionadas desde la siguiente dirección:
https://download.csdn.net/download/ weixin_46660849/87822652

#配置时可以指定镜像仓库
--set image.repository=<可以下载nfs-subdir-external-provisioner的本地或远程镜像仓库>

6. Verificación de prueba (operación en máquina m1)

6.1 Asegúrese de que el contenedor nfs-provisioner se inicie correctamente

#添加repo
kubectl get po
#看到如下输出
NAME                                              READY   STATUS    RESTARTS   AGE
nfs-subdir-external-provisioner-456ed7c90-acjn1   1/1     Running   0          2m

6.2 Verificar que el pvc cuelgue

cat <<EOF >  pvc-test.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-test
spec:
  storageClassName: "nfs-client"
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Mi
EOF

Supongo que te gusta

Origin blog.csdn.net/weixin_46660849/article/details/130881771
Recomendado
Clasificación