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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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へ移し替える。