5 Kubernetesダッシュボードへのアクセス
Kubernetesダッシュボード・コンテナは、kubernetes-dashboard
ネームスペースの一部として作成されます。 kubectl-proxy
サービスを使用してダッシュボードを起動することもできます。 ダッシュボードは、標準のwebブラウザを使用してアクセスできる、Kubernetesクラスタへの直感的なグラフィカル・ユーザー・インタフェースを提供します。
Kubernetesダッシュボードの詳細は、アップストリームの「Kubernetesドキュメント」を参照してください。
この章では、Kubernetesダッシュボードの起動方法と接続方法について説明します。
ダッシュボードの起動
ダッシュボードを起動するには、プロキシ・サービスを実行して、そのサービスを実行しているノードのトラフィックが、ダッシュボード・アプリケーションを実行している内部ポッドに到達できるようにします。 これは、kubectl proxy
サービスを実行することで実現します。
kubectl proxy
出力は次のようになります:
Starting to serve on 127.0.0.1:8001
ダッシュボードは、プロキシを実行しているノードで使用できます。 プロキシを終了するには、Ctrl+Cを使用します。 プロキシを終了すると、アプリケーションが終了し、ダッシュボードは使用できなくなります。
これは、systemd
サービスとして実行し、OSの再起動後に常に使用できるように有効化できます:
sudo systemctl enable --now kubectl-proxy.service
このsystemd
サービスを実行するには、/etc/kubernetes/admin.conf
が存在している必要があります。 プロキシ・サービスに使用されるポートを変更したり、他のプロキシ構成パラメータを追加する場合は、/etc/systemd/system/kubectl-proxy.service.d/10-kubectl-proxy.conf
にあるsystemd
ドロップ・イン・ファイルを編集して構成できます。 kubectl proxy
サービスに使用可能な構成オプションの詳細は、次を実行することで取得できます。
kubectl proxy --help
ダッシュボードへの接続
ダッシュボードにアクセスするには、kubectl proxy
サービスを実行しているノードでWebブラウザを開いて、次の場所に移動します。
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
ログインするには、トークンを使用した認証が必要です。 認証トークンの詳細は、アップストリームの「Kubernetesドキュメント」を参照してください。
次を使用して、admin-user
のトークンを設定します:
kubectl --namespace kubernetes-dashboard create token admin-user
このトークン出力の値全体をコピーして、認証のためにログイン・ページのトークン・フィールドに貼り付けます。
ダッシュボードへのリモート接続
ダッシュボードにリモートでアクセスする必要がある場合は、SSHトンネリングを使用して、localhostからkubectl proxy
サービスを実行しているノードへのポート転送を実行できます。 最も簡単なオプションは、SSHトンネリングを使用して、ローカル・システム上のポートを、アクセスするノードのkubectl proxy
サービス用に構成されたポートに転送することです。 このメソッドでは、SSHトンネルの効果によってHTTP接続が暗号化され、認証がSSH構成によって処理されるため、一部のセキュリティが維持されます。 たとえば、ローカル・システムで次を実行します:
ssh -L 8001:127.0.0.1:8001 192.0.2.10
192.0.2.10
は、kubectl proxy
サービスを実行しているホストのIPアドレスに置き換えてください。 SSH接続が確立されたら、ローカル・ホストでブラウザを起動して、次の場所に移動します:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
リモートKubernetesクラスタのダッシュボード・ログイン画面が表示されます。 認証には、ダッシュボードにローカル接続したときと同じトークン情報を使用します。
ダッシュボード・コンテナへの接続
kubectl-proxy
サービスを使用してダッシュボードを起動する必要はありません。これは、Kubernetesモジュールのインストール時にコンテナとしてすでに実行されているためです。 これはダッシュボードにアクセスする別のメソッドです。 コンテナが実行中であることを確認するには、次のように入力します:
kubectl get pods --namespace kubernetes-dashboard
出力は次のようになります:
NAME READY STATUS RESTARTS AGE
kubernetes-dashboard-785945dc77-c8l72 1/1 Running 0 19m
Kubernetesダッシュボード・サービスもデプロイされます。 そのサービスは、次を使用して表示できます:
kubectl get svc --namespace kubernetes-dashboard
出力は次のようになります:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard ClusterIP 10.100.29.246 <none> 443/TCP 20m
このサービスにアクセスするには、ClusterIPに外部IPアドレスを割り当てるか、NodePortを使用してIPアドレスを割り当てるようにサービスにパッチを適用します。 外部IPアドレスを割り当てた場合は、そのネットワークにアクセスできるwebブラウザを使用してサービスに接続できます。