Marques
Catégories de formation
Technique Microsoft
Utilisateur final Microsoft
Dans ce module du cours de préparation en ligne CKA Broad Skills, nous couvrirons les sujets d'architecture, d'installation et de configuration du cluster identifiés par le programme d'examen CNCF CKA. Si vous n'êtes pas déjà familiarisé avec le programme, prenez un moment pour vous familiariser, car vous devrez connaître chacun des sujets afin de réussir le test.
Les volumes sont le principal moyen de configurer le stockage pour les applications exécutées sous Kubernetes. Les volumes sont déclarés au niveau du pod, puis montés au niveau du conteneur, comme indiqué ci-dessous :
apiVersion : v1
genre: Pod
métadonnées :
nom: cka-volumes
spécification :
restartPolicy : OnFailure
conteneurs :
- nom : cka-volume
image : alpin
commander:
- Haut
volumeMontages :
- nom : applogs
chemin de montage : /logs
tomes :
- nom : applogs
hostPath :
chemin : /tmp/app/logs
La plupart des durées de vie des volumes sont liées aux pods pour lesquels ils sont configurés et expirent généralement lorsque le pod est supprimé. Pour dissocier le stockage des cycles de vie des pods, Kubernetes dispose d'objets PersistentVolume. Les PersistentVolumes sont des ressources au sein du cluster qui fournissent un stockage qui persiste en dehors de la durée de vie des pods.
$ kubectl obtenir pv
NOM CAPACITÉ MODES D'ACCÈS POLITIQUE DE RÉCLAMATION ÉTAT DE RÉCLAMATION STOCKAGE CLASSE RAISON ÂGE
app-log-pv 1Gi RWO,ROX Retain Bound default/app-log-pvc 89m
fivegigpv 5Gi RWO Conserver Disponible 78m
$
Les pods peuvent utiliser les PersistentVolumes (PV) directement, mais une autre façon d'utiliser les PV consiste à utiliser PersistentVolumeClaims (PVC). Les PVC sont des demandes abstraites de stockage qui réclament des volumes persistants. Si un PVC trouve un PV existant qui répond à ses demandes (mode d'accès et capacité), alors ce PV est lié au PVC. Les PVC peuvent également décrire les PV en tant que modèles qui provisionnent dynamiquement les PV à partir des spécifications souhaitées.
$ kubectl obtenir du pvc
NOM ÉTAT VOLUME CAPACITÉ MODES D'ACCÈS CLASSE DE STOCKAGE ÂGE
app-log-pvc Lié app-log-pv 1Gi RWO,ROX 85m
$
Les StorageClasses permettent aux PVC de provisionner dynamiquement les PV. Chaque objet StorageClass utilise un plugin spécifique au backend d'un fournisseur de stockage pour créer un nouveau PV. L'exemple ci-dessous montre une StorageClass de base gp2 pour AWS :
apiVersion : stockage.k8s.io/v1
genre : StorageClass
métadonnées :
nom : mod4-aws-classe de stockage
commandes : kubernetes.io/aws-ebs
paramètres:
tapez : gp2
Un volume persistant est un objet de stockage provisionné à partir de l'infrastructure du cluster qui est géré par le cluster Kubernetes. Les volumes persistants permettent au stockage de rester au-delà de la durée de vie d'un pod individuel. Les volumes persistants décrivent les détails d'une implémentation de stockage pour le cluster, notamment :
L'exemple suivant montre un volume persistant provisionné de manière statique. Ce volume est lié au système de fichiers de l'hôte à /tmp/pvc et réclame 50 gigaoctets de stockage.
apiVersion : v1
genre: PersistentVolume
métadonnées :
nom : cinq gigpv
spécification :
capacité:
stockage : 5Gi
Modes d'accès :
- ReadWriteOnce
persistentVolumeReclaimPolicy : Conserver
hostPath :
chemin : /tmp/pvc
Les PersistentVolumes existent en tant que ressources dans le cluster que n'importe quel pod peut revendiquer à l'aide d'un montage de volume standard ou via un PersistentVolumeClaim.
Les volumes persistants utilisent le tableau accesModes pour garantir que le volume résultant est monté d'une manière prise en charge par le système de fichiers du fournisseur de ressources.
Il existe trois modes d'accès pris en charge par Kubernetes :
Vous trouverez ci-dessous un exemple de volume persistant qui permet les modes d'accès ReadWriteOnce et ReadOnlyMany
apiVersion : v1
genre: PersistentVolume
métadonnées :
nom : app-pv
spécification :
capacité:
stockage : 50Gi
Modes d'accès :
- ReadWriteOnce
- ReadOnlyMany
persistentVolumeReclaimPolicy : Conserver
hostPath :
chemin : "/app/logs"
Un PersistentVolumeClaim est une demande de stockage et est une abstraction de volumes persistants. PersistentVolumeClaims se lie à PersistentVolumes sur un certain nombre de facteurs tels que les sélecteurs d'étiquettes, le nom de la classe de stockage, la capacité de stockage et le mode d'accès. PersistentVolumeClaims se lie aux PersistentVolumes existants dans le cluster qui répondent à leurs exigences ou crée dynamiquement des PersistentVolumes à l'aide d'une StorageClass existante. Vous trouverez ci-dessous un exemple de PersistentVolumeClaim qui se lie à l'exemple PersistentVolume illustré ci-dessus :
apiVersion : v1
genre : PersistentVolumeClaim
métadonnées :
nom: app-pvc
spécification :
Modes d'accès :
- ReadWriteOnce
Ressources:
demandes :
stockage : 50Gi
Le PersistentVolumeClaim doit trouver un PersistentVolume avec jusqu'à 50 gigaoctets de stockage et le mode d'accès ReadWriteOnce dans son manifeste.
Le tableau de volumes sous un manifeste de pod et le tableau volumeMounts dans un manifeste de conteneur configurent la façon dont les applications exécutées sous Kubernetes utilisent le stockage persistant.
Les entrées sous le tableau de volumes dans un manifeste de pod déclarent les plug-ins ou objets de stockage dont un pod dispose pour ses conteneurs à utiliser comme stockage. Certains types de volumes, PersistentVolumes, PersistentVolumeClaims, ConfigMaps et Secrets sont tous des entrées valides dans le tableau de volumes. Chaque entrée de volume reçoit un nom.
Les conteneurs sous les pods utilisent le tableau volumeMounts pour monter tous les volumes mis à disposition par le pod. Le conteneur référence le volume par le nom configuré au niveau du pod.
L'exemple ci-dessous montre un pod configuré pour exposer un répertoire hôte et l'exemple PersistentVolumeClaim ci-dessus pour ses conteneurs à utiliser :
apiVersion : v1
genre: Pod
métadonnées :
nom: cka-volumes
spécification :
restartPolicy : OnFailure
conteneurs :
- nom : cka-volumes
image : alpin
commander:
- Haut
volumeMontages :
- nom : app-logs
chemin de montage : /logs
- nom : app-certs
chemin de montage : /certs
tomes :
- nom : app-logs
PersistantVolumeRéclamation :
Nom de la réclamation : app-log-pvc
- nom : app-certs
hostPath :
chemin : /etc/ssl/certs
Cet exemple utilise un PersistentVolumeClaim pour stocker les données du journal des applications et monte également un hostPath pour utiliser les certificats de son hôte.
Créez un pod qui exécute centos/httpd et stocke son répertoire de journaux dans /var/log/httpd sous /tmp/httpd/ sur l'hôte.