K8SデプロイメントWeb管理ページのダッシュボード

公式ウェブサイト https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/

まず、デプロイが成功した場合の効果図を見てみましょう。ダッシュボードは、k8sのWeb UIとして、k8sクラスターとアプリケーションの管理を容易にします。

 1kubernetes-dashboard.yamlファイル

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kube-system
type: Opaque
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard-minimal
  namespace: kube-system
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create"]
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["create"]
- apiGroups: [""]
  resources: ["secrets"]
  resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]
  verbs: ["get", "update", "delete"]
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["kubernetes-dashboard-settings"]
  verbs: ["get", "update"]
- apiGroups: [""]
  resources: ["services"]
  resourceNames: ["heapster"]
  verbs: ["proxy"]
- apiGroups: [""]
  resources: ["services/proxy"]
  resourceNames: ["heapster", "http:heapster:", "https:heapster:"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-minimal
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kube-system
---
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s-app: kubernetes-dashboard
  template:
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
    spec:
      containers:
      - name: kubernetes-dashboard
        image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3
        ports:
        - containerPort: 8443
          protocol: TCP
        args:
          - --auto-generate-certificates
        volumeMounts:
        - name: kubernetes-dashboard-certs
          mountPath: /certs
        - mountPath: /tmp
          name: tmp-volume
        livenessProbe:
          httpGet:
            scheme: HTTPS
            path: /
            port: 8443
          initialDelaySeconds: 30
          timeoutSeconds: 30
      volumes:
      - name: kubernetes-dashboard-certs
        secret:
          secretName: kubernetes-dashboard-certs
      - name: tmp-volume
        emptyDir: {}
      serviceAccountName: kubernetes-dashboard
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
---
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: 31080
  selector:
    k8s-app: kubernetes-dashboard

2 Dockerイメージをダウンロードしてローカルにインポートします。これにより、ローカルに存在するため、外部ウェアハウスがイメージをプルせず、タイムアウトがプルダウンされません。

リンク:https://pan.baidu.com/s/1J0oebrRxKN3o1q-nnEUFcw抽出コード:fio8 
展開するノードがわからないため、すべてのノードノードがイメージをインポートします

docker load < k8s.gcr.io#kubernetes-dashboard-amd64.tar

3ダッシュボードを作成する

kubectl create -f  kubernetes-dashboard.yaml

 4表示

kubectl get pods -n kube-system -o wide

5回の訪問

https://10.238.162.34:31080/を使用し ます

クリックしてリスクを受け入れ、続行します 

 トークンを取得する

# kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
Name:         namespace-controller-token-pb2zr
Type:  kubernetes.io/service-account-token
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IlB3OWJyUkxqejBWenJ5eTI1ejdxU2gzcVBvTTJYUXBPdkZGN3ZLQ0s1ZU0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlci10b2tlbi1wYjJ6ciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImU2NDJhYWY4LWU4ODYtNDQwOC04NTZlLTg5NjU2NDdlMDZkZiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTpuYW1lc3BhY2UtY29udHJvbGxlciJ9.eaCMquHlzVv-rziWC1F6_QcnyQzqYbbzzi0aZotlNx3QvSL9VgHXXYUqfZs9l2S0JdJA5nu4SSKDTU6846FFD0EXKXxq9PSFx1fXrodTn4n_ISkwFOlLXoCH0x6vV8mx9KmROQ7UJ9JMF0FkGs-PlIo-ZSqz9Z6dTYU4KbVk8pvHXOUfSAt9t2lwMup1QZxwokBfGlvu_jiA8GG-vcoOr9YI-OnaXFxgAkdVozJu0ouRMNR0MWdaIhmoELbyO6fGaqvh4PXyLl6g68JlP-vBljFaeOz8voA9sj7lsmFZVImJ4A0Icj_IxM7hfGJFo7ILyPddePP3kvpd9pj8h3Y4tg

 貼り付けた後、トークンを選択します

 

 

エラー1k8sポッドのステータスはContainerCreatingです  

kubectl get pods -n kube-system -o wide

kubectl describe pod kubernetes-dashboard-79d78c59fb-bz7n4 --namespace = kube-system

 ポッドサンドボックスの作成に失敗しました:rpcエラー:コード=不明desc =サンドボックスコンテナ "8ce7a06dcbd203b43d356f3125c846258fc8bfa2d396a29216e041f171f233ff"ネットワークのポッド "kubernetes-dashboard-79d78c59fb-bz7n4"のセットアップに失敗しました:networkPlugin cni failed bz7n4_kube-system "ネットワーク:ブリッジアドレスの設定に失敗しました:" cni0 "にはすでに10.244.1.1/24とは異なるIPアドレスがあります

解決する:

エラーポッドはノード1にあるため、ノード1のネットワークカードを確認してください  

ifconfig

ifconfig cni0 down

ip link delete cni0

https://blog.csdn.net/Wuli_SmBug/article/details/104712653

 

エラー2のk8sポッドステータスはImagePullBackOffです

画像を手動でダウンロードする

次に、すべてのノードノード 

docker load <k8s.gcr.io#kubernetes-dashboard-amd64.tar

 Docker画像

 kubectl delete -f kubernetes-dashboard.yaml

 kubectl create -f kubernetes-dashboard.yaml

kubectl get pods -n kube-system -o wide

すでにnode2で実行されています 

エラー3Firefoxブラウザがip:port(10.238.162.34:31080)を出力した後、ページに文字化けが表示されます。

https://10.238.162.34:31080/を使用し ます

クリックしてリスクを受け入れ、続行します 

 トークンを取得する

# kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
Name:         namespace-controller-token-pb2zr
Type:  kubernetes.io/service-account-token
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IlB3OWJyUkxqejBWenJ5eTI1ejdxU2gzcVBvTTJYUXBPdkZGN3ZLQ0s1ZU0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlci10b2tlbi1wYjJ6ciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImU2NDJhYWY4LWU4ODYtNDQwOC04NTZlLTg5NjU2NDdlMDZkZiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTpuYW1lc3BhY2UtY29udHJvbGxlciJ9.eaCMquHlzVv-rziWC1F6_QcnyQzqYbbzzi0aZotlNx3QvSL9VgHXXYUqfZs9l2S0JdJA5nu4SSKDTU6846FFD0EXKXxq9PSFx1fXrodTn4n_ISkwFOlLXoCH0x6vV8mx9KmROQ7UJ9JMF0FkGs-PlIo-ZSqz9Z6dTYU4KbVk8pvHXOUfSAt9t2lwMup1QZxwokBfGlvu_jiA8GG-vcoOr9YI-OnaXFxgAkdVozJu0ouRMNR0MWdaIhmoELbyO6fGaqvh4PXyLl6g68JlP-vBljFaeOz8voA9sj7lsmFZVImJ4A0Icj_IxM7hfGJFo7ILyPddePP3kvpd9pj8h3Y4tg

 貼り付けた後、トークンを選択します

 エラー4

一部のラベルをクリックすると、おそらくバージョンが低すぎるためにエラーが報告されます。

error_outlineが見つかりません(404)

the server could not find the requested resource
3 秒内重定向到上一个页面……

ログを表示するコマンド 

kubectlログ-fkubernetes-dashboard-bbfcb94b8-p9m2p -n kube-system

エラー解決はhttps://blog.csdn.net/ppppppushcar/article/details/102608450を参照してください

https://www.cnblogs.com/wucaiyun1/p/11692204.html

 削除

kubectl delete -f kubernetes-dashboard.yaml

見る

kubectl get pods -n kube-system -o wide

1.10バージョンのダウンロード 

docker pull Registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.0

ファイルkubernetes-dashboard.yamlのイメージをregistry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.0に変更します 

再デプロイ 

 kubectl create -f kubernetes-dashboard.yaml

トークンを取得する

[root@k8s-master ~]#  kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token
Name:         namespace-controller-token-pb2zr
Type:  kubernetes.io/service-account-token
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IlB3OWJyUkxqejBWenJ5eTI1ejdxU2gzcVBvTTJYUXBPdkZGN3ZLQ0s1ZU0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlci10b2tlbi1wYjJ6ciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJuYW1lc3BhY2UtY29udHJvbGxlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImU2NDJhYWY4LWU4ODYtNDQwOC04NTZlLTg5NjU2NDdlMDZkZiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTpuYW1lc3BhY2UtY29udHJvbGxlciJ9.eaCMquHlzVv-rziWC1F6_QcnyQzqYbbzzi0aZotlNx3QvSL9VgHXXYUqfZs9l2S0JdJA5nu4SSKDTU6846FFD0EXKXxq9PSFx1fXrodTn4n_ISkwFOlLXoCH0x6vV8mx9KmROQ7UJ9JMF0FkGs-PlIo-ZSqz9Z6dTYU4KbVk8pvHXOUfSAt9t2lwMup1QZxwokBfGlvu_jiA8GG-vcoOr9YI-OnaXFxgAkdVozJu0ouRMNR0MWdaIhmoELbyO6fGaqvh4PXyLl6g68JlP-vBljFaeOz8voA9sj7lsmFZVImJ4A0Icj_IxM7hfGJFo7ILyPddePP3kvpd9pj8h3Y4tg

Googleブラウザアクセス

参照 

https://blog.csdn.net/java_zyq/article/details/82178152

https://www.cnblogs.com/liugp/p/12115945.html 

gitアドレス https://github.com/kubernetes/dashboard

公式文書 

おすすめ

転載: blog.csdn.net/weixin_48154829/article/details/109168885