kubernetesの公式チュートリアルにある「Hello Minikube」を、ローカルのminikubeで動かしてみました。
ちなみにブラウザ上でも無償のkubernetes環境が提供されているので、ローカルにminikubeをインストールしていなくても試すことができます。
環境
- macOS Catalina 10.15.6
- kubernetes 1.19.0
- minikube 1.13.0
Minikube起動
ローカルのminikube起動します。
|
|
✨ プロフィールを元に、 virtualbox ドライバを使用します
👍 コントロールプレーンのノード minikube を minikube 上で起動しています
🔄 既存の virtualbox VM を “minikube” のために再起動しています…
🐳 Docker 19.03.12 で Kubernetes v1.19.0 を準備しています…
🔎 Kubernetes コンポーネントを検証しています…
🌟 有効なアドオン: default-storageclass, storage-provisioner
🏄 Done! kubectl is now configured to use “minikube” by default
ブラウザーでKubernetesダッシュボードを開きます
|
|
🤔 ダッシュボードの状態を確認しています…
🚀 プロキシを起動しています…
🤔 プロキシの状態を確認しています…
🎉 Opening http://127.0.0.1:52375/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser…
Deployment作成
Podを管理するDeploymentを作成します。
Podは提供されたDockerイメージを元にコンテナを実行します。
|
|
Deploymentを確認します。
|
|
hello-node 0/1 1 0 64s
Podを確認します。
|
|
hello-node-7567d9fdc9-sg6jl 1/1 Running 0 2m48s
クラスタイベントを確認します。
|
|
3m47s Normal Scheduled pod/hello-node-7567d9fdc9-sg6jl Successfully assigned default/hello-node-7567d9fdc9-sg6jl to minikube
3m47s Normal Pulling pod/hello-node-7567d9fdc9-sg6jl Pulling image “k8s.gcr.io/echoserver:1.4”
2m31s Normal Pulled pod/hello-node-7567d9fdc9-sg6jl Successfully pulled image “k8s.gcr.io/echoserver:1.4” in 1m16.215709596s
~
kubectl
で設定を確認します。
|
|
apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/inomaso/.minikube/ca.crt
server: https://192.168.99.100:8443
name: minikube
contexts: - context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users: - name: minikube
user:
client-certificate: /Users/inomaso/.minikube/profiles/minikube/client.crt
client-key: /Users/inomaso/.minikube/profiles/minikube/client.key
Service作成
kubectl expose
コマンドを使用してPodをインターネットに公開します。--type=LoadBalancer
フラグはServiceをクラスタ外部に公開したいことを示しています。
|
|
作成したServiceを確認します。
|
|
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.96.10.228
kubernetes ClusterIP 10.96.0.1
ロードバランサーをサポートするクラウドプロバイダーでは、Serviceにアクセスするための外部IPアドレスが提供されます。 Minikube では、LoadBalancerタイプはminikube service
コマンドを使用した接続可能なServiceを作成します。
|
|
| NAMESPACE | NAME | TARGET PORT | URL |
|———–|————|————-|—————————–|
| default | hello-node | 8080 | http://192.168.99.100:32577 |
|———–|————|————-|—————————–|
🎉 Opening service default/hello-node in default browser…
アドオンの有効化
Minikubeはビルトインのアドオンがあり、有効化、無効化、あるいはローカルのKubernetes環境に公開することができます。
サポートされているアドオンをリストアップします。
|
|
| ADDON NAME | PROFILE | STATUS |
|—————————–|———-|————–|
| ambassador | minikube | disabled |
| dashboard | minikube | enabled ✅ |
| default-storageclass | minikube | enabled ✅ |
| efk | minikube | disabled |
| freshpod | minikube | disabled |
| gcp-auth | minikube | disabled |
| gvisor | minikube | disabled |
| helm-tiller | minikube | disabled |
| ingress | minikube | disabled |
| ingress-dns | minikube | disabled |
| istio | minikube | disabled |
| istio-provisioner | minikube | disabled |
| kubevirt | minikube | disabled |
| logviewer | minikube | disabled |
| metallb | minikube | disabled |
| metrics-server | minikube | disabled |
| nvidia-driver-installer | minikube | disabled |
| nvidia-gpu-device-plugin | minikube | disabled |
| olm | minikube | disabled |
| pod-security-policy | minikube | disabled |
| registry | minikube | disabled |
| registry-aliases | minikube | disabled |
| registry-creds | minikube | disabled |
| storage-provisioner | minikube | enabled ✅ |
| storage-provisioner-gluster | minikube | disabled |
|—————————–|———-|————–|
例としてmetrics-serverのアドオンを有効化します。
|
|
作成されたPodとサービスを確認します。
|
|
NAME READY STATUS RESTARTS AGE
pod/coredns-f9fd979d6-qmj79 1/1 Running 4 5h56m
pod/etcd-minikube 1/1 Running 4 5h56m
pod/kube-apiserver-minikube 1/1 Running 4 5h56m
pod/kube-controller-manager-minikube 1/1 Running 4 5h56m
pod/kube-proxy-bdrd6 1/1 Running 4 5h56m
pod/kube-scheduler-minikube 1/1 Running 4 5h56m
pod/metrics-server-d9b576748-c5r9x 1/1 Running 0 28s
pod/storage-provisioner 1/1 Running 7 5h56m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kube-dns ClusterIP 10.96.0.10
service/metrics-server ClusterIP 10.108.110.125
metrics-serverを無効化します。
|
|
クリーンアップ
クラスタに作成したリソースをクリーンアップします。
|
|
deployment.apps “hello-node” deleted
(オプション)Minikubeの仮想マシン(VM)を停止します。
|
|
🛑 1台のノードが停止しました。
(オプション)MinikubeのVMを削除します。
|
|
💀 クラスタ “minikube” の全てのトレースを削除しました。