Ich möchte einen Anwendungscluster bereitstellen, indem ich meine Bereitstellung über das k8s Deployment-Objekt verwalte. Die Dokumentation hat mich extrem verwirrt. Mein Basislayout hat die folgenden Komponenten, die unabhängig voneinander skaliert werden können:
Technisch gesehen gehören alle 4 oben in separate Pods, die unabhängig voneinander skaliert werden.
Meine Fragen sind:
pod.yml
-Dateien erstellen und sie dann irgendwie in deployment.yml
-Datei referenzieren oder kann eine Implementierungsdatei auch Pod-Definitionen einbetten? spec
Anteil von Deployment
der Definition von einem Pod entspricht. Ist das korrekt? Was ist, wenn ich Multi-Pod-Implementierungen deklarativ beschreiben möchte? Benötige ich mehrere deployment.yml-Dateien? Pagids Antwort hat die meisten Grundlagen. Sie sollten 4 Deployments
für Ihr Szenario erstellen. Jede Bereitstellung erstellt ein ReplicaSet
, das die Sammlung von PODs
für Deployment
plant und überwacht.
Jedes Deployment
wird höchstwahrscheinlich auch einen Service
davor für den Zugriff benötigen. Ich erstelle normalerweise eine einzelne Yaml-Datei mit einem Deployment
und dem entsprechenden Service
. Hier ist ein Beispiel für ein nginx.yaml
, das ich verwende:
Hier einige zusätzliche Informationen zur Verdeutlichung:
POD
ist keine skalierbare Einheit. A Deployment
, das PODs plant, ist. Deployment
soll eine einzelne Gruppe von PODs darstellen, die zusammen einen einzigen Zweck erfüllen. Deployments
im virtuellen Netzwerk des Clusters zusammenarbeiten lassen. Deployment
zuzugreifen, das aus vielen PODs
bestehen kann, die auf verschiedenen Knoten laufen, müssen Sie einen Service erstellen. StatefulSet
erstellen (z. B. für einen Datenbankservice). Sie können die API-Referenz von Kubernetes für die Bereitstellung und Sie werden feststellen, dass das Feld spec
- & gt; template
vom Typ PodTemplateSpec
zusammen mit dem zugehörigen Kommentar ( Vorlage beschreibt die Pods, die erstellt werden. ) es beantwortet Ihre Fragen. Eine längere Beschreibung finden Sie natürlich im Implementierungshandbuch .
Um Ihre Fragen zu beantworten ...
1) Die Pods
werden von Deployment
verwaltet und ihre separate Definition ist nicht sinnvoll, da sie von der Bereitstellung bei Bedarf erstellt werden. Beachten Sie, dass möglicherweise mehrere Replikate desselben Pod-Typs vorhanden sind.
2) Für jede der Anwendungen in Ihrer Liste müssten Sie ein Deployment
definieren - was auch sinnvoll ist, wenn es um Replikate von verschiedenen Replikaten und Rollouts von Anwendungen geht.
3) Sie haben nicht gefragt, aber es ist verwandt - zusammen mit separaten Deployments
jede Ihrer Anwendungen benötigt auch eine dedizierte Service
, damit die anderen darauf zugreifen können.
Tags und Links kubernetes deployment