CKA-Selbststudium

Modul 4

Broad Skills bietet eine breite Palette von Beratungsdiensten zu Open Source-Technologien

KONTAKTIERE UNS

CKA Selbststudium Mod 4


In diesem Modul des Online-CKA-Vorbereitungskurses Broad Skills behandeln wir die im CNCF-CKA-Prüfungscurriculum identifizierten Themen zu Clusterarchitektur, Installation und Konfiguration. Wenn Sie mit dem Curriculum noch nicht vertraut sind, nehmen Sie sich einen Moment Zeit, um sich vertraut zu machen, da Sie jedes der Themen kennen müssen, um den Test zu bestehen.

cka Selbstlernmodule

Grundlegendes zu Kubernetes-Speicherobjekten


Volumes sind die primäre Möglichkeit, Speicher für Apps zu konfigurieren, die unter Kubernetes ausgeführt werden. Volumes werden auf Pod-Ebene deklariert und dann auf Container-Ebene gemountet, wie unten gezeigt:

apiVersion: v1

Art: Pod

Metadaten:

Name: cka-volumes

spezifikation:

restartPolicy: OnFailure

Behälter:

- name: cka-volumen

Bild: alpin

Befehl:

- oben

volumeMounts:

- Name: Applogs

mountPath: /logs

Bände:

- Name: Applogs

hostPfad:

Pfad: /tmp/app/logs


Die meisten Volume-Lebensdauern sind an die Pods gebunden, für die sie konfiguriert sind, und laufen normalerweise ab, wenn der Pod entfernt wird. Um Speicher von Pod-Lebenszyklen zu entkoppeln, verfügt Kubernetes über PersistentVolume-Objekte. PersistentVolumes sind Ressourcen innerhalb des Clusters, die Speicher bereitstellen, der außerhalb der Pod-Lebensdauer erhalten bleibt.

$ kubectl bekomme pv


NAME KAPAZITÄT ZUGRIFFSMODI RECLAIM POLICY STATUS ANSPRUCH SPEICHERKLASSE GRUND ALTER

app-log-pv 1Gi RWO,ROX Retain Bound default/app-log-pvc 89m

fivegigpv 5Gi RWO Retain Verfügbar 78m


$ 

Pods können PersistentVolumes (PVs) direkt verwenden, aber eine andere Möglichkeit, PVs zu verwenden, sind PersistentVolumeClaims (PVCs). PVCs sind abstrakte Speicheranforderungen, die persistente Volumes beanspruchen. Wenn eine PVC eine vorhandene PV findet, die ihre Anforderungen (Zugriffsmodus und Kapazität) erfüllt, dann wird diese PV an die PVC gebunden. PVCs können PVs auch als Vorlagen beschreiben, die PVs dynamisch aus den gewünschten Spezifikationen bereitstellen.

$ kubectl get pvc


NAME STATUS LAUTSTÄRKE KAPAZITÄT ZUGRIFFSMODI SPEICHERKLASSE ALTER

app-log-pvc Gebunden app-log-pv 1Gi RWO,ROX 85m


$

StorageClasses ermöglichen PVCs die dynamische Bereitstellung von PVs. Jedes StorageClass-Objekt verwendet ein Plugin, das für das Back-End eines Speicheranbieters spezifisch ist, um eine neue PV zu erstellen. Das folgende Beispiel zeigt eine grundlegende gp2-StorageClass für AWS:

apiVersion: storage.k8s.io/v1

Art: StorageClass

Metadaten:

Name: mod4-aws-storageclass

Provisionen: kubernetes.io/aws-ebs

Parameter:

Typ: gp2

Persistente Volumes


Ein persistentes Volume ist ein Speicherobjekt, das von der Infrastruktur des Clusters bereitgestellt und vom Kubernetes-Cluster verwaltet wird. Persistente Volumes ermöglichen, dass der Speicher über die Lebensdauer eines einzelnen Pods hinaus verbleibt. Persistente Volumes beschreiben Details einer Speicherimplementierung für den Cluster, einschließlich:

    Zugriffsmodi für das VolumeDie Gesamtkapazität des VolumesWas mit den Daten passiert, nachdem das Volume nicht beansprucht wurdeDie Art des SpeichersEine optionale, benutzerdefinierte Speicherklassen-ID

Das folgende Beispiel zeigt ein statisch bereitgestelltes persistentes Volume. Dieses Volume ist an das Dateisystem des Hosts unter /tmp/pvc gebunden und beansprucht 50 Gigabyte Speicherplatz.

apiVersion: v1

Art: PersistentVolume

Metadaten:

Name: fivegigpv

spezifikation:

Kapazität:

Speicher: 5Gi

Zugriffsmodi:

- ReadWriteOnce

persistentVolumeReclaimPolicy: Beibehalten

hostPfad:

Pfad: /tmp/pvc

PersistentVolumes sind als Ressourcen im Cluster vorhanden, die jeder Pod mithilfe eines standardmäßigen Volume-Mounts oder über einen PersistentVolumeClaim beanspruchen kann.

Volume-Zugriffsmodi


Persistente Volumes verwenden das accesModes-Array, um sicherzustellen, dass das resultierende Volume auf eine Weise gemountet wird, die vom Dateisystem des Ressourcenanbieters unterstützt wird.

Kubernetes unterstützt drei Zugriffsmodi:

    ReadWriteOnce (RWO) – Ein einzelner Knoten kann das Volume mit Lese-Schreib-Berechtigungen mountenReadOnlyMany (ROX) – Viele Knoten können das Volume mit Nur-Lese-Berechtigungen mountenReadWriteMany (RWX) – Viele Knoten können das Volume mit Lese-Schreib-Berechtigungen mounten

Unten sehen Sie ein Beispiel für ein PersistentVolume, das die Zugriffsmodi ReadWriteOnce und ReadOnlyMany ermöglicht

apiVersion: v1

Art: PersistentVolume

Metadaten:

Name: app-pv

spezifikation:

Kapazität:

Lagerung: 50Gi

Zugriffsmodi:

- ReadWriteOnce

- ReadOnlyMany

persistentVolumeReclaimPolicy: Beibehalten

hostPfad:

Pfad: "/app/logs"

Ansprüche auf dauerhaftes Volumen


Ein PersistentVolumeClaim ist eine Speicheranforderung und eine Abstraktion von persistenten Volumes. PersistentVolumeClaims binden sich an PersistentVolumes aufgrund einer Reihe von Faktoren wie Labelselektoren, Speicherklassenname, Speicherkapazität und Zugriffsmodus. PersistentVolumeClaims binden an vorhandene PersistentVolumes im Cluster, die ihre Anforderungen erfüllen, oder erstellen dynamisch PersistentVolumes unter Verwendung einer vorhandenen StorageClass. Unten ist ein Beispiel für einen PersistentVolumeClaim, der an das oben gezeigte PersistentVolume-Beispiel bindet:

apiVersion: v1

Art: PersistentVolumeClaim

Metadaten:

Name: app-pvc

spezifikation:

Zugriffsmodi:

- ReadWriteOnce

Ressourcen:

Anfragen:

Lagerung: 50Gi

Der PersistentVolumeClaim muss in seinem Manifest ein PersistentVolume mit bis zu 50 Gigabyte Speicher und den ReadWriteOnce-Zugriffsmodus finden.

Konfigurieren von Anwendungen mit persistentem Speicher


Das Volume-Array unter einem Pod-Manifest und das volumeMounts-Array in einem Container-Manifest konfigurieren, wie Anwendungen, die unter Kubernetes ausgeführt werden, persistenten Speicher verwenden.


Einträge unter dem Volume-Array in einem Pod-Manifest geben an, welche Speicher-Plugins oder -Objekte ein Pod für seine Container zur Verwendung als Speicher zur Verfügung hat. Bestimmte Volume-Typen, PersistentVolumes, PersistentVolumeClaims, ConfigMaps und Secrets sind alle gültige Einträge unter dem Volume-Array. Jeder Volume-Eintrag erhält einen Namen.


Container unter Pods verwenden das volumeMounts-Array, um alle Volumes bereitzustellen, die vom Pod verfügbar gemacht werden. Der Container referenziert das Volume anhand des auf Pod-Ebene konfigurierten Namens.

Das folgende Beispiel zeigt einen Pod, der so konfiguriert ist, dass er ein Hostverzeichnis verfügbar macht, und das obige PersistentVolumeClaim-Beispiel für die zu verwendenden Container:

apiVersion: v1

Art: Pod

Metadaten:

Name: cka-volumes

spezifikation:

restartPolicy: OnFailure

Behälter:

- Name: cka-volumes

Bild: alpin

Befehl:

- oben

volumeMounts:

- Name: App-Logs

mountPath: /logs

- Name: App-Zertifikate

mountPath: /certs

Bände:

- Name: App-Logs

persistentVolumeClaim:

ClaimName: app-log-pvc

- Name: App-Zertifikate

hostPfad:

Pfad: /etc/ssl/certs

In diesem Beispiel wird ein PersistentVolumeClaim verwendet, um Anwendungsprotokolldaten zu speichern, und stellt außerdem einen hostPath bereit, um Zertifikate seines Hosts zu verwenden.

Übungsübung

Erstellen Sie einen Pod, der centos/httpd ausführt und sein Protokollverzeichnis unter /var/log/httpd unter /tmp/httpd/ auf dem Host speichert.

  • Übungsübung: Antwort

    Erstellen Sie zunächst zwingend eine Pod-Spezifikation mit kubectl run:

Kurse

150

Lernende

50k

Sportschuhe

46

Aktionspreis

90%

  • Wie wir auf Covid-19 reagieren

    In diesen schwierigen Zeiten bleibt Broad Skills voll funktionsfähig. Wir engagieren uns für den Erfolg unserer Kunden und halten die Weltwirtschaft in Bewegung. Alle unsere Kurse und Beratungsdienste sind virtuell verfügbar und wir sind bereit, die Bedürfnisse unserer Kunden weltweit durch Fernunterricht und Videokonferenzen zu unterstützen.

Wir sind Technologieexperten und bieten eine umfassende Palette von Schulungsdienstleistungen, die

Fordern Sie nicht nur Ihren Verstand heraus, sondern geben Sie Ihnen auch beruflich erforderliche Fähigkeiten, die Sie in die Pole-Position versetzen, um weitgehend zum Erfolg und Wachstum Ihres Unternehmens beizutragen.

Stephen Brown

Ausbilder, BroadSkills

Share by: