Kubernetes(k8s)チュートリアルを試してみる-仕組みについて知る

Kubernetesは特殊な用語が多すぎる。




https://kubernetes.io/ja/docs/tutorials/kubernetes-basics/explore

  1. クラスタの作成
  2. アプリのデプロイ
  3. 仕組みについて知る
  4. アプリを公開する
  5. アプリのスケール
  6. アプリの更新


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

一つのウェブアプリが複数の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へ移し替える。

2019年4月5日金曜日