Lassen Sie uns sagen, dass ich eine einfache Bereitstellung haben Kubernetes config:Wie verwalten Sie Kubernetes Deployment Yaml-Datei mit kontinuierlicher Lieferung?
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: backend
spec:
replicas: 1
template:
metadata:
name: backend
spec:
containers:
- name: backend
image: backend:1.0.0
resources:
limits:
memory: "500Mi"
cpu: "100m"
imagePullPolicy: Always
Und ich will kontinuierlichen Einsatz haben.
Eine Möglichkeit, dies zu tun wäre einfach für die Erstellung dieser Datei zu verwenden, und für Updates laufen so etwas wie
kubectl set image deployment/backend backend=backend:1.1.0
. Aber was, wenn ich irgendwann später z. Grenzen, ich müsste herausfinden, die aktuelle Version läuft, ersetzen Sie das in Yaml-Datei und wenden Sie es an? Scheint umständlichGoogle
sed
für den Ersatz image version in their example, und diese Art von Arbeiten in Ordnung, wenn Ihre Kubernetes Dateien Config gespeichert sind, in der gleichen Repo wie Sie Ihren Code zu verwenden scheint. Und was ist, wenn sie woanders gespeichert sind oder Ihr Build einige Zeit braucht? Um nur eine einzige Eigenschaft zu ändern, müssten Sie den gesamten Build-Prozess durchlaufen, der möglicherweise zu lang ist.Haben Sie ein Skript, das nach jeder Implementierung eine yaml-Datei basierend auf der Versionseingabe automatisch generiert und immer nur die Vorlage bearbeitet (aber dann, wo speichern Sie die letzte bereitgestellte Version?)
Einige Drittanbieter-Tool?