Mac で MicroK8s ダッシュボード接続あれこれ

 

1

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のようだ。

Connection not private

3.2 キーチェーンアクセスで回避

普段、Microsoft Edge を利用しているのだが、Edgeではどうあがいても、このエラーから抜け出すことができなかった、、

Safariでは、キーチェーンアクセス から当該の証明書を探し出して、”信頼” を展開し、”常に信頼”を行うことで、ダッシュボードを開くことができた。

Key chain

のは、いいのだが、仮想マシンを作り直したりすると、また「接続はプラ、、、」エラーが発生する。。。

Temporary success

3.2 Firefoxなら突破できる

あまりブラウザいろいろインストールしたくないのだが、諦めて、Firefoxをインストールし、接続。

なんか諦めてばっかりだ。

FIrefoxでも同様なエラーとなるのだが、

Firefox error

「詳細情報」をクリック、「危険性を承知で続行」をクリックで、継続できる。ま、いいや。

Firefox could continue

4.他のホストから接続

上記までの手順で、ダッシュボードにはアクセスできるのだが、現状、MicroK8sが動いているのとは別のMacで操作しているので、そちらから状態を見たい。

この状態だと、ダッシュボードはMicroK8sが動いているホストからしかアクセスできないため、他のホストからアクセスできるように、SSHポートフォワーディングを行う。

ssh -L {localhostからアクセスするポート}:{踏み台経由でアクセスしたいサーバーアドレス} {踏み台となるサーバー}

$ ssh -L 10443:192.168.64.2:10443 hirotoyagi@delhi.local

イメージとしては、ざっくり以下のようになるか。

Ssh portforward

4.1 動作確認

動いた!OK!

Ssh portforward example

4.2 ちなみにUbuntu

Macとは別のPCにUbuntuを入れてあり、そこにMicroK8sを入れいている。

Ubuntuでは直下にMicroK8sが存在する(Mac は、仮想マシン中にUbuntuがありその中にMicroK8s)ため、外部から直接ダッシュボードに接続できる。

ファイアーウォールでポートは開ける必要はある。

下図は、MacからSSHでダッシュボードを起動し、Ubuntuのアクセス先が127.0.0.1:10443 になったところに、外部からブラウザで、10443を叩いて、ダッシュボードが表示されたところ。

Ubuntu no pf

 

参考

  • 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

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です