zaki work log

作業ログやら生活ログやらなんやら

リモートのLinuxサーバに入れたCodeReady Containersのwebコンソールにsshのポートフォワードを使ってアクセスする

手元のデスクトップPCにCodeReady Containersを入れた場合は、そのPCのブラウザを使えば特に問題ないけど、リモートのCodeReady Containersだと、コンテナ環境はネットワークが異なるので外からはアクセスできない。

CRCが動いているLinuxサーバ上でnatとか設定しても大丈夫と思うけど、もっと簡単にsshのポートフォワードで回避してみた。

TL;DR

リモートのLinuxのアドレスが192.168.0.41、CodeReady Containersのアドレスが192.168.130.11であれば、-Lを使ってまずsshログインする

% ssh -L 443:192.168.130.11:443 192.168.0.41

hostsに以下の設定を追加 (※oc get route -Aの内容を全部書いておけば間違いない)

127.0.0.1  console-openshift-console.apps-crc.testing   oauth-openshift.apps-crc.testing 

この状態でsshアクセス元のブラウザで https://console-openshift-console.apps-crc.testing にアクセス

f:id:zaki-hmkc:20200128074148p:plain

あとは初期アカウントであれば、kube:adminを選択、Usernameにkubeadmin、Passwordに~/.crc/cache/crc_<platform>_<version>/kubeadmin-passwordの内容を入力すればOK。
ローカルで443/TCPを他で使用済みでポートフォワード用に別のポート番号を指定する場合は、認証などでリダイレクトする毎に変更したポート番号を手動で指定してやればとりあえず動く。

ローカルの25443/TCPでlistenしてリモートの192.168.130.11:443に飛ばす場合

% ssh -L 25443:192.168.130.11:443 192.168.0.41

構成

todo: 図を書く

  • クライアントWindows (192.168.0.10)
  • サーバLinux (192.168.0.41)

Linuxのアドレス

$ ip -4 a s ens192
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.0.41/24 brd 192.168.0.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever

CodeReady Containersのアドレス

$ crc ip
192.168.130.11