今回のケースでいうと、Kubernetes内のPodにローカルからJMXにつないでjvisualvmを使ってチューニングすることが多かったのだが、下記の記事でやったように127.0.0.1のホスト指定が使えないケースが出てきてしまった。
-Djava.rmi.server.hostname=127.0.0.1
の設定を抜いてしまうと、そのままではつなぐことができなくなってしまう。というのは、Kubernetesのport-fowardコマンドは、127.0.0.1にBindする仕様のため(2017/12/14時点)。
Pull Requestも上がっているが、マージできない状況になってしまっている。
なんとかならないかと考えていたら、ポートフォワードすることによって解決できた。
echo "rdr pass inet proto tcp from any to any port 7000 -> 127.0.0.1 port 7000" | sudo pfctl -ef -
上記の設定は、7000番ポートにきたパケットを全て127.0.0.1:7000に送る。
ᐅ sudo pfctl -s nat (yamada/default) No ALTQ support in kernel ALTQ related functions disabled rdr pass inet proto tcp from any to any port = 7900 -> 127.0.0.1 port 7900
これによって、kubectl port-forwardでした際に、これまで通りjvisualvmにつなぐことができた。
元に戻すときは、
sudo pfctl -F all -f /etc/pf.conf
参考: