2016-06-15 14 views
39

Ich habe stundenlang durch die Kubernetes-Dokumentation gegraben. Ich verstehe das Kerndesign und die Vorstellung von Diensten, Controllern, Pods usw.Kann Kubernetes wie Docker Compose verwendet werden?

Was ich nicht verstehe, ist jedoch der Prozess, in dem ich den Cluster deklarativ konfigurieren kann. Das ist eine Möglichkeit für mich, eine Konfigurationsdatei (oder einen Satz davon) zu schreiben, um die Make-up- und Skalierungsoptionen der Cloud-Bereitstellung zu definieren. Ich möchte in der Lage sein, zu deklarieren, welche Container ich in welchen Pods haben möchte, wie sie kommunizieren, wie sie skalieren usw., ohne eine Tonne CLI-Befehle auszuführen.

Gibt es docker-compose Funktionalität für Kubernetes?

Ich möchte, dass meine Anwendung in git definiert wird, um versionsgesteuert zu sein - ohne auf manuelle CLI-Interaktionen angewiesen zu sein.

Ist dies in knapper Form möglich? Gibt es einen Hinweis, der klarer ist als die offizielle Dokumentation?

Antwort

22

Wenn Sie noch auf der Suche, vielleicht kann dieses Tool helfen:

# sample compose file with 3 services 
web: 
    image: nginx 
    ports: 
    - "80" 
    - "443" 
database: 
    image: postgres 
    ports: 
    - "5432" 
cache: 
    image: memcached 
    ports: 
    - "11211" 

dann das Tool verwenden, um es zu Kubernetes Objekte zu umwandeln: https://github.com/kelseyhightower/compose2kube

Sie eine Compose-Datei erstellen können

compose2kube -compose-file docker-compose.yml -output-dir output 

Welche diese Dateien erstellen:

output/cache-rc.yaml 
output/database-rc.yaml 
output/web-rc.yaml 

Dann können Sie kubectl verwenden, um sie auf Kubernetes anzuwenden.

+7

Bitte fügen Sie keine Link-Only-Antworten hinzu. Links können verschwinden. –

+3

Hallo Ahmad, und willkommen bei Stack Overflow. Wie @KurtVandenBranden sagt, sind Link-Only-Antworten in sich selbst nicht groß; Es ist wichtig, einen bestimmten Kontext einzubeziehen, z. B. den wichtigen Teil des verknüpften Artikels zu zitieren, um ihn auch auf dieser Website zu einer nützlichen Antwort zu machen. Siehe [Antwort] für weitere Hinweise. –

7

Kubernetes sicherlich hat seine eigene yaml (wie in "Deploying Applications "gezeigt)

Aber als" Docker Clustering Tools Compared: Kubernetes vs Docker Swarm", war es nicht (nur) für Docker geschrieben, und es sein eigenes System hat.

Sie könnten docker-compose verwenden, um Kubernetes jedoch zu starten, wie in "vyshane/kid" gezeigt: das maskiert einige der kubectl commands cli in scripts (die versioniert werden kann).

+0

für eine verwaltete Bereitstellung (d. H. Google Container Service) Ich denke nicht, dass "docker-compose-kubernetes" anwendbar ist. (Es ist auch ein veraltetes Projekt.) Ich möchte wissen, was eine große Organisation für die Verwaltung von Bereitstellungen tut. Gibt es ein kubernetes-Management-Paket, dem ich Konfigurations-yaml zuführen kann? –

+0

@DonScott Guter Punkt. Ich habe die Antwort mit dem nicht veralteten Projekt aktualisiert. – VonC

Verwandte Themen