2016-09-29 3 views
0

Wir haben jetzt scheduled jobs in Kubernetes 1.4 - ist es möglich, eine rolling container update (neues Bild) gegen den Cluster mit dieser? Die Grundidee ist, ich möchte eine einfache Möglichkeit, Updates automatisch jedes Intervall ausrollen. Die "traditionelle" Art, Aktualisierungen vorzunehmen, besteht darin, dass der CI einen Webhook auf dem Kube-Master antrifft, aber ich möchte vermeiden, dass Dienste für die Öffentlichkeit zugänglich gemacht werden, sondern nur regelmäßig nach Aktualisierungen suchen.Kubernetes Rolling-Update geplanten Job

Antwort

1

Ich denke, es ist im Allgemeinen sicher, Ihren Master-Server offenzulegen und Updates von Ihrem CI-System zu senden, aber Sie könnten definitiv einen geplanten Job einrichten, um eine Deployment auf die neueste Version zu aktualisieren. Kubernetes hat ein Konzept mit der Bezeichnung Service Accounts für die Authentifizierung mit der API innerhalb des Clusters und ist gut in kubectl integriert (d. H. Es verwendet die Dienstkontodaten automatisch zur Authentifizierung). Der Cluster stellt auch einen kubernetes-Dienst für die Master-API bereit. Sie können also einen Container mit kubectl und einem Skript bereitstellen und damit die Bereitstellung regelmäßig aktualisieren.

Sie benötigen einen Mechanismus, um herauszufinden, was die neueste Version ist. Vielleicht könnten Sie die neuesten Versionsinformationen in einer Textdatei oder etwas, das in GCS oder S3 geschrieben wurde, speichern und diese Datei abrufen, um die neueste Version zu erhalten.

Sagen Sie bitte eine deploy.yaml wie diese:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: myapp 
spec: 
    template: 
    spec: 
     containers: 
     - name: myapp 
      image: myapp:<latest-ver> 

Und dann können Sie erzeugen und das Deployment in einem Skript aktualisieren, wie so:

#!/bin/sh 
wget -o VERSION http://url/to/VERSION 
sed "s/<latest-ver>/$(cat VERSION)/" deploy.yaml | kubectl apply -f - 

Und bauen, dass in ein Bild und Führen Sie es als Ihren geplanten Job aus.

Verwandte Themen