美文网首页
部署 Kubernetes Dashboard 2.0.0 并通

部署 Kubernetes Dashboard 2.0.0 并通

作者: N__G | 来源:发表于2021-05-08 18:24 被阅读0次

    前提

    假设已安装好 Kubernetes 集群以及 NGINX Ingress Controller, 信息如下:

    • cluster-info
    [user@vm-centos-7 ~]$ kubectl cluster-info
    Kubernetes master is running at https://192.168.2.120:6443
    KubeDNS is running at https://192.168.2.120:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
    
    To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
    
    • ingress-nginx
    [user@vm-centos-7 ~]$ kubectl get all -n ingress-nginx
    NAME                                           READY   STATUS      RESTARTS   AGE
    pod/ingress-nginx-admission-create-c9wfb       0/1     Completed   0          20d
    pod/ingress-nginx-admission-patch-k9pvn        0/1     Completed   1          20d
    pod/ingress-nginx-controller-64db99fb6-9tcnv   1/1     Running     1          20d
    
    NAME                                         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                       AGE
    service/ingress-nginx-controller             NodePort    10.101.247.5    <none>        8080:30069/TCP,8443:32471/TCP,6379:32072/TCP,3306:32412/TCP   20d
    service/ingress-nginx-controller-admission   ClusterIP   10.98.210.145   <none>        443/TCP                                                       20d
    
    NAME                                       READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/ingress-nginx-controller   1/1     1            1           20d
    
    NAME                                                 DESIRED   CURRENT   READY   AGE
    replicaset.apps/ingress-nginx-controller-64db99fb6   1         1         1       20d
    
    NAME                                       COMPLETIONS   DURATION   AGE
    job.batch/ingress-nginx-admission-create   1/1           3s         20d
    job.batch/ingress-nginx-admission-patch    1/1           4s         20d
    
    

    部署 Deployment/Service

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
    

    部署 Ingress

    kubectl apply -f ingress.yaml
    
    • ingress.yaml 内容如下:
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
      annotations:
        kubernetes.io/ingress.class: "nginx"
        nginx.ingress.kubernetes.io/backend-protocol: HTTPS
        nginx.ingress.kubernetes.io/configuration-snippet: |-
          proxy_ssl_server_name on;
          proxy_ssl_name $host;
    spec:
      rules:
      - host: dashboard.k8s.local
        http:
          paths:
          - path: /
            backend:
              serviceName: kubernetes-dashboard
              servicePort: 443
    

    创建示例帐号

    创建 Service Account

    kubectl apply -f service-account.yaml
    
    • service-account.yaml 内容如下:
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin-user
      namespace: kubernetes-dashboard
    

    创建 Cluster Role Binding

    kubectl apply -f cluster-role-binding.yaml
    
    • cluster-role-binding.yaml 内容如下:
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: admin-user
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: admin-user
      namespace: kubernetes-dashboard
    

    获取 Bearer Token

    kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
    

    结果如下:

    [user@vm-centos-7 ~]$ kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"
    eyJhbGciOiJSUzI1NiIsImtpZCI6IkVXeDJFaU84RFkwc1BiU1c2VEpIZDZ3aUVsUDEzaENwX0d2NG9qZWtLODQifQ.eyJpc3MiOiJrdWJlcmas5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyasZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pasdfbi11c2VyLXRva2VuLWZ3NGJtIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjasdb3VudC9zZXJ2aWNlLWFjY291bsnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIyZWQ0NTlmZS1kNzEzLTQ1ZDgtYjc4Ni1hZjZkMTNjNGMxZjUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.saFr6kSsvopHH-OGUEaJKvi8KcZbh_gLL9S49siTQa5r8zm2n-MQY9E2yjGdg-ZHZk6e75nKEsjP6NDd864BcD11_NFZaFcG5RT0MvaHJoRvqFTRVrq_yJ9L5FqpYeFoRlaImOaGrsIN7JIoTyqrr6meRhjWC2RAATAGD4VGout1JZ5Aj7faSezwVoWrsaevxe1qIWgx0q7LotTiP3Tjh1Aijw2pMCbuJEDv-TpWsrL_ThByIJCQvLW77Xinj-aebdhlDSUdFcROkaLx43jZ0qI5uO66IGT9s1tLuQ2V1YFuIqK7tJ_fczxuwoB4Dj4qoxWoacxtp43fmWGtCFSySg
    

    登录

    打开 URL:http://dashboard.k8s.local, 选择 Token 并使用上一步得到的 Bearer Token 登录:

    k8s-dashboard-login.png
    结果如下:
    k8s-dashboard.png

    相关文章

      网友评论

          本文标题:部署 Kubernetes Dashboard 2.0.0 并通

          本文链接:https://www.haomeiwen.com/subject/pztpdltx.html