Verwendung von Befehlen und Argumenten in einem Kubernetes-Pod

Hallo, Leser! Verwendung von Befehlen und Argumenten in einem Kubernetes-Pod

Dieser Artikel behandelt die Verwendung von Befehlen und Argumenten in einem Kubernetes-Pod anhand verschiedener Szenarien für ein besseres Verständnis.

Also, lasst uns beginnen!! 🙂

Verwendung von Befehlen und Argumenten – Prozessausführung

Wenn wir sagen, dass eine Anwendung innerhalb eines Kubernetes-Pods läuft, meinen wir eigentlich, dass der Container als Pod verpackt und präsentiert wird.

Ein Container bündelt alle notwendigen Abhängigkeiten und Befehle zur Ausführung von Prozessen und befindet sich innerhalb eines Pods. Bei der Erstellung eines Pods können wir Befehle und Argumente definieren, die innerhalb des Containers ausgeführt werden.

Normalerweise überschreiben die von uns in benutzerdefinierter Form definierten Befehle und Argumente den Standardbefehl und die Standardargumente des Basiscontainer-Images.

In diesem Zusammenhang werden wir uns mit Möglichkeiten befassen, Befehle und Argumente für einen Container zu erstellen und zu definieren, der als Anwendungs-Pod läuft.

Befehle und Argumente für einen Kubernetes-Pod definieren

Um ein Argument innerhalb eines Containers zu definieren, können wir das Befehlsfeld verwenden. Sobald wir Befehle definieren, benötigen wir Argumente, die an sie übergeben werden. Diese Argumente können wir dem Befehl mit dem args-Feld übergeben.

Im folgenden Beispiel haben wir den Befehl printenv an den Container übergeben, damit er die Werte für die Umgebungsvariable KUBECONFIG als Argument ausgibt.

Beispiel: pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: demo-cmd
spec:
  containers:
  - name: cmd-arg-demo
    image: debian
    command: ["printenv"]
    args: ["KUBECONFIG"]
  restartPolicy: OnFailure

Lassen Sie uns nun die obige Datei anwenden und einen Pod erstellen.

Nachdem wir einen Pod erstellt haben, können wir die Logs des Pods und des spezifischen Containers abrufen, um das Ergebnis der Befehlsausführung zu sehen.

Output:

Der Output gibt den Wert für die Befehlsausführung zurück. Das heißt, sie zeigt den Pfad der KUBECONFIG-Datei als Wert an.

1. Verwendung von Umgebungsvariablen zur Definition von Argumenten

Als Variante können wir Umgebungsvariablen verwenden, um den Wert der Argumente für die Befehle zu übergeben. Schauen wir uns den folgenden Abschnitt des Codes an-

Beispiel: Beispielcode

env:
- name: data
  value: "002234-willkommensnachricht"
command: ["/bin/data"]
args: ["$(data)"]

Mit dem oben stehenden Codeblock können wir den Wert der Argumente mithilfe einer Umgebungsvariablen übergeben. Hier übergeben wir den Wert des Arguments an den Befehl in Form einer Variablen namens data, deren Wert als Umgebungsvariable angegeben ist.

Neben Umgebungsvariablen können wir den Wert auch in Form einer ConfigMap und eines Secrets auf ähnliche Weise übergeben.

2. Ausführen von Befehlen innerhalb einer Shell

Manchmal, wenn wir mehrere Befehle gleichzeitig ausführen möchten, benötigen wir eine Shell, die innerhalb des Containers für die Ausführung läuft.

Dies kann durch das Ausführen einer virtuellen Shell zur Laufzeit erreicht werden.

Dafür definieren wir einen Befehl, um alle angegebenen Befehle innerhalb des Pods in der Shell auszuführen, wie unten gezeigt-

command: ["/bin/sh"]
args: ["-c", "while true; do echo Willkommen bei JournalDev; sleep 100; done"]

Als umfassender Leitfaden haben wir in diesem Beispiel den Pod angewiesen, eine Shell zu verwenden, um ein BASH-Skript auszuführen, das mehrere Befehle gleichzeitig ausführt, wie z.B. die Ausführung einer while-Loop.

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Linkerd auf Kubernetes installieren und konfigurieren

Kubernetes, Tutorial
Installation und Konfiguration von Linkerd auf einem Kubernetes-Cluster Linkerd ist ein leichtgewichtiges, quelloffenes Service Mesh für Kubernetes, das Funktionen wie Beobachtbarkeit, Sicherheit und effizientes Traffic-Management bietet. Es nutzt ein Sidecar-Proxy-Modell,…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Metabase auf Kubernetes installieren und absichern

Kubernetes, Tutorial
Metabase auf Kubernetes bereitstellen und absichern Metabase ist eine Open-Source-Business-Intelligence-Plattform, mit der du aus deinen Daten aussagekräftige Dashboards und Diagramme erstellen kannst. Sie unterstützt gängige Datenbanken wie MySQL, PostgreSQL, MongoDB…