🤔

minikubeでNodePortに繋げないのをなんとかした

2022/06/02に公開

あらすじ

k8sを勉強してみようと思いたち、Kubernetes道場という非常にわかりやすいwebサイトを使わせていただいていた。

https://cstoku.dev/posts/2018/k8sdojo-09/

ハマったところ

Dockerコンテナーベースのminikubeを使用している際、

Serviceの一種であるNodePortの作成の際に下記コマンドを使い、NodePortへの疎通を確認をしようとした。

minikube service <ノードポートのサービス名> --url

本来であればNodePortへのアドレスが出力されるみたいだが、出力されない。

--urlオプションを除外すると、ブラウザが立ち上がるがNodePortには繋がらない。

いろいろ調べてみるもどうにもうまくいかない。

解決方法

minikube service <ノードポートのサービス> --url

コマンドで、sshトンネルを立ち上げる。

その後、別ウィンドウで下記コマンドで出力される

$ ps -ef | grep docker@127.0.0.1
略 -L TUNNEL_PORT:CLUSTER_IP:TARGET_PORT

のTUNNEL_PORTの部分を確認し、

http://127.0.0.1:TUNNEL_PORTにアクセスする。

stackoverflowやgithubなどでは全然違う解決方法が書かれており、その全てが上手くいかなかった。が、公式サイトを見ると答えが書いてあった。

https://minikube.sigs.k8s.io/docs/handbook/accessing/

追記

minikube start --vm-driver=virtualboxのような感じでvirtualbox経由で実行すれば、上記のような問題は起きないらしい。

余計な手間も減るし、virtualboxを使うのが良さそう

ここらへんが勉強になった

https://zenn.dev/castaneai/articles/local-kubernetes-networking

Discussion