Bereitstellungsmodelle
Bereitstellungsmodelle helfen Ihnen, den Prozess der Anwendungsbereitstellung clusterübergreifend zu verstehen.
Push-basierte Implementierung
Das Push-basierte Bereitstellungsmodell stellt Ihre Anwendung in nur einem Cluster bereit. Die Bereitstellungs-Pipeline stellt eine Verbindung zum Cluster her und wendet die Bereitstellungsdateien an. Bei diesem Modell ist keine Installation eines Operators oder Agenten auf Ihrem Cluster erforderlich.
Sie können jedes Bereitstellungstool verwenden, das über die Bereitstellungspipeline auf dem Zielcluster ausgeführt werden kann, zum Beispiel:
- kubectl (oder
ocfür Red Hat OpenShift on IBM Cloud ), um Kubernetes-Manifeste anzuwenden. - Helm, um eine Chart-Version zu installieren oder zu aktualisieren. Das Diagramm kann wie jedes andere Bereitstellungselement im Inventar-Repository gespeichert werden.
Die Bereitstellungsskripte sind Teil des Bereitstellungs-Repositorys, und Sie können sie an die Anforderungen Ihrer Anwendung und Ihres Clusters anpassen. DevSecOps stellt Hilfsskripte bereit, die als Commons Library bezeichnet werden und Bereitstellungsvorgänge abdecken.
Pull-basierte Implementierung
Das Pull-basierte Bereitstellungsmodell eignet sich für Anwendungsbereitstellungen mit mehreren Clustern. Dieses Modell verwendet IBM Cloud Satellite Config als Bereitstellungstool für die Bereitstellung in mehreren Clustern. Weitere Informationen finden Sie unter Erklärung von Satellite Config.
Die Bereitstellungs-Pipeline stellt keine Verbindung zu jedem einzelnen Cluster her. Stattdessen veröffentlicht es die Bereitstellungsdateien in der Konfiguration von Satellite, und ein Agent, der auf jedem Cluster läuft, ruft diese ab. Die Cluster, die dieselbe Bereitstellung erhalten, werden in einer Satellite-Clustergruppe zusammengefasst.
Satellite-Konfigurationen stellen Kubernetes-Ressourcendefinitionen bereit. Wenn Ihre Anwendung als Helm-Chart oder als Kustomize-Overlays verpackt ist, wandeln Sie sie zunächst in Kubernetes-Manifeste um, beispielsweise mit helm template oder kustomize build, und laden Sie die umgewandelten Manifeste anschließend als Konfigurationsversion hoch.
Führen Sie für eine Pull-basierte Implementierung die folgenden Schritte durch:
- Erstellen oder aktualisieren Sie die erforderlichen Satellite-Konfigurationen und deren Versionen für die Bereitstellungsdateien.
- Erstellen oder aktualisieren Sie die Satellite-Konfigurationsabonnements mit den Satellite-Konfigurationen und den Versionen, die bereitgestellt werden müssen.
- Nachdem die Abonnements aktualisiert wurden, ruft der auf den Clustern installierte Razee-Agent die neuesten Bereitstellungen aus der Satellite-Konfiguration ab und stellt sie auf den Clustern bereit.
Auswahl eines Bereitstellungsmodells
| Hinweis | Push-basierte Implementierung | Pull-basierte Implementierung |
|---|---|---|
| Ziel | Einzelner Cluster | Eine Gruppe von Clustern |
| Implementierungstool | kubectl, oc, Helm, Kustomize oder jedes andere Tool, das in der Pipeline ausgeführt wird |
Satellite-Konfiguration |
| Komponente im Cluster | Keine | Satellite-Konfigurationsagent |
| Cluster-Zugriff | Die Pipeline benötigt Anmeldedaten für den Cluster | Der Agent auf dem Cluster ruft die Bereitstellung ab, und die Pipeline benötigt lediglich Zugriff auf die Konfiguration Satellite |
| Helm-Charts | Direkt mit Helm installiert oder aktualisiert | Vor dem Hochladen in Manifestdateien umgewandelt |
Weitere Informationen zur Auswahl des Bereitstellungsziels finden Sie unter Bereitstellen Ihrer Anwendung auf einem Ziel.