Kubernetesダッシュボードは、クラスターにWebベースのUIを提供します。 ダッシュボードを使用してクラスターにアプリケーションをデプロイしたり、クラスター内の既存のアプリケーションのトラブルシューティングを行ったりすることができます。 ダッシュボードは、クラスター内のリソースへの洞察も提供します。 ダッシュボードはKubernetesによって正式に提供されています。 ダッシュボードを使用して、Kubernetesオブジェクトを作成、変更、更新、削除できます。
この記事では、Kubernetesが提供する公式ダッシュボードをインストールし、それにアクセスするためのサービスアカウントを設定します。 この記事を進める前に、Kubernetesに精通しており、Kubernetesクラスターを使用していることを前提としています。
前提条件
- 少なくとも1つのワーカーノードを持つKubernetesクラスター。
Kubernetesクラスターの作成方法を学びたい場合は、ここをクリックしてください。 このガイドは、AWS Ubuntu18.04EC2インスタンスで1つのマスターノードと2つのワーカーノードを持つKubernetesクラスターを作成するのに役立ちます。 - Kubernetesの基本的な理解。
何をしたらいいでしょう?
- Kubernetesダッシュボードをデプロイします。
- KubernetesダッシュボードにアクセスするためのServiceAccountを設定します。
- Kubernetesダッシュボードにアクセスします。
Kubernetesダッシュボードをデプロイする
Kubernetesダッシュボードをデプロイするために、Githubからオブジェクトファイルをダウンロードできます。 次のコマンドを使用して、オブジェクトファイルをダウンロードします。 このファイルには、名前空間、ServiceAccount、Service、Secret、ConfigMap、Role、ClusterRole、RoleBinding、ClusterRoleBinding、Deployment、Serviceの定義が含まれています。
pwd
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
ファイルの名前を変更し、サービスタイプをNodePortに変更します。 次のスクリーンショットを参照してください。
mv recommended.yaml kubernetes-dashboard-deployment.yml
vim kubernetes-dashboard-deployment.yml
サービスタイプをNodePortに変更したら、Kubernetesダッシュボードのデプロイを担当するすべてのオブジェクトを作成します。
kubectl apply -f kubernetes-dashboard-deployment.yml
上記のコマンドで作成されたデプロイメント、ポッド、サービスを確認してください。 上記のコマンドは、名前空間、ServiceAccount、Service、Secret、ConfigMap、Role、ClusterRole、RoleBinding、ClusterRoleBinding、Deployment、Serviceも作成します。
kubectl get deployments -n kubernetes-dashboard
kubectl get svc
kubectl get pods
kubectl get pods -n kubernetes-dashboard
kubectl get svc -n kubernetes-dashboard
上のスクリーンショットでは、タイプが「NodePort」のKubernetesダッシュボードサービスが作成されていることがわかります。 これは、ダッシュボードがNodePort”32304″のノードの任意のIPで使用できることを意味します。 クラスタ上のサービスに別のポートが表示される場合があります。
次のコマンドを使用して、後の手順で必要になるノードのIPを取得します。
kubectl get nodes -o wide
KubernetesダッシュボードにアクセスするためのServiceAccountを設定します
Kubernetesダッシュボードにアクセスするには、トークンが必要です。 トークンを作成するには、最初にServiceAccountを作成する必要があります
新しいファイルを作成し、それに次のコンテンツを追加してServiceAccountを作成します。 オブジェクトファイルを私からダウンロードすることもできます Github レポ。
vim admin-sa.yml
cat admin-sa.yml
apiVersion: v1 kind: ServiceAccount metadata: name: rahul-admin namespace: kube-system
オブジェクトファイルを取得したら、次のコマンドを実行してServiceAccountを作成します。
kubectl apply -f admin-sa.yml
次に、ServiceAccount「rahul-admin」をクラスターロール「cluster-admin」に関連付ける必要があります。 次のコンテンツを含む新しいファイルを作成してClusterRoleBindingを作成するか、をクリックします ここ Githubリポジトリからオブジェクトファイルをダウンロードします。
vim admin-rbac.yml
cat admin-rbac.yml
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: rahul-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: rahul-admin namespace: kube-system
次のコマンドを実行して、「ClusterRoleBinding」を作成します。
kubectl apply -f admin-rbac.yml
これで、「ClusterRole」->「cluster-admin」が「ServiceAccount」->「rahul-admin」にバインドされました。
これで、Kubernetesダッシュボードへのログインに使用するトークンをフェッチする準備が整いました。 トークンを取得するには、次のコマンドを実行します。
SA_NAME="rahul-admin"
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')
上のスクリーンショットでは、Kubernetesダッシュボードへのログインに使用されるトークンを確認できます。 このトークンをコピーして、「NodeIP:NodePort」のダッシュボードURLをヒットします。
ここで、NodeIPはクラスター内の任意のノードのIPであり、NodePortは作成したサービスのポート(この場合は32304、別のポートがある場合があります)です。
URL「NodeIP:NodePort」を押すと、次のような画面が表示されます。 ここで、「トークン」オプションを選択し、上記の手順で取得したトークンを入力して、「サインイン」ボタンをクリックします。
Kubernetesダッシュボードにアクセスする
サインインに成功すると、Kubernetesダッシュボードが次のように表示されます。
画面の上部で、名前空間を変更してその中のリソースを表示することもできます。 これで、Kubernetesダッシュボードを探索する準備が整いました。
結論
この記事では、クラスターにダッシュボードを配置するために必要なすべてのKubernetesオブジェクトをデプロイしました。 単純にアクセスできないため、Kubernetesダッシュボードにアクセスするためのトークンを持つServiceAccountとClusterRoleBindingを作成しました。 ダッシュボードは、クラスターを理解し、クラスター内にあるすべてのオブジェクトを確認するのに役立ちます。
The post KubernetesのWebUIダッシュボード appeared first on Gamingsym Japan.