CKAd-Selbststudium

Modul 1

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

KONTAKTIERE UNS

CKAD Selbststudium Mod 1


In diesem Modul des Online-CKAD-Vorbereitungskurses Broad Skills behandeln wir die Kernkonzepte und Konfigurationsthemen, die im CNCF CKAD-Prüfungscurriculum identifiziert wurden. Wenn Sie mit dem Lehrplan noch nicht vertraut sind, nehmen Sie sich einen Moment Zeit, um sich vertraut zu machen, da Sie Ihr Wissen zu jedem Thema nachweisen müssen, um die Prüfung zu bestehen.

ckaD Selbststudienmodule

Basis-Pods


Pods sind die atomare Bereitstellungseinheit in Kubernetes und bestehen aus einem oder mehreren Containern in verschiedenen Arrays in einer PodSpec:

    Container (erforderlich) – Container mit langer Laufzeit für Anwendungen, Proxys, Logging-/Monitoring-Sidecars usw. Init-Container (optional) – Bootstrapping-Container, die einmal ausgeführt werden, um lang laufende App-Container zu booten. Ephemere Container (optional) – eine Alpha-Funktion in Kubernetes, Diese Container können zur Laufzeit zur Ad-hoc-Fehlerbehebung hinzugefügt werden

Ein einfacher Pod würde einen einzelnen Container enthalten und könnte mit yaml oder imperativ erstellt werden:

$ kubectl run ckad-basic-pod --image=nginx:latest

Sicherheitskontext


Dies ist eine Einstellung in einer PodSpec, die die Sicherheit für einen oder alle Container in einem Pod erhöht und die folgenden Einstellungen hat:

    Discretionary Access Control: Definieren Sie Benutzer-ID (UID) und Gruppen-ID (GID)-Einstellungen für Prozesse innerhalb von containerSecurity Enhanced Linux (SELinux): Aufrufen vordefinierter SicherheitslabelsLinux Capabilities: grobkörnige Steuerung von Systemaufrufen an den Linux-Kernel in einer Whitelist oder BlacklistMarkierung a pod withprivileged = true gewährt alle FähigkeitenAppArmor: Ruft vordefinierte Programmprofile auf, um die Fähigkeiten einzelner Programme einzuschränkenSeccomp: Feingranulare Kontrolle über die Systemaufrufe eines Prozesses durch die Verwendung von json-RichtlinienAllowPrivilegeEscalation: Steuert, ob ein Prozess mehr Privilegien erlangen kann als sein Elternteil


SecurityContext-Einstellungen können für den Pod und/oder jeden Container im Pod festgelegt werden, zum Beispiel:

apiVersion: v1

Art: Pod

Metadaten:

Name: ckad-training-pod

spezifikation:

securityContext: # Pod-Sicherheitskontext

fsGruppe: 2000

Behälter:

- Name: ckad-training-container

Bild: nginx

securityContext: # Container-Sicherheitskontext

Fähigkeiten:

hinzufügen: ["NET_ADMIN"]

Anforderungen und Grenzen von Containerressourcen

Ressourcenanforderungen und -limits werden pro Container innerhalb eines Pods festgelegt. Durch Angabe einer Ressourcenanforderung teilen wir dem Kubernetes-Scheduler die _minimale_ Menge jeder Ressource (CPU und Arbeitsspeicher) mit, die ein Container benötigt. Durch die Angabe von Grenzwerten richten wir Kontrollgruppen-Einschränkungen auf dem Knoten ein, auf dem der Prozess ausgeführt wird. Ein Beispiel für das Festlegen von Anforderungen/Limits sieht wie folgt aus:

apiVersion: v1

Art: Pod

Metadaten:

Name: ckad-resource-pod

spezifikation:

Behälter:

- Name: ckad-Ressourcencontainer

Bild: meine-App: v3.3

Ressourcen:

Grenzen:

CPU: "1"

Speicher: „1Gi“

Anfragen:

CPU: "0.5"

Speicher: „500Mi“

ConfigMaps

ConfigMaps sind entkoppelte Konfigurationsartefakte, die containerisierte Anwendungen portabel halten.


Die ConfigMap-API-Ressource bietet Mechanismen, um Container mit Konfigurationsdaten zu injizieren, während Container Kubernetes-unabhängig bleiben. Eine ConfigMap kann verwendet werden, um feinkörnige Informationen wie einzelne Eigenschaften oder grobkörnige Informationen wie ganze Konfigurationsdateien oder JSON-Blobs zu speichern.


Es gibt mehrere Möglichkeiten, eine ConfigMap zu erstellen: aus einem Verzeichnis-Upload, einer Datei oder aus Literalwerten in der Befehlszeile, wie im folgenden Beispiel gezeigt:

$ kubectl create configmap ckad-example-config --from-literal foo=bar

Geheimnisse

Geheimnisse enthalten vertrauliche Informationen wie Kennwörter, OAuth-Token und SSH-Schlüssel. Diese Informationen in einem Secret zu speichern ist sicherer und flexibler, als sie wörtlich in einer Pod-Definition oder einem Docker-Image zu platzieren!



Es gibt drei Arten von Geheimnissen, die durch das Flag --help erklärt werden:

$ kubectl create secret --help


Erstellen Sie mit dem angegebenen Unterbefehl ein Geheimnis.

Verfügbare Befehle:

docker-registry Erstellen Sie ein Geheimnis zur Verwendung mit einer Docker-Registrierung

generisch Erstellen Sie ein Geheimnis aus einer lokalen Datei, einem Verzeichnis oder einem Literalwert

tls Erstelle ein TLS-Geheimnis 

Beispiel für die zwingende Erstellung eines Geheimnisses:

$ kubectl erstelle geheimes generisches my-secret \

--from-literal=username=ckad-user \

--from-literal=password=Char1!3-K!10-Alpha-D31ta

Mounten von ConfigMaps/Secrets als Volumes oder Umgebungsvariablen

ConfigMaps und Secrets werden von Pods entweder als Volumes oder als Umgebungsvariablen bereitgestellt, die von einem Container in einem Pod verwendet werden. ConfigMaps und Secrets können auf zwei Arten mit einem Pod verwendet werden:

    Dateien in einem VolumeUmgebungsvariablen

Secrets können auch vom Kubelet beim Abrufen von Images für einen Pod verwendet werden, die als imagePullSecret bezeichnet werden -training-docker-token ” als imagePullSecret :

apiVersion: v1

Art: Pod

Metadaten:

Name: pod-config

spezifikation:

Behälter:

- Name: nginx

Bild: nginx:neueste

imagePullSecrets:

- Name: ckad-training-docker-token

volumeMounts:

- Name: config

mountPath: /etc/myapp

Bände:

- Name: config

configMap:

Name: ckad-example-config

Übungsübung

Erstellen Sie einen Pod, der das nginx-Image ausführt und ein Dienstkonto namens my-sa verwendet.

  • Übungsübung: Antwort

    Sowohl das Dienstkonto als auch der Pod können zwingend erstellt werden:

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: