Mac で MicroK8s ダッシュボード接続あれこれ
2020-11-20 追記
確かに、multipass ls で、IP アドレスが N/Aとなるけが、
multipass sh microk8s-vm で ifconfig して取得できるIPアドレスに接続できるため、
virtual box で問題ない。virtual box でネットワークブリッジが構成できる方がメリットが大きい
1.IPアドレスがN/A!?
Mac と Ubuntu 上のMicroK8sでマルチノードクラスタを構成するのに、お互い通信ができないので、multipassのドライバをhyperkitからVirtual Boxに変更した。
、、、のだが、ダッシュボードを起動して接続しようとすると、、
$ microk8s enable dashboard dns
$ microk8s dashboard-proxy
Checking if Dashboard is running.
Dashboard will be available at https://N/A:10443
Use the following token to login:
:
Forwarding from 0.0.0.0:10443 -> 8443
ダッシュボードにアクセスするURLのホスト(IPアドレス)の部分が、N/Aになってしまっている。。。
なんと。
No IP address when using the VirtualBox driver #1262
に問題が上がっているが、まだ解決してなさそう。。
Virtaual Boxのマニュアルを見ながら、
https://www.virtualbox.org/manual/
https://www.virtualbox.org/manual/ch09.html#nat-address-config
もがくが、、諦めた。virtualboxに変更した、multipass のドライバーをhyperkit に戻す。
$ sudo multipass set local.driver=virtualbox
2.ダッシュボードプロキシを実行
https://kubernetes.io/ja/docs/tasks/access-application-cluster/web-ui-dashboard/
multipass delete から purge、microk8s から再インストールなどを行い、再構築して、再度ダッシュボードプロキシの実行
$ microk8s dashboard-proxy
Checking if Dashboard is running.
Dashboard will be available at https://192.168.64.2:10443
Use the following token to login:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjJrTnpzMFlJc18xS2dLd3lfNjVra3N4TmNyUUNlb2RkekRPZUxYLTk1X28ifQ.eyJpc3MiOiJrdWJlcm5l
:
Jf5rcI4fKYH4sMNAUgI8kErLxOuK9KLrkRRLlwMcSOCnD6K6F_GePeZ2f3FPWCEr–6UO-txJOD45RAkF3JFRUhsqc6QP2Nsg09mrcMwZoriFw
Forwarding from 0.0.0.0:10443 -> 8443
今度は、ちゃんとIPアドレスが付与された。
ちなみに、払い出されるIPの設定は、以下で変えられる。
/Library/Preferences/SystemConfiguration/com.apple.vmnet.plist
ダッシュボードサービスは、以下で確認
$ microk8s kubectl get service -n kube-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE metrics-server ClusterIP 10.152.183.122 443/TCP 42h kubernetes-dashboard ClusterIP 10.152.183.125 443/TCP 42h dashboard-metrics-scraper ClusterIP 10.152.183.81 8000/TCP 42h
3.ダッシュボードに接続
上記で表示されるURL、https://192.168.64.2:10443 にブラウザからアクセス
3.1 接続はプライベートではありません
どうやら、Macではオレオレ証明書NGのようだ。
3.2 キーチェーンアクセスで回避
普段、Microsoft Edge を利用しているのだが、Edgeではどうあがいても、このエラーから抜け出すことができなかった、、
Safariでは、キーチェーンアクセス から当該の証明書を探し出して、”信頼” を展開し、”常に信頼”を行うことで、ダッシュボードを開くことができた。
のは、いいのだが、仮想マシンを作り直したりすると、また「接続はプラ、、、」エラーが発生する。。。
3.2 Firefoxなら突破できる
あまりブラウザいろいろインストールしたくないのだが、諦めて、Firefoxをインストールし、接続。
なんか諦めてばっかりだ。
FIrefoxでも同様なエラーとなるのだが、
「詳細情報」をクリック、「危険性を承知で続行」をクリックで、継続できる。ま、いいや。
4.他のホストから接続
上記までの手順で、ダッシュボードにはアクセスできるのだが、現状、MicroK8sが動いているのとは別のMacで操作しているので、そちらから状態を見たい。
この状態だと、ダッシュボードはMicroK8sが動いているホストからしかアクセスできないため、他のホストからアクセスできるように、SSHポートフォワーディングを行う。
ssh -L {localhostからアクセスするポート}:{踏み台経由でアクセスしたいサーバーアドレス} {踏み台となるサーバー}
$ ssh -L 10443:192.168.64.2:10443 hirotoyagi@delhi.local
イメージとしては、ざっくり以下のようになるか。
4.1 動作確認
動いた!OK!
4.2 ちなみにUbuntu
Macとは別のPCにUbuntuを入れてあり、そこにMicroK8sを入れいている。
Ubuntuでは直下にMicroK8sが存在する(Mac は、仮想マシン中にUbuntuがありその中にMicroK8s)ため、外部から直接ダッシュボードに接続できる。
ファイアーウォールでポートは開ける必要はある。
下図は、MacからSSHでダッシュボードを起動し、Ubuntuのアクセス先が127.0.0.1:10443 になったところに、外部からブラウザで、10443を叩いて、ダッシュボードが表示されたところ。
参考
- https://gihyo.jp/admin/serial/01/ubuntu-recipe/0560?page=2
- https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/README.md
- https://github.com/kubernetes/dashboard/blob/master/docs/user/accessing-dashboard/README.md
- https://github.com/kubernetes/dashboard/tree/master/docs
- https://microk8s.io/docs/install-alternatives#heading–macos
- https://qiita.com/colomney/items/887f9ea7b68a3b427060
- https://qiita.com/h-sakano/items/79bb15f7a0661e141c75
- https://qiita.com/suin/items/be87a7a581f30b38c5f7
- https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate/43666288#43666288
- https://support.apple.com/ja-jp/guide/keychain-access/kyca1083/mac
- ttps://github.com/canonical/multipass/issues/1262
- https://github.com/ubuntu/microk8s/issues/1046