このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
Oracleでは、現在サポートされているリリースにアップグレードすることをお勧めします。
第5章 Kubernetesダッシュボードのアクセス
Kubernetesダッシュボード・コンテナは、kubernetes-dashboard
ネームスペースの一部として作成されます。 kubectl-proxy
サービスを使用してダッシュボードを起動することもできます。 ダッシュボードは、標準のwebブラウザを使用してアクセスできる、Kubernetesクラスタへの直感的なグラフィカル・ユーザー・インタフェースを提供します。
Kubernetesダッシュボードの詳細は、次の場所にあるアップストリームのKubernetesドキュメントを参照してください。
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
この章では、Kubernetesダッシュボードの起動方法と接続方法について説明します。
5.1 ダッシュボードの起動
ダッシュボードを起動するには、プロキシ・サービスを実行して、そのサービスを実行しているノードのトラフィックが、ダッシュボード・アプリケーションを実行している内部ポッドに到達できるようにします。 これは、kubectl proxy
サービスを実行することで実現します。
kubectl proxy
Starting to serve on 127.0.0.1:8001
ダッシュボードは、プロキシを実行しているノードで使用できるようになります(プロキシを終了するまで)。 プロキシを終了するには、[Ctrl]+[C]
を使用します。
これは、systemd
サービスとして実行できます。次のようにして有効化すると、それ以降の再起動後に常に使用できるようになります。
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
5.2 ダッシュボードへの接続
ダッシュボードにアクセスするには、kubectl proxy
サービスを実行しているノードでWebブラウザを開いて、次の場所に移動します。
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
ログインするには、トークンを使用した認証が必要です。 認証トークンの詳細は、次の場所にあるアップストリームのドキュメントを参照してください。
https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/README.md
この目的に限定したトークンを設定していない場合は、サービス・アカウント(namespace-controller
など)に割り当てられたトークンを使用できます。 次のコマンドを実行すると、namespace-controller
のトークン値を取得できます。
kubectl -n kube-system describe $(kubectl -n kube-system \ get secret -n kube-system -o name | grep namespace) | grep token:
token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY ...
このトークンの値をすべてコピーして、認証のためにログイン・ページのトークン・フィールドに貼り付けます。
5.3 ダッシュボードへのリモート接続
ダッシュボードにリモート・アクセスする必要がある場合は、SSHトンネリングを使用して、ローカルホストから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クラスタの画面に、ダッシュボード・ログが表示されます。 認証には、ダッシュボードにローカル接続したときと同じトークン情報を使用します。
5.4 ダッシュボード・コンテナへの接続
Kubernetesモジュールのインストール時にコンテナとしてすでに実行されているため、kubectl-proxy
サービスを使用してダッシュボードを起動する必要はありません。 これはダッシュボードにアクセスする別のメソッドです。 コンテナが実行中であることを確認するには、次のように入力します:
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ブラウザを使用してサービスに接続できます。