https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/explore
Pod
アプリケーションの最小単位。それぞれローカルのipアドレスを持つ。
既存のPodを取得
kubectl get pods
既存のPodの詳細情報を取得
kubectl describe pods
Podのログを取得
kubectl logs $POD_NAME
MacBook-Pro:xxxx xxxx$ kubectl logs kubernetes-bootcamp-5c69669756-zg8z6
Kubernetes Bootcamp App Started At: 2019-04-02T04:55:54.763Z | Running On: kubernetes-bootcamp-5c69669756-zg8z6
Running On: kubernetes-bootcamp-5c69669756-zg8z6 | Total Requests: 1 | App Uptime: 1271.722 seconds | Log Time: 2019-04-02T05:17:06.485Z
Running On: kubernetes-bootcamp-5c69669756-zg8z6 | Total Requests: 2 | App Uptime: 1597.794 seconds | Log Time: 2019-04-02T05:22:32.557Z
Kubernetes Bootcamp App Started At: 2019-04-02T04:55:54.763Z | Running On: kubernetes-bootcamp-5c69669756-zg8z6
Running On: kubernetes-bootcamp-5c69669756-zg8z6 | Total Requests: 1 | App Uptime: 1271.722 seconds | Log Time: 2019-04-02T05:17:06.485Z
Running On: kubernetes-bootcamp-5c69669756-zg8z6 | Total Requests: 2 | App Uptime: 1597.794 seconds | Log Time: 2019-04-02T05:22:32.557Z
一つのウェブアプリが複数のPodに分かれるケースもあるのでログの取り扱いに留意する。
Pod上でコマンド実行
環境変数取得kubectl exec $POD_NAME env
bash起動
kubectl exec -ti $POD_NAME bash
MacBook-Pro:xxxx xxxx$ kubectl exec -ti kubernetes-bootcamp-5c69669756-zg8z6 bash root@kubernetes-bootcamp-5c69669756-zg8z6:/# cat server.js var http = require('http'); var requests=0; var podname= process.env.HOSTNAME; var startTime; var host; var handleRequest = function(request, response) { response.setHeader('Content-Type', 'text/plain'); response.writeHead(200); response.write("Hello Kubernetes bootcamp! | Running on: "); response.write(host); response.end(" | v=1\n"); console.log("Running On:" ,host, "| Total Requests:", ++requests,"| App Uptime:", (new Date() - startTime)/1000 , "seconds", "| Log Time:",new Date()); } var www = http.createServer(handleRequest); www.listen(8080,function () { startTime = new Date(); host = process.env.HOSTNAME; console.log ("Kubernetes Bootcamp App Started At:",startTime, "| Running On: " ,host, "\n" ); });
が実際に稼働しているアプリケーションのようだ。
curl localhost:8080 で稼働中のアプリケーションが確認できる。
試しに書き換えようと思ったがなんとviコマンドがない。
中に入って色々できることを確認できたが本来Pod自体にアクセスすることはあまりないはず。
Node
Podは必ずNode上で実行される。
仮想マシンあるいは物理マシン。
あるNodeに問題が発生した場合Podを丸ごと別のNodeへ移し替える。