CKA-Selbststudium

Modul 1

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

KONTAKTIERE UNS

CKA Selbststudium Mod 1


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

Authentifizierung und Autorisierung konfigurieren


Rollen, ClusterRoles, RoleBinding und ClusterRoleBindings steuern Benutzerkontoberechtigungen, die steuern, wie sie mit im Cluster bereitgestellten Ressourcen interagieren. ClusterRoles und ClusterRoleBindings sind Ressourcen ohne Namespace. Roles and RoleBindings legt Berechtigungen und Bindungsberechtigungen in einem bestimmten Namespace fest. Kubernetes verwendet rollenbasierte Zugriffssteuerungsmechanismen (RBAC), um die Fähigkeit von Benutzern zu steuern, eine bestimmte Aufgabe an Kubernetes-Objekten auszuführen. Bei Clustern, die mit kubeadm gebootet werden, ist RBAC standardmäßig aktiviert. Berechtigungen für API-Ressourcen werden mithilfe von Roles und ClusterRoles erteilt (der einzige Unterschied besteht darin, dass clusterRoles für den gesamten Cluster gelten, während reguläre Rollen für ihren Namespace gelten). Berechtigungen gelten für API-Ressourcen und -Objekte unter den API-Ressourcen. Verben steuern, welche Operationen von jeder Rolle ausgeführt werden können. Rollen können zwingend mit kubectl create role erstellt werden. Sie können die API-Ressourcen und Verben angeben, die den Berechtigungen zugeordnet sind, die die Rolle gewährt:

$ kubectl create role default-appmanager --resource pod,deploy,svc,ingresses --verb get,list,watch,create -o yaml


apiVersion: rbac.authorization.k8s.io/v1

Art: Rolle

Metadaten:

Name: default-appmanager

Namensraum: Standard

Regeln:

- apiGruppen:

- ""

Ressourcen:

- Schoten

- Dienstleistungen

Verben:

- werden

- aufführen

- sehen

- schaffen

- löschen

- apiGruppen:

- Apps

Ressourcen:

- Bereitstellungen

Verben:

- werden

- aufführen

- sehen

- schaffen

- löschen


$

Rollen und ClusterRoles werden Benutzern und Prozessen mithilfe von RoleBindings und ClusterRoleBindings zugewiesen. RoleBindings verknüpfen einen Benutzer wie ein Dienstkonto mit einer Rolle. Alle von einer Rolle gewährten Berechtigungen werden über die RoleBinding an den Benutzer weitergegeben. Rollenbindungen können auch zwingend mit kubectl create rolebinding erstellt werden. Rolebindings binden Rollen mit dem Flag --user und serviceAccounts mit dem Flag --serviceaccount an Benutzer. Im folgenden Beispiel wird die Rolle default-appmanager an das Standarddienstkonto des Standard-Namespace gebunden:

$ kubectl create rolebinding default-appmanager-rb \

--serviceaccount default:default\

--role default-appmanager


rolebinding.rbac.authorization.k8s.io/default-appmanager-rb erstellt


$

Kubernetes mit Kubeadm . aktualisieren


Cluster-Upgrades beinhalten die Aktualisierung der Version der Kubernetes-Steuerungsebenenkomponenten und der Kubelets, die auf jedem Knoten im Cluster ausgeführt werden. Im Allgemeinen bestimmt der API-Server die Version des Kubernetes-Clusters. Das Kubelet ist möglicherweise zwei kleinere Versionen älter als der API-Server. Die anderen Komponenten der Steuerungsebene können bis zu einer Nebenversion älter als der API-Server sein. Der kubectl-Client kann eine Version neuer oder älter als der API-Server sein.


Die Details der Versionsunterstützungsrichtlinie finden Sie auf der Seite Versionsverzerrungsrichtlinie in der Kubernetes-Dokumentation.


Um den Steuerungsebenenknoten zu aktualisieren, müssen wir Folgendes tun:

    Aktualisierte Kubernetes-Binärdateien abrufenNeuere Version von Kubadm installierenDen Control Plane-Knoten entfernen Den Kubeadm-Upgrade-Plan verwenden, um die neuen Komponentenversionen der Control-Plane zu überprüfen und abzurufenUpgrade anwendenUpgrade des Kubelet und Kubectluncordauf dem Control Plan-Knoten

Im Folgenden finden Sie ein Beispiel für das Upgrade eines Kubernetes-Steuerungsebenenknotens von Kubernetes v1.18.0 auf v.19.0 unter Ubuntu 18.04:

Aktualisieren Sie das apt-Repository:

Aktualisieren Sie das apt-Repository:

$ sudo apt-Update

$

Installieren Sie die neuere kubeadm-Version zB v1.19.0:

$ sudo apt install kubeadm=1.19.0-00

$ 

Entleeren Sie den Kontrollplanknoten

$ kubectl drain --ignore-daemonsets

$ 

Führen Sie den kubeadm-Upgradeplan mit sudo aus, um aktualisierte Komponenten der Steuerungsebene zu überprüfen und abzurufen:

$ sudo kubeadm Upgrade-Plan

Komponenten, die manuell aktualisiert werden müssen, nachdem Sie die Steuerungsebene mit 'kubeadm upgrade apply' aktualisiert haben:

KOMPONENTENSTROM VERFÜGBAR

Kubelet 1 x v1.18.0 v1.19.1


Upgrade auf die neueste stabile Version:


KOMPONENTENSTROM VERFÜGBAR

Cube-Apiserver v1.18.0 v1.19.1

Cube-Controller-Manager v1.18.0 v1.19.1

be-scheduler v1.18.0 v1.19.1

Kube-Proxy v1.18.0 v1.19.1

CoreDNS 1.6.7 1.7.0

uswd 3.4.3-0 3.4.9-1


Sie können das Upgrade jetzt anwenden, indem Sie den folgenden Befehl ausführen:


kubeadm-Upgrade anwenden v1.19.1


Hinweis: Bevor Sie dieses Upgrade durchführen können, müssen Sie kubeadm auf v1.19.1 aktualisieren.


______________________________________________________________________



Die folgende Tabelle zeigt den aktuellen Status der Komponentenkonfigurationen, wie er von dieser Version von kubeadm verstanden wird.

Konfigurationen, die in der Spalte „MANUELLES UPGRADE ERFORDERLICH“ mit einem „Ja“ markiert sind, erfordern ein manuelles Konfigurations-Upgrade oder

Zurücksetzen auf die kubeadm-Standardeinstellungen, bevor ein erfolgreiches Upgrade durchgeführt werden kann. Die Version zum manuellen

Upgrade auf wird in der Spalte "BEVORZUGTE VERSION" angezeigt.


API-GRUPPE AKTUELLE VERSION BEVORZUGTE VERSION MANUELLES UPGRADE ERFORDERLICH

kubeproxy.config.k8s.io v1alpha1 v1alpha1 nein

kubelet.config.k8s.io v1beta1 v1beta1 nein

______________________________________________________________________


$

Beachten Sie, dass das Kubelet nach dem Upgrade der Steuerungsebene manuell aktualisiert werden muss.

Wir sehen, dass v1.19.1 verfügbar ist, aber lassen Sie uns auf v1.19.0 aktualisieren:

$ sudo kubeadm upgrade anwenden v1.19.0

[Upgrade/erfolgreich] ERFOLG! Ihr Cluster wurde auf "v1.19.0" aktualisiert. Genießen!


[upgrade/kubelet] Nachdem Ihre Kontrollebene aktualisiert wurde, fahren Sie bitte mit dem Upgrade Ihrer Kubelets fort, falls Sie dies noch nicht getan haben.


$

Installieren Sie die entsprechenden Versionen von kubelet und kubectl:

$ sudo apt install kubelet = 1.19.0-00 kubectl = 1.19.0-00

Kubelet einrichten (1.19.0-00) ...

kubectl (1.19.0-00) einrichten ...


$ 

Den Kontrollplanknoten aufheben:

$ kubectl uncordon

Knoten / unkordoniert


$


Kubernetes mit Kubeadm . aktualisieren

Der Zustand eines Kubernetes-Clusters ist in den etcd-Instanzen enthalten, die den Cluster unterstützen. Beim Sichern eines Kubernetes-Clusters müssen Sie die etcd-Instanz(en) sichern.

Eine Möglichkeit, eine Sicherung durchzuführen, ist die Verwendung des Befehls etcdctl:

$ ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \

--cacert=/etc/etcd/ca.crt --cert=/etc/etcd/server.crt --key=/etc/etcd/server.key \

Snapshot speichern /var/lib/etcd/backup.db


$


Dieser Befehl stellt eine Verbindung zu einem etcd-Cluster her und speichert seinen Inhalt in einer Datenbankdatei. Diese Datenbankdatei wird dann verwendet, um den gesamten Cluster auf einem neuen Satz von Knoten wiederherzustellen.

Übungsübung

Dieser Befehl stellt eine Verbindung zu einem etcd-Cluster her und speichert seinen Inhalt in einer Datenbankdatei. Diese Datenbankdatei wird dann verwendet, um den gesamten Cluster auf einem neuen Satz von Knoten wiederherzustellen.

  • Übungsübung: Antwort Erweitern

    Beginnen Sie mit der zwingenden Erstellung der Rolle:

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: