Le cluster K8s installe StorageClass via le sous-répertoire NFS External Provisioner (méthode Helm Chart)

Le cluster Kubernetes installe StorageClass via l'approvisionneur externe du sous-répertoire NFS

introduction de base

Le cluster k8s 1.26.4 est installé sur la machine Centos7.9 basée sur Kubeadm. Installez StorageClass via l'approvisionneur externe du sous-répertoire NFS (méthode Helm Chart). Cet article présente les étapes et les précautions pertinentes. NFS Subdirectory External Provisioner déclare officiellement que cette méthode convient à Kubernetes >=1.9

Présentation de l'environnement

nom de la machine IP version du système noyau du système architecture du processeur
m1 10.11.81.152 CentOS Linux version 7.9 5.4.242-1.el7 x86
w1 10.11.81.153 CentOS Linux version 7.9 5.4.242-1.el7 x86
w2 10.11.81.154 CentOS Linux version 7.9 5.4.242-1.el7 x86
w3 10.11.81.155 CentOS Linux version 7.9 5.4.242-1.el7 x86
nfs 10.11.82.6 CentOS Linux version 7.9 3.10.0-1160.90.1 x86

1. Installer le serveur NFS (opérer sur la machine nfs)

1.1 Installer les packages logiciels requis par le serveur NFS

yum install -y nfs-utils

1.2 Configurer le service NFS pour qu'il démarre au démarrage (le service rpcbind doit être démarré en premier)

systemctl enable rpcbind
systemctl enable nfs

1.3 Démarrer le service nfs

systemctl start rpcbind
systemctl start nfs

1.4 S'il existe un service de pare-feu, vous devez ouvrir les services rpc-bind et nfs

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

2. Configurer le répertoire partagé (opération sur machine nfs)

2.1 Après le démarrage du service NFS, configurez un répertoire partagé côté serveur

mkdir /nfs-share

2.2 Configurer le répertoire partagé par le serveur NFS

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

a./nfs-share : emplacement du répertoire partagé
b.10.11.81.0/24 : plage d'adresses IP du client, * signifie tout, c'est-à-dire aucune limite. S'il s'agit d'un environnement de production, il est recommandé de contrôler strictement l'IP accessible
c.rw : paramètre d'autorisation, lisible et inscriptible
d.sync : synchroniser le répertoire partagé
e.no_root_squash : l'autorisation root peut être utilisée
f.no_all_squash : autorisation de l'utilisateur ordinaire
2.3 peut être utilisé pour que la configuration NFS prenne effet

exportfs -r

2.4 Vérifier l'état du montage

exportfs

3. Installer Helm Chart (fonctionner sur la machine m1)

Site officiel
3.1 Si vous ne vous référez pas au site officiel, exécutez directement la commande suivante pour installer 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. Installez nfs-utils sur tous les nœuds de travail (fonctionnez sur les nœuds w *)

Erreur rencontrée : reportez-vous à l'article
Si cette étape n'est pas effectuée, l'erreur suivante se produira lors du démarrage de l'installation de nfs du conteneur nfs-provisioner à l'étape 5 "Installer 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

J'ai cherché sur Internet et j'ai dit que cela était dû à la non-installation de mount.nfs.Cela signifie également que mount.nfs doit être installé sur le nœud de travail nfs afin qu'il n'y ait pas de mauvais type fs, mauvaise option, mauvaise erreur superbloc instructions.

Selon l'invite d'erreur, vérifiez le fichier /sbin/mount., et il s'avère qu'il n'y a pas de fichier /sbin/mount.nfs, installez simplement nfs-utils.

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

5. Installez nfs-provisioner (fonctionnez sur la machine m1)

Référence du site officiel

#添加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

Remarque : L'image nfs-subdir-external-provisioner installée par défaut provient de Registry.k8s.io. Les téléchargements nationaux peuvent être limités. Vous pouvez télécharger des images associées à partir de l'adresse suivante :
https://download.csdn.net/download/ weixin_46660849/87822652

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

6. Vérification du test (fonctionnement sur machine m1)

6.1 Assurez-vous que le conteneur nfs-provisioner démarre correctement

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

6.2 Vérifier que le pvc s'accroche

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

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46660849/article/details/130881771
conseillé
Classement