7

Ho un'app containerizzata in esecuzione su una VM. Consiste di due contenitori docker. Il primo contiene il server WebSphere Liberty e l'app Web. Il secondo contiene PostgreSQL e il DB dell'app.Come collegare una finestra mobile a un container - Google Cloud Platform/Kubernetes

Sul mio VM locali, mi basta usare finestra mobile run per avviare i due contenitori e poi io uso finestra mobile allegare per fissare al contenitore web server in modo da poter modificare il file server.xml per specificare l'IP dell'host pubblico per il DB e quindi avviare il server Web nel contenitore. L'app funziona bene.

Ora sto provando a distribuire l'app su Google Cloud Platform.

  1. Ho impostato la configurazione di gcloud (progetto, calcolo/zona).
  2. Ho creato un cluster.
  3. Ho creato un file di configurazione pod JSON che specifica entrambi i contenitori.
  4. Ho creato il pod.
  5. Ho aperto il firewall per la porta specificata nel file di configurazione del pod.

A questo punto:

  1. guardo il baccello (gcloud contenitore anteprima kubectl ottenere baccelli), è mostra entrambi i contenitori sono in esecuzione.
  2. ho ssh al cluster (gcloud calcolo ssh xxx-mycluster-node-1) ed emissione sudo finestra mobile ps e si vede il database contenitore di corsa, ma non il contenitore web server. Con sudo docker ps -l Riesco a vedere il contenitore del server Web che non è in esecuzione, ma continua a provare ad avviarsi e ad uscire ogni 10 secondi circa.

Così ora ho bisogno di aggiornare il server.xml e avviare il server Liberty, ma non ho idea di come farlo in questo ambito. Posso collegarmi al contenitore del server web come faccio nella mia VM locale? Qualsiasi aiuto sarebbe molto apprezzato. Grazie.

+1

Sembra che il contenitore del server Web stia bloccando il ciclo. Hai guardato i suoi registri per vedere qual è l'errore? Puoi farlo da remoto usando 'gcloud preview container kubectl log '. –

+0

Quando controllo il log per il contenitore DB in esecuzione, ottengo il log msgs che mi aspetto, ma quando provo a controllare il log per il contenitore del server web, ottengo solo "Errore interno: container" mycontainer "non pronto. " che non è utile. Quel problema è stato precedentemente menzionato qui: https://github.com/GoogleCloudPlatform/kubernetes/issues/4526 –

+0

@RobertBailey è possibile esaminare i registri per l'ultima (o qualsiasi precedente) istanza del contenitore di crash looping? Una volta che un container è in esecuzione, è possibile collegarlo? –

risposta

0

sulla macchina stessa, è possibile vedere incidente looping contenitori tramite:

finestra mobile ps -a

e poi

tronchi docker

si possono anche utilizzare kubectl ottenere cialde -oyaml per ottenere dettagli come il conteggio del riavvio che confermerà che il contenitore si arresta in modo anomalo.

+0

bene notare anche questo per eseguire il debug delle cose 'kubectl logs {pod_id}' – Ben

19

Sì, è possibile allegare a un contenitore in un pod. Uso di Kubernetes 1.0 emettere il seguente comando:

Do:

  • kubectl get po per ottenere il nome POD
  • kubectl describe po POD-NAME per trovare il nome del contenitore

Poi:

kubectl exec -it POD-NAME -c CONTAINER-NAME bash Supponendo di avere bash

È simile a

Problemi correlati