Skip to content

Instantly share code, notes, and snippets.

@okapies
Created January 9, 2018 02:52
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save okapies/b5880ac5cb507871ad43e6dd13d8b835 to your computer and use it in GitHub Desktop.
Kubernetes 入門メモ

ローカル環境で Kubernetes を構築できる Minikube (https://github.com/kubernetes/minikube) を使っていろいろ試してみる。

導入手順

公式の手順にしたがって手元のマシンに minikubekubectl をインストールする。基本的に 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 ボタンを押すと、ブラウザ上でエミュレータが起動してそのままシェルで各コンテナを操作できる。

Pod の削除と再作成

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment