Kubernetes - Bereitstellungen
Bereitstellungen werden aktualisiert und eine höhere Version des Replikationscontrollers. Sie verwalten die Bereitstellung von Replikatsätzen, bei denen es sich auch um eine aktualisierte Version des Replikationscontrollers handelt. Sie können den Replikatsatz aktualisieren und auf die vorherige Version zurücksetzen.
Sie bieten viele aktualisierte Funktionen von matchLabels und selectors. Wir haben einen neuen Controller im Kubernetes-Master, den Deployment-Controller, der dies ermöglicht. Es kann die Bereitstellung auf halbem Weg ändern.
Ändern der Bereitstellung
Updating- Der Benutzer kann die laufende Bereitstellung aktualisieren, bevor sie abgeschlossen ist. In diesem Fall wird die vorhandene Bereitstellung abgerechnet und eine neue Bereitstellung erstellt.
Deleting- Der Benutzer kann die Bereitstellung anhalten / abbrechen, indem er sie löscht, bevor sie abgeschlossen ist. Wenn Sie dieselbe Bereitstellung neu erstellen, wird sie fortgesetzt.
Rollback- Wir können die Bereitstellung oder die laufende Bereitstellung zurücksetzen. Der Benutzer kann die Bereitstellung mithilfe von erstellen oder aktualisierenDeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.
Bereitstellungsstrategien
Bereitstellungsstrategien helfen bei der Definition, wie der neue RC den vorhandenen RC ersetzen soll.
Recreate- Diese Funktion beendet alle vorhandenen RC und ruft dann die neuen auf. Dies führt zu einer schnellen Bereitstellung, führt jedoch zu Ausfallzeiten, wenn die alten Pods ausgefallen sind und die neuen Pods nicht hochgefahren sind.
Rolling Update- Mit dieser Funktion wird der alte RC schrittweise heruntergefahren und der neue hochgefahren. Dies führt zu einer langsamen Bereitstellung, es erfolgt jedoch keine Bereitstellung. In diesem Prozess sind immer nur wenige alte und wenige neue Pods verfügbar.
Die Konfigurationsdatei von Deployment sieht folgendermaßen aus.
apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
name: Tomcat-ReplicaSet
spec:
replicas: 3
template:
metadata:
lables:
app: Tomcat-ReplicaSet
tier: Backend
spec:
containers:
- name: Tomcatimage:
tomcat: 8.0
ports:
- containerPort: 7474
Im obigen Code unterscheidet sich das einzige, was sich vom Replikatsatz unterscheidet, darin, dass wir die Art als Bereitstellung definiert haben.
Bereitstellung erstellen
$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.
Rufen Sie die Bereitstellung ab
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVILABLE AGE
Deployment 3 3 3 3 20s
Überprüfen Sie den Bereitstellungsstatus
$ kubectl rollout status deployment/Deployment
Aktualisieren der Bereitstellung
$ kubectl set image deployment/Deployment tomcat=tomcat:6.0
Zurücksetzen auf die vorherige Bereitstellung
$ kubectl rollout undo deployment/Deployment –to-revision=2