備忘録。
Kubernetes を Minikube で試してみる。(ローカルでマルチノードクラスタを構築する場合は kind を使う)
$ minikube version minikube version: v1.15.0
今回は HyperKit 上に Kubernetes を起動する。デフォルトは Docker が使われるっぽい。他には VirtualBox など。
$ minikube start --driver=hyperkit $ minikube start # クラスタ作成済の場合はこっち $ minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured $ kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready master 42s v1.19.4 $ kubectl version --short Client Version: v1.19.3 Server Version: v1.19.4
Minikube クラスタ停止/削除。
$ minikube stop
$ minikube delete
リソース作成/更新。
$ kubectl apply -f <FILENAME>
Pod の詳細情報を表示する。
$ kubectl describe pod/<POD_NAME>
コンテナを起動して shell を使う。--rm
オプションを付けるとコンテナ終了時に Deployment が削除される。
$ kubectl run alpine -it --rm --image alpine -- ash
ConfigMap, Secret は設定や Credential をコンテナイメージから分離する。値は Volume や環境変数を通して Pod に渡される。ConfigMap で UTF-8 に含まれないバイトシーケンスがある場合は binaryData
フィールドを使う。値は Base64 でエンコードされる。
Secret で stringData
フィールドを使う場合は Base64 エンコードは不要。適用の際にエンコードして data に渡される。
コンテナのヘルスチェックには LivenessProbe, ReadinessProbe を使う。LivenessProbe はコンテナの存否をチェックする。LivenessProbe が通らない場合はコンテナが再作成される。ReadinessProbe はコンテナが Ready かどうかをチェックする。ReadinessProbe が通らない場合は Service のルーティングから除外される。
今回はここまで。