minikube環境を構築して、遊び始めている。
そこで困ったことが発生・・・
service.yaml
でNodePortService
を設定しているのにも関わらずlocalhost
で通信できない・・・
curlを実行した際のイメージ
$ curl http://localhost:xxxx/test
***接続が拒否されました***
解決策
minikubeを使用していて、
driver
にdocker
を使用している場合について検証しています
driver
にdocker
を使用している場合は、localhostではDockerネットワークにアクセスできないためDockerネットワーク上に構築したノードにアクセスできない。
ノードの
IP
アドレスを調べて(minikube service list
)、そのIPアドレスに対してアクセスすることで解決できます。
この調べたIPアドレス宛の通信はトンネル化されていてDockerネットワーク上に構築されたノードにアクセスできるみたい。
Dockerネットワーク上のノードへアクセス
$ minikube service list
|----------------------|---------------------------|--------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|----------------------|---------------------------|--------------|---------------------------|
| default | echo | http/80 | http://xxx.xxx.xx.x:YYYYY |
|----------------------|---------------------------|--------------|---------------------------|
$ curl http://xxx.xxx.xx.x:YYYYY
Hellow, world!
参考サイト
下記サイトを参考にしました。