Minikube でコンテナを一つ起動させ、3つにスケールインするのを勉強したのでメモとして残したいと思います
簡単に体験できるので試しにMinikubeを触ってみたい人におすすめです!
環境準備
# macOS Monterey
バージョン12.5.1
# インストール
$ brew install minikube
# バージョン確認
$ minikube version
## minikube version: v1.15.1
## commit: 23f40a012abb52eff365ff99a709501a61ac5876
Minikube の起動を確認
- kubernetes のクラスターを起動
# 起動
$ minikube start
# # 😄 Darwin 10.15.7 上の minikube v1.15.1
# # ✨ dockerドライバーが自動的に選択されました
# # 👍 コントロールプレーンのノード minikube を minikube 上で起動しています
# # 🚜 Pulling base image ...
# # 💾 Kubernetes v1.19.4 のダウンロードの準備をしています
# # > preloaded-images-k8s-v6-v1.19.4-docker-overlay2-amd64.tar.lz4: 486.35 MiB
# # 🔥 docker container (CPUs=2, Memory=1987MB) を作成しています...
# # 🐳 Docker 19.03.13 で Kubernetes v1.19.4 を準備しています...
# # 🔎 Kubernetes コンポーネントを検証しています...
# # 🌟 有効なアドオン: storage-provisioner, default-storageclass
# # 🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
# ステータス確認
$ minikube status
# # minikube
# # type: Control Plane
# # host: Running
# # kubelet: Running
# # apiserver: Running
# # kubeconfig: Configured
node があることを確認
$ kubectl get node
NAME STATUS ROLES AGE VERSION
minikube Ready master 6m51s v1.19.4 <- minikube があればOK
コンテナを一つ起動させ、3 つスケールインする
コンテナの作成
$ kubectl run nginx --image=nginx --generator=run-pod/v1
deployment の作成
kubectl create deployment nginx --image=nginx
コンテナが起動しているか確認
$ watch -t "kubectl get pod,service,deployment"
NAME READY STATUS RESTARTS AGE
pod/nginx 1/1 Running 0 2m1s
pod/nginx-6799fc88d8-g98ck 1/1 Running 0 77s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3m32s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 1/1 1 1 77s
コンテナを 3 つにスケールインする
$ kubectl scale --replicas=3 deploy/nginx
3 つにスケールインされていることは以下コマンドで確認できます
$ watch -t "kubectl get pod,service,deployment"
NAME READY STATUS RESTARTS AGE
pod/nginx 1/1 Running 0 3m7s
pod/nginx-6799fc88d8-9svbw 1/1 Running 0 20s
pod/nginx-6799fc88d8-g98ck 1/1 Running 0 2m23s
pod/nginx-6799fc88d8-l5pb6 1/1 Running 0 20s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4m38s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx 3/3 3 3 2m23s
削除
スケールインの確認後は削除をしてみましょう
$ kubectl delete deploy nginx
# クラスターの削除
$ minikube delete
# 🔥 docker の「minikube」を削除しています...
# 🔥 コンテナ "minikube" を削除しています...
# 🔥 /Users/harukimiyagi/.minikube/machines/minikube を削除しています...
# 💀 クラスタ "minikube" の全てのトレースを削除しました。