ローカル環境で Kubernetes を構築できる Minikube (https://github.com/kubernetes/minikube) を使っていろいろ試してみる。
公式の手順にしたがって手元のマシンに minikube
と kubectl
をインストールする。基本的に VirtualBox で動かすので併せてインストールする(Linux の場合は --vm-driver=none
を使えば Docker 上で動かせるが起動時にセキュリティ関連の設定をするように警告が出る)。
下記の記事の手順にしたがって操作してみる。minikube start
で k8s を起動したあとは kubectl
を使う。ダッシュボードを出すには minikube dashboard
。
https://qiita.com/nirasan/items/6207cf7ef94e04640fbf
Docker のように exec
コマンドを使うとコンテナ内で任意のコマンドが実行できる。同様に exec -it -- /bin/sh
するとコンテナに入ってシェルが使える。Pod を指定する必要があるが、Pod には複数のコンテナが含まれるので -c
オプションで実行先を選ぶ。省略した場合は first container が選ばれる。
$ kubectl exec <pod_name> -- date
Wed Dec 20 10:53:06 UTC 2017
$ kubectl exec -it <pod_name> [-c <container_name>] -- /bin/sh
root@example:/#
シェルを使う方法はもう一つあり、ダッシュボードを開いて Pod の詳細画面で右上にある EXEC ボタンを押すと、ブラウザ上でエミュレータが起動してそのままシェルで各コンテナを操作できる。
kubectl create
で作った pod は kubectl delete pod <pod_name>
あるいは kubectl delete -f <yaml>
のいずれかで削除できるが、即座に消えるわけではないので、削除してからすぐに再作成すると AlreadyExists
エラーになる。
$ kubectl create -f example.yaml
$ kubectl delete pod example
$ kubectl create -f example.yaml
Error from server (AlreadyExists): error when creating "example.yaml": object is being deleted: pods "example" already exists