k8s コンポーネント UI インターフェイス ダッシュボードの構築

1.ダッシュボードの紹介

ダッシュボードは、Web ベースの Kubernetes ユーザー インターフェイスです。ダッシュボードを使用して、コンテナー化されたアプリケーションを Kubernetes クラスターにデプロイし、コンテナー化されたアプリケーションをトラブルシューティングし、クラスター リソースを管理できます。ダッシュボードを使用して、クラスターで実行されているアプリケーションの概要を取得したり、個々の Kubernetes リソース (デプロイ、タスク、デーモンなど) を作成または変更したりできます。展開ウィザードを使用して展開を拡張したり、ローリング更新を開始したり、ポッドを再起動したり、新しいアプリケーションを展開したりできます。
ダッシュボードには、クラスター内の Kubernetes リソースのステータスと、発生した可能性のあるエラーに関する情報も表示されます。

2. ダッシュボードの展開

2.1 ダウンロード yaml

  1 [root@master ~]# mkdir dashboard					#建议将yaml存储到本地
  2 [root@master ~]# cd dashboard/
  3 [root@master dashboard]# wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml

2.2 国内ソースへの変更

1 [root@master ~]# cd dashboard/
  2 [root@master dashboard]# vim kubernetes-dashboard.yaml
  3 ……
  4 image: ydtong/kubernetes-dashboard-amd64:v1.10.1
  5 ……

提示:将yaml文件中的image字段修改为ydtong/kubernetes-dashboard-amd64:v1.10.1

サービス モジュール構成は、k8s クラスターの外部アクセス ポートを公開します。構成は次のとおりです。

# ------------------- Dashboard Service ------------------- #
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard
  • ヒント:typeフィールドを追加して、次のように変更します。NodePort

2.3 ダッシュボードの開始

[root@master dashboard]# kubectl apply -f kubernetes-dashboard.yaml 
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created

構成ファイルの削除コマンド:

kubectl delete -f kubernetes-dashboard.yaml 

2.4 Web インターフェイスへのアクセス

ノード ノード アドレス: https://192.168.10.134:30001
ここに画像の説明を挿入

  • ヒント: マスター ノードにログインすることもできます。ログインには https を使用する必要があります。

2.5. トークンでログイン (ダッシュボードにアクセスできるユーザーを作成する必要があります)

account.yaml ファイルを作成し、次のように構成します。

# Create Service Account
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
# Create ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

ユーザー コマンドを作成します。

[root@master yaml]# kubectl create -f account.yaml

トークンを取得します。

[root@master dashboard]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-vck2j
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: b8ec1ba2-1b36-11ea-85a5-080027f16b5b

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXZjazJqIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiOGVjMWJhMi0xYjM2LTExZWEtODVhNS0wODAwMjdmMTZiNWIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.BHKsuojE4dazrj831eLdTGLMrMtYX7__398cOv43r0AMyBQZZVj8dgYLo-_NjZZ77BCNt4KnaUDg0kirW-wv8iHL7bIroZ3H-YUrJlNcNqocQ_PYEcmY6MSCtTXjwRCTe-j5SQ49CYhZg8MIf2T_SFSVwYxsiP9eCr0yQ411drXjFwLduFkBvHw7AyQ6cBz55S8pTSOuNr-0yENAWCYrhjtNrZjjvijtlJvGug6uUYGj-lRBfYxkD9nlqG8xn8C8_tHuQCTBGaPuZJNa9bgvWNJE0L4qzax8t-fjzmP5m1311aOHL5NlvgFFp3qFvN3kKcWu6PGa55Ecz9f4fcQfZA

3. 最終的なインターフェースは次のとおりです。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44006354/article/details/103480942