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. 最終的なインターフェースは次のとおりです。