Wie Andocker anhängen an einen Container - Google Cloud Platform / Kubernetes

7

Ich habe eine containerisierte App, die auf einer VM ausgeführt wird. Es besteht aus zwei Docker-Containern. Der erste enthält den WebSphere Liberty-Server und die Web-App. Die zweite enthält PostgreSQL und die DB der App.

Auf meiner lokalen VM verwende ich einfach docker run , um die beiden Container zu starten, und dann verwende ich docker attach an den Webserver-Container anhängen, damit ich die Datei server.xml bearbeiten kann, um die öffentliche Host-IP für die Datenbank anzugeben, und starte dann den Webserver im Container. Die App läuft gut.

Jetzt versuche ich, die App auf der Google Cloud Platform bereitzustellen.

  1. Ich habe meine gcloud-Konfiguration (project, compute / zone) eingerichtet.
  2. Ich habe einen Cluster erstellt.
  3. Ich habe eine JSON-Pod-Konfigurationsdatei erstellt, die beide Container angibt.
  4. Ich habe den Pod erstellt.
  5. Ich habe die Firewall für den in der Pod-Konfigurationsdatei angegebenen Port geöffnet.

An dieser Stelle:

  1. Ich schaue mir den Pod an ( gcloud preview container kubectl bekomme Pods ), es zeigt, dass beide Container ausgeführt werden.
  2. I SSH mit dem Cluster ( gcloud compute ssh xxx-meincluster-node-1 ) und sudo docker ps und zeigt an, dass der Datenbankcontainer ausgeführt wird, aber nicht der Webservercontainer. Mit sudo docker ps -l kann ich den Web-Server-Container sehen, der nicht ausgeführt wird, aber er versucht alle 10 Sekunden zu starten und zu beenden.

Nun muss ich die server.xml aktualisieren und den Liberty-Server starten, aber ich habe keine Ahnung, wie ich das in diesem Bereich machen soll. Kann ich den Container wie in meiner lokalen VM an den Webserver anhängen? Jede Hilfe würde sehr geschätzt werden. Danke.

    
Alex Feinberg 19.03.2015, 17:19
quelle

2 Antworten

19

Ja, Sie können eine Verbindung zu einem Container in einem Pod herstellen. Verwenden Sie Kubernetes 1.0 den folgenden Befehl:

Mach:

  • kubectl get po , um den POD-Namen
  • zu erhalten
  • kubectl describe po POD-NAME , um den Containernamen zu finden

Dann:

kubectl exec -it POD-NAME -c CONTAINER-NAME bash Angenommen, Sie haben bash

Ähnelt docker exec -it CONTAINER-NAME WHAT_EVER_LOCAL_COMMAND

    
michaelbn 02.09.2015 09:53
quelle
0

Auf der Maschine selbst können Sie Crash-Looping-Container sehen über:

docker ps -a

und dann

docker logs

Sie können auch kubectl get pods-yoaml verwenden, um Details wie die Anzahl der Neustarts zu erhalten, mit denen überprüft wird, ob der Container einen Crash-Looping aufweist.

    
brendan 02.04.2015 17:56
quelle