Static Pods in Kuberentes

Statische Pods werden direkt vom Kubelet verwaltet, und der API-Server hat keine Kontrolle über diese Pods. Das Kubelet ist dafür verantwortlich, jeden statischen Pod zu überwachen und neu zu starten, wenn er abstürzt. Die statischen Pods, die auf einem Knoten laufen, sind auf dem API-Server sichtbar, können aber nicht vom API-Server gesteuert werden. Der statische Pod verfügt über keinen zugehörigen Replikationscontroller, der Kubelet-Service selbst überwacht ihn und startet ihn neu, wenn er abstürzt. Für statische Pods gibt es keinen Gesundheitscheck. Der kubelet-Prozess überwacht das spezifische Verzeichnis, das für statische Pods vorgesehen ist.

Um mehr über die statischen Pods zu erfahren, besuchen Sie die offizielle Seite des Kubernetes hier.

In diesem Artikel sehen wir die Schritte zum Erstellen eines statischen Pods aus der Datei, die am Standard-Speicherort gespeichert ist, aus dem Kubelet Manifeste liest. Außerdem werden wir den Standard-Speicherort in ein anderes Verzeichnis ändern und sehen, wie von dort aus ein statischer Pod erstellt wird. Wir werden statische Pods auf dem Worker-Knoten erstellen.

Voraussetzungen

  1. Kubernetes Cluster mit mindestens 1 Worker-Knoten.
    Wenn Sie lernen möchten, wie man einen Kubernetes-Cluster erstellt, klicken Sie hier. Dieses Handbuch hilft Ihnen bei der Erstellung eines Kubernetes-Clusters mit 1 Master- und 2 Worker-Knoten auf AWS Ubuntu 18.04 EC2-Instanzen.

Was werden wir tun?

  1. Statische Pods erstellen

Statische Pods erstellen

Führen Sie die folgenden Befehle vom Masterknoten aus aus, um die Details der Knoten und Pods im Cluster zu erhalten.

$master kubectl  get nodes
$master kubectl  get pods

get-alles-pods

Sie können die Container prüfen, die als Teil der Pods laufen

$worker docker ps
$worker docker ps -a

Container-am-Arbeiter-Knoten

Melden Sie sich jetzt beim Worker-Knoten an und erstellen Sie eine neue Datei mit dem folgenden Inhalt im Standardpfad der statischen Pods-Manifeste.

$worker vim /etc/kubernetes/manifests/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

static-pod-definition-at-default-location

Sobald Sie eine Pod-Definition am Standardort des Manifests für statische Pods erstellen, wird der Pod erstellt, der nicht vom API-Server gesteuert wird.

Sie können den neu erstellten Pod mit dem folgenden Befehl vom Masterknoten aus überprüfen.

$master kubectl  get pods
$master kubectl  get pods --all-namespaces

statisch-pod-erstellt

Um die als Teil des Pods erstellten Container zu überprüfen, führen Sie den folgenden Befehl auf dem Worker-Knoten aus

$worker docker ps
$worker docker ps -a

Container-am-Arbeiter-Knoten

Wir können auch den Standardort ändern, von dem Kubelet die Manifeste liest.

Erstellen Sie nun einen neuen Ordner, in dem wir Manifeste von statischen Pods speichern möchten.

Hier erstellen wir „/etc/kubelet.d/“.

$worker mkdir -p /etc/kubelet.d/

Erstellen Sie eine Pod-Definitionsdatei in dem von uns erstellten Verzeichnis.

$worker vim /etc/kubelet.d/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: static-web-2
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

Um den Standardpfad zu ändern, von dem Kubelets Manifeste von Static Pods liest, bearbeiten Sie die Datei /var/lib/kubelet/config.yaml und ändern Sie den Wert von „staticPodPath“ in „staticPodPath=/etc/kubelet.d“.

Wechsel-statische-Pfad-Pfad

Sobald die Konfiguration eingerichtet ist, starten Sie den Kubelet-Service neu

$worker systemctl restart kubelet

Sobald der Dienst neu gestartet wird, erkennt Kubelet den neuen Standort und liest Manifeste von diesem Standort und erstellt die Pods.

Prüfen Sie, ob der Pod erstellt wurde oder nicht.

$master kubectl  get pods

Static-Pod

Überprüfen Sie den Container, der als Teil des Pods auf dem Worker-Knoten erstellt wurde, mit dem folgenden Befehl.

$worker docker ps

Container-am-Arbeiter-Knoten

Schlussfolgerung

In diesem Artikel sahen wir die Schritte zum Erstellen statischer Pods und auch die Konfigurationsänderung, die in Kubelet erforderlich ist, um das Standardverzeichnis für Manifeste statischer Pods zu ändern.

Das könnte dich auch interessieren …