KubernetesのIngressの使い方を改めて勉強中です。 Minikubeを使うと、お試し環境を簡単に作れそうです。
では早速動かしてみましょうか。
$ minikube config set driver docker $ minikube start --container-runtime=containerd --kubernetes-version=v1.20.4 --cni=calico
Ingressアドオンを有効化してみます。
$ minikube addons enable ingress
すると、なんということでしょう! Ingressアドオンの有効化に失敗したではありませんか。
... ❌ Exiting due to MK_USAGE: Due to networking limitations of driver docker on darwin, ingress addon is not supported. Alternatively to use this addon you can use a vm-based driver: 'minikube start --vm=true' To track the update on this work in progress feature please check: https://github.com/kubernetes/minikube/issues/7332
現時点ではDocker for macでDockerコンテナーベースのminikubeでIngressアドオンは動かないようです。エラーメッセージが分かりやすくて良いですね。 回避策はVMベースのドライバーを使うことだそうです。
現時点(2021/03/01)では、以下が対象のVMベースのドライバーです。
- Hyperkit - VM
- VirtualBox - VM
- Parallels - VM
- VMware - VM
HyperkitはmacOS専用のドライバーです。Hyperkitドライバーのページに書かれているように、Homebrewなどでインストールすることもできるのですが、実はDocker for macをインストールしていてかつDockerがMacで実行中であれば、そのドライバーを使えます(まあ、それもそのページに書かれていますが)。
その他のドライバーはそれぞれインストールされていればドライバーとして使えます。特にVirtualBoxはLinuxでもWindowsでもmacOSでも共通して使えるので便利なのかもしれません。ちなみにHyperkitドライバーを使うときは次のように使います。
$ minikube delete $ minikube config set driver hyperkit $ minikube start --container-runtime=containerd --cni=calico --kubernetes-version=v1.20.4 $ minikube addons enable ingress
Hyperkitドライバーは割と素早く動いてくれるので好きなドライバーです。