Remarques sur l'utilisation des volumes persistants locaux de Kubernetes

À propos des volumes persistants locaux

Dans le texte, les volumes persistants locaux sont appelés PV local en abrégé;

  1. Le PV local de Kubernetes a été publié en alpha depuis la version 1.7, publié en version bêta 1.10, et la version officielle finale (disponibilité générale) est la version 1.14;
  2. Un PV local correspond à un espace disque local sur le nœud spécifié;
  3. Comparé au stockage distant tel que NFS, Local PV offre de meilleures performances apportées par les E / S locales;

Différence par rapport au volume HostPath

Avant l'avènement du PV local, la méthode d'utilisation des disques locaux était HostPath Volume. La même méthode utilisait les disques locaux. Quelle est la différence?

  1. La différence la plus importante est que PV local est associé à un nœud spécifique. Cela signifie qu'un pod qui utilise PV local sera planifié sur le même nœud par le planificateur Kubernetes s'il redémarre plusieurs fois. Si le volume HostPath est utilisé, chaque redémarrage sera Il peut être planifié sur un nouveau nœud par le planificateur Kubernetes, puis utiliser le même chemin local;
  2. Lorsque nous voulons utiliser HostPath Volume, nous pouvons déclarer dans le PVC ou écrire directement dans la configuration du Pod, mais Local PV ne peut être déclaré que dans le PVC.Les ressources PV sont généralement gérées par une personne dédiée, ce qui évite le développement de Pod. Conflits et risques causés par l'utilisation non autorisée de disques locaux;
  3. Notez également que le volume HostPath et le PV local utilisent des disques locaux. Par rapport aux systèmes de fichiers distribués courants, les pannes de disque local peuvent entraîner une perte de données. N'utilisez pas le volume HostPath et le PV local pour enregistrer des données importantes ;

Les concepts de base sont terminés, puis l'expérience de combat réelle;

Informations sur l'environnement de combat réel

  1. Système d'exploitation: CentOS Linux version 7.8.2003 (Core)
  2. gouverneurs : 1.15.3
  3. barre : 2.16.1

Une brève description des étapes pour vivre l'expérience PV locale

Le but de ce combat réel est de créer rapidement un PV local et de vérifier que le PV local est normalement disponible. Le texte intégral se compose des parties suivantes:

  1. Créer un PV local;
  2. Téléchargez le graphique tomcat via helm;
  3. Modifiez le graphique pour permettre à Tomcat d'utiliser le PV local qui vient d'être créé;
  4. Déployez tomcat;
  5. Vérifiez que le dossier a été écrit normalement sur le serveur;

Article de référence

Si vous souhaitez en savoir plus sur Kubernetes et helm, veuillez consulter:

  1. "Kubespray 2.11 installe kubernetes 1.15" ;
  2. "Déployer et expérimenter Helm (version 2.16.1)" ;

Après la préparation, commencez l'opération pratique;

Créer PV

  1. Créez un dossier sur le nœud de travail kubernetes pour PV local à utiliser, le mien est: / root / temp / 202005/24 / local-pv /
  2. Donnez au dossier ci-dessus les autorisations de lecture et d'écriture: chmod -R a + r, a + w / root / temp / 202005/24 / local-pv
  3. Créez un fichier local-storage-pv.yaml avec le contenu suivant:
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. À propos de local-storage-pv.yaml, les points suivants doivent être notés
    :. Un spec.storageClassName égale local-Storage , ce dernier spécifie également le PVC storageClassName égal local-Storage
    ;. Le paramètre Spec.nodeAffinity B est requis pour Établissez la relation entre le PV local et le nœud. La valeur de spec.nodeAffinity.required, nodeSelectorTerms.matchExpressions.values ​​contient node1 , indiquant que le PV local peut être créé sur le nœud dont le nom d'hôte est node1 ;
  2. Exécutez la commande kubectl apply -f local-storage-pv.yaml pour créer PV;
  3. Exécutez kubectl describe pv example-pv pour vérifier si la création est réussie, comme indiqué dans la case rouge de la figure suivante, ce PV est déjà disponible:
    Insérez la description de l'image ici

Utiliser PV

Ensuite, déployez tomcat via helm, et laissez tomcat utiliser le PV local ci-dessus, veuillez vous assurer que helm a été installé;

  1. Ajouter un entrepôt helm (un entrepôt avec tomcat): helm repo ajouter bitnami https://charts.bitnami.com/bitnami
  2. Télécharger le diagramme de Tomcat: Helm Fetch Bitnami / Tomcat
  3. Une fois le graphique téléchargé, le package de compression de configuration tomcat tomcat-6.2.4.tgz apparaît dans le répertoire actuel, décompressez-le: tar -zxvf tomcat-6.2.4.tgz
  4. Décompressez pour obtenir le dossier tomcat, ouvrez le fichier values.yaml après avoir entré, recherchez le nœud de persistance et ajoutez le contenu dans la boîte rouge de la figure ci-dessous:
    Insérez la description de l'image ici
  5. Exécutez la commande dans le répertoire tomcat: helm install --name-template tomcat001 -f values.yaml. --Namespace hello-storageclass
  6. Vérifiez le pod et le service de tomcat, tout est normal et le port est mappé sur 31835 de l'hôte:
    Insérez la description de l'image ici
  7. Le navigateur visite l' adresse IP de l' hôte: 31835 et la page d'accueil de Tomcat apparaît:
    Insérez la description de l'image ici
  8. Allez dans le répertoire / root / temp / 202005/24 / local-pv / pour vérifier l'utilisation du disque, comme indiqué dans la figure ci-dessous, vous pouvez voir le PVC alloué à tomcat, et les données de base de tomcat sont écrites:
    Insérez la description de l'image ici
  9. Vérifiez à nouveau le PV local et constatez que l'état a changé:
    Insérez la description de l'image ici
    jusqu'à présent, il peut être confirmé que le PV local est utilisé par tomcat et les données sont enregistrées dans le dossier désigné de l'hôte;

Nettoyer le PV local

  1. De manière générale, les opérations suivantes doivent être effectuées pour nettoyer PV:
    a. Supprimer le pod ou le déploiement;
    b. Supprimer le PVC;
    c. Supprimer le PV local;
  2. Puisque helm est utilisé ici, les étapes 1 et 2 ci-dessus sont exécutées via helm et la commande helm delete tomcat001
  3. Exécutez ensuite kubectl delete -f local-storage-pv.yaml dans le répertoire où se trouve local-storage-pv.yaml pour supprimer le PV local;

À ce stade, l'apprentissage et la pratique du PV local sont terminés. Si vous utilisez ce type de stockage, j'espère que cet article pourra vous donner quelques références;

Bienvenue à suivre mon compte public: programmeur Xin Chen

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/boling_cavalry/article/details/106453727
conseillé
Classement