#はじめに
30代未経験からエンジニアを目指して勉強中のYNと申します。
インフラを勉強しだすと、k8sありきみたいな空気感に焦りますよね。キャッチアップのために学んだことなどを記録していきたいと思います。
#やったこと
Minikubeをインストールしてk8s環境をローカルPC(Mac)に構築。
全体像の理解を(正しいか自信ないが)可視化するとこんな感じ。
#Minikubeとは
ローカルPCなどで簡単なデモにつかうためのk8s環境。単一のNodeを擁するclusterを実行できる。
Docker-Desktopでもk8sを実行できるが、今回はMinikube×VirtualBoxを選択。
#kubectlの導入
なければインストール。
brew install kubectl
#Minikubeの導入
まずはインストール。
brew install minikube
ここで、driverはデフォルトでDocker-Desktopに設定されるため、今回はVirtualBoxを指定。
minikube config set driver virtualbox #driverをVirtualBoxに設定
minikube start #起動
このとき、ifconfig
で設定をみると、Macのプライベートipが192.168.100.144
でVirtualBoxのプライベートでipが192.168.99.1
であることがわかる。
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=400<CHANNEL_IO>
ether a4:83:e7:9f:6e:13
inet6 fe80::1453:7e43:4759:8eac%en0 prefixlen 64 secured scopeid 0x6
inet 192.168.100.144 netmask 0xffffff00 broadcast 192.168.100.255
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255
ちなみに、driverを再指定する場合は、いったんdeleteする必要がある。
minikube status #状態確認
minikube stop #停止
minikube delete #破棄
#kubectlの設定確認
kubectl config view
で設定が確認できる。
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://kubernetes.docker.internal:6443
name: docker-desktop
- cluster:
certificate-authority: /Users/xxx/.minikube/ca.crt
server: https://192.168.99.100:8443
name: minikube
contexts:
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: docker-desktop
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
- name: minikube
user:
client-certificate: /Users/xxx/.minikube/profiles/minikube/client.crt
client-key: /Users/xxx/.minikube/profiles/minikube/client.key
いま、下図に示すとおり、clusterはDocker-DesktopとMinikubeの2つがあるが、current-contextはMinikubeとなっていることがわかる。
また、Minikubeは192.168.99.100
の8443ポートで動いており、kubectlとのSSL通信をするにあたってユーザ認証は/Users/xxx/.minikube/ca.crt
で行い、ユーザkeyは/Users/xxx/.minikube/profiles/minikube/client.key
にあることが分かる。
一応、k8s実行環境(context)がMinikubeになってることが実行中のDocker-Desktopアプリでも確認できる↓
#参考にさせていただいた記事
https://ubiteku.oinker.me/2017/02/21/docker-and-kubernetes-intro/
https://kubernetes.io/ja/docs/concepts/overview/components/
https://github.com/kubernetes/community/tree/master/icons
https://minikube.sigs.k8s.io/docs/drivers/virtualbox/
https://cstoku.dev/posts/2018/k8sdojo-01/