2017-09-10 1 views
2

Nach einigen intensiven Google und SO-Suche konnte ich kein Dokument finden, das sowohl Rolling-Update und Set-Image erwähnt, und kann den Unterschied zwischen den beiden betonen.Kubernetes Rolling Update vs Set Bild

Kann jemand Licht werfen? Wann würde ich lieber beides benutzen?

EDIT: Es ist erwähnenswert, dass ich bereits mit Bereitstellungen arbeiten (anstatt Replikations-Controller direkt) und dass ich Yaml-Konfigurationsdateien verwenden. Es wäre auch schön zu wissen, ob es einen Weg gibt, irgendwelche von denen durchzuführen, die Konfigurationsdateien anstelle von direkten Befehlen verwenden.

+0

Was genau meinen Sie mit 'Verwenden von Konfigurationsdateien anstelle von direkten Befehlen'? Sie möchten conf-Dateien direkt auf dem Cluster bereitstellen, um eine Implementierung zu ändern, statt den k8s-API-Server zu verwenden? – fishi

+0

Ich meine, dass ich die zweite hier genannte Methode verwende -> https://kubernetes.io/docs/tutorials/object-management-kubectl/object-management/ – AvivC

Antwort

1

In älteren k8s-Versionen war ReplicationController die einzige Ressource, die eine Gruppe von replizierten Pods verwaltet. Um die Pods eines ReplicationController zu aktualisieren, verwenden Sie kubectl rolling-update.

Später k8s eingeführt Deployment, die ReplicaSet Ressourcen verwaltet. Die Deployment könnte über kubectl set image aktualisiert werden.

Arbeiten mit Deployment Ressourcen (wie Sie bereits tun) ist der bevorzugte Weg. Ich denke, der ReplicationController und sein rolling-update Befehl sind hauptsächlich noch aus Gründen der Abwärtskompatibilität da.


UPDATE: Wie in den Kommentaren erwähnt:

Um ein Update Deployment habe ich kubectl patch wie es auch Dinge wie das Hinzufügen neuen env ändern könnte Vars während kubectl set image eher begrenzt ist und nur das Bild ändern Ausführung. Beachten Sie auch, dass patch auf alle k8s-Ressourcen angewendet werden kann und nicht auf die Verwendung mit Deployment beschränkt ist.

Später verlagerte ich meine Bereitstellungsprozesse, um helm zu verwenden - ein wirklich nettes und k8s natives Paketverwaltungstool. Kann sehr empfehlen, es sich anzuschauen.

+0

Also sage ich dir eigentlich, ich sollte lieber '' verwenden kubectl Bild einstellen? Dies ist auch, was ich aus den Dokumenten nahm, aber es ist sehr vage drin – AvivC

+1

Zum Zeitpunkt des Schreibens 'Deployments' sind flexibler und der Weg zu gehen. Persönlich habe ich meine 'Deployments' über' kubectl patch' aktualisiert, da sie auch andere Teile einer Deployment wie das Hinzufügen neuer env vars ändern können. Mit 'kubectl set image' können Sie nur die Bildversion ändern. Später habe ich meine Bereitstellungen verschoben, um [helm] (https://helm.sh/) zu verwenden - ein wirklich nettes und k8s natives Paketverwaltungstool. – fishi

Verwandte Themen