Azure Kubernetes Service (AKS) で Kubernetes Web ダッシュボードにアクセスする

Kubernetes には、基本的な管理操作に使用できる Web ダッシュボードが含まれています。 このダッシュボードでは、アプリケーションの基本的な正常性状態とメトリックの表示、サービスの作成とデプロイ、既存のアプリケーションの編集を行うことができます。 この記事では、Azure CLI を使用して Kubernetes ダッシュボードにアクセスする方法と、基本的なダッシュボード操作の手順について説明します。

Kubernetes ダッシュボードの詳細については、Kubernetes の Web UI ダッシュボードに関するページを参照してください。 AKS では、バージョン2.0 以降のオープンソース ダッシュボードが使用されます。

警告

AKS ダッシュボード アドオンは廃止に設定されています。代わりに、Azure portal の Kubernetes リソース ビュー (プレビュー) を使用してください。

  • すべての新しいクラスターでダッシュボード アドオンは既定で無効になります。
  • プレビューの Kubernetes 1.19 以降の AKS では、マネージド kube-dashboard アドオンのインストールはサポートされなくなりました。
  • アドオンが有効になっている既存のクラスターは影響を受けません。 ユーザーは、ユーザーがインストールするソフトウェアとして、オープンソース ダッシュボードを引き続き手動でインストールできます。

開始する前に

このドキュメントで詳しく説明する手順では、AKS クラスターを作成済みで、そのクラスターとの kubectl 接続が確立されていることを想定しています。 AKS クラスターを作成する必要がある場合は、「クイック スタート: Azure CLI を使用して Azure Kubernetes Service クラスターをデプロイする」を参照してください。

また、Azure CLI バージョン 2.6.0 以降がインストールされ、構成されている必要もあります。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

Kubernetes ダッシュボードを無効にする

次のコマンドを実行することで、アドオンを無効にすることができます。

az aks disable-addons -g myRG -n myAKScluster -a kube-dashboard

ダッシュボードにサインインする (Kubernetes 1.16 以降)

重要

Kubernetes ダッシュボードの v1.10.1 の時点または Kubernetes v1.16 以降では、そのリリースでのセキュリティ修正のため、リソースを取得するためにサービス アカウント "kubernetes-dashboard" を使用できなくなりました。 その結果、認証情報がない要求では、401 未承認エラーが返されます。 サービス アカウントから取得されたベアラー トークンは、この Kubernetes ダッシュボードの例のようにまだ使用できますが、これは古いバージョンと比較してダッシュボード アドオンのログイン フローに影響します。

まだ 1.16 より前のバージョンを実行している場合でも、"kubernetes-dashboard" サービス アカウントにアクセス許可を付与できますが、これは 推奨されません

kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard

表示される最初の画面では、kubeconfig またはトークンが必要です。 どちらのオプションでも、これらのリソースをダッシュボードに表示するには、リソースのアクセス許可が必要です。

ログイン画面

kubeconfig を使用する

クラスターで Azure AD が有効になっていても、なっていなくても、kubeconfig を渡すことができます。 アクセス トークンが有効であることを確認します。トークンの有効期限が切れている場合は、kubectl を使用してトークンを更新できます。

  1. az aks get-credentials -a --resource-group <RG_NAME> --name <CLUSTER_NAME> で管理者の kubeconfig を設定します
  2. Kubeconfig を選択し、[Choose kubeconfig file] をクリックしてファイル セレクターを開きます
  3. kubeconfig ファイルを選択します (既定値は $HOME/.kube/config)
  4. [Sign In] をクリックします。

トークンを使用する

  1. Azure AD が有効ではないクラスター では、kubectl config view を実行して、クラスターのユーザー アカウントに関連付けられているトークンをコピーします。
  2. サインイン時にトークン オプションに貼り付けます。
  3. [Sign In] をクリックします。

Azure AD が有効なクラスターの場合は、次のコマンドを使用して AAD トークンを取得します。 コマンドでリソース グループとクラスター名を置き換えたことを確認します。

## Update <RESOURCE_GROUP and <AKS_NAME> with your input.

kubectl config view -o jsonpath='{.users[?(@.name == "clusterUser_<RESOURCE GROUP>_<AKS_NAME>")].user.auth-provider.config.access-token}'

成功すると、次のようなページが表示されます。

Kubernetes Web ダッシュ ボードの概要ページ

アプリケーションの作成

次の手順では、ユーザーがそれぞれのリソースに対するアクセス許可を持っている必要があります。

Kubernetes ダッシュボードによって管理タスクの複雑さを軽減する方法を確認するために、アプリケーションを作成してみましょう。 Kubernetes ダッシュボードからアプリケーションを作成するには、テキスト入力、YAML ファイル、またはグラフィカル ウィザードを使用します。

アプリケーションを作成するには、次の手順を実行します。

  1. 右上のウィンドウの [作成] ボタンを選択します。
  2. グラフィカル ウィザードを使用する場合は、 [Create an app] (アプリの作成) を選択します。
  3. デプロイの名前 (nginx など) を指定します
  4. 使用するコンテナー イメージの名前 (nginx:1.15.5 など) を入力します。
  5. Web トラフィック用にポート 80 を公開するため、Kubernetes サービスを作成します。 [サービス] で、 [外部] を選択し、ポートとターゲット ポートの両方に「80」を入力します。
  6. 準備ができたら、 [デプロイ] を選択して、アプリケーションを作成します。

Kubernetes Web ダッシュボードでアプリケーションをデプロイする

パブリック外部 IP アドレスが Kubernetes サービスに割り当てられるまで 1、2 秒かかります。 左側の [Discovery and Load Balancing] (検出と負荷分散) の下の [サービス] を選択します。 次の例に示すように、 [外部エンドポイント] を含むアプリケーションのサービスが一覧表示されます。

サービスとエンドポイントの一覧の表示

エンドポイント アドレスを選択すると、Web ブラウザー ウィンドウに既定の NGINX ページが開きます。

デプロイされたアプリケーションの既定の NGINX ページの表示

ポッド情報の表示

Kubernetes ダッシュボードでは、基本的な監視メトリックおよびログなどのトラブルシューティング情報を表示できます。

アプリケーション ポッドに関する詳細については、左側のメニューで [ポッド] を選択します。 使用可能なポッドの一覧が表示されます。 nginx ポッドを選択して、リソース使用量などの情報を表示します。

ポッド情報の表示

アプリケーションを編集する

アプリケーションの作成および表示に加えて、Kubernetes ダッシュボードはアプリケーションのデプロイの編集や更新にも使用できます。 アプリケーションに追加の冗長性を提供するため、NGINX レプリカの数を増やしてみましょう。

デプロイを編集するには

  1. 左側のメニューで [デプロイメント] を選択し、nginx デプロイメントを選択します。
  2. 右上のナビゲーション バーにある [編集] を選択します。
  3. 20 行あたりにある spec.replica 値を見つけます。 アプリケーションのレプリカの数を増やすには、この値を 1 から 3 に変更します。
  4. 準備ができたら、 [更新] を選択します。

デプロイメントを編集してレプリカの数を更新する

レプリカ セット内に新しいポッドが作成されるまで数分かかります。 左側のメニューで、 [レプリカ セット] を選択し、nginx レプリカ セットを選択します。 ポッドの一覧には、次の出力例に示すように、更新されたレプリカ数が反映されます。

レプリカ セットに関する情報の表示

次のステップ

Kubernetes ダッシュボードの詳細については、Kubernetes Web UI ダッシュボードに関するページを参照してください。