やりたいこと
- M2 MacBook Proを買ったので、K8sの検証用環境を用意したい
なぜPodman?
- Kubernetes v1.24からDockerが非推奨になったので、Docker Desktopを使いたくなかった。
- 仕事で使うK8sがOpenShiftなので、ホストOSやコンテナランタイムから合わせたかった。
検証環境
- MacBook Pro(13インチ、M2、2022)
- Memory 16GB
Homebrew のインストール
Homebrewのサイトからインストールコマンドを拾ってきて、実行する。(買いたてなので、ここから...)
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
パスを通す。
% echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/xxx/.zprofile
% eval "$(/opt/homebrew/bin/brew shellenv)"
確認する。
% brew --version
Podman と Minikube をインストール
インストールする。
% brew install podman
% brew install minikube
podmanを初期化し、Fedora CoreOSのダウンロードを行う。
気持ち程度、リソースを積んでおく。
% podman machine init --cpus 4 --memory 8192 --rootful
% podman machine start
MinikubeのランタイムにPodmanを使うときは、ドライバオプションを渡す必要がある。
% minikube start --driver=podman
確認する。
% kubectl describe all
Name: kubernetes
Namespace: default
Labels: component=apiserver
provider=kubernetes
Annotations: <none>
Selector: <none>
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.96.0.1
IPs: 10.96.0.1
Port: https 443/TCP
TargetPort: 8443/TCP
Endpoints: 192.168.49.2:8443
Session Affinity: None
Events: <none>
プロセスを見ていると、% podman machine start
した時点で、QEMU上でFedora CoreOSを動かしている模様。
テスト(適当)
NginxのPodを起動する。
% kubectl run nginx --image=nginx --restart=Never
起動を確認する。動いてそう。
% kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 26s
クラスタを消して作り直すとき
% minikube stop
% minikube delete
% minikube start --driver=podman
Closing... and TODO
- Apple Siliconになってから、この辺の構成で試行錯誤している記事が多かったけど、自分はしばらくこれで試してみたいと思う。(色んなもん踏むかもしれんけど)
- TODO
- dashboard
- istio+kiali+jaeger
- and so on ...