?Dashboard Github 地址:
Heapster Github 地址:
Kubernetes Dashboards
官方 Dashboard 只適用于開發(fā)人員或者運維人員,并且配合?heapster 服務獲取容器內(nèi)的資源信息。
啟動服務:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
啟動完成后,對服務只有 proxy 方式映射進行訪問:
$ kubectl proxy --address='0.0.0.0'--port=8086 --accept-hosts='^*$'
此時可通過如地址http://127.0.0.1:8086/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/方式進行訪問。
第一次訪問時會提示使用哪種鑒權方式:(官方文檔)

選擇 Token 方式,則創(chuàng)建 ClusterRoleBinding:
admin-user.yml展開源碼
創(chuàng)建:
$ kubectl apply -f admin-user.yml
獲取 Token:
$ SECRET=$(kubectl -n kube-system get sa admin-user -o yaml |?awk'/admin-user-token/ {print $3}')
$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret |?grepadmin-user |?awk'{print $1}')
然后把 Token 值貼入 Dashboard 頁面:

如果使用 KubeConfig 報錯如下:

請創(chuàng)建 Token 值:
$ kubectl create serviceaccount dashboard-admin -n kube-system
$ kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
$ kubectl describe secret -n kube-system $(kubectl get secret -n kube-system |?grepdashboard-admin |?awk'{print $1}')
請把上述創(chuàng)建出的 Token 拷貝至 KubeConfig 配置文件末尾一行(并格式對其)。
新建 Kubeconfig 配置如下:
$ kubectl create serviceaccount dashboard-admin -n kube-system
$ DASHBOARD_ADMIN_SECRET=$(kubectl get secret -n kube-system `kubectl get secret -n kube-system |grepdashboard-admin |?awk'{print $1}'` -o jsonpath={.data.token} |base64 -d)
$ kubectl config?set-credentials dashboard-admin --token=$DASHBOARD_ADMIN_SECRET --kubeconfig=/root/dashboard-admin.conf
$ kubectl config?set-context dashboard-admin@kubernetes --cluster=kubernetes --user=dashboard-admin --kubeconfig=/root/dashboard-admin.conf
$ kubectl config use-context dashboard-admin@kubernetes --kubeconfig=/root/dashboard-admin.conf
$ kubectl config view --kubeconfig=/root/dashboard-admin.conf
$?cd/etc/kubernetes/pki/&& kubectl config?set-cluster kubernetes --certificate-authority=./ca.pem --server="https://10.140.0.12:6443"--embed-certs=true--kubeconfig=/root/dashboard-admin.conf
Service NodePort
配置如下:
dashboard-svc.yaml
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: 5555
??selector:
????k8s-app: kubernetes-dashboard
Ingress
配置如下:
dashboard-ingress.yaml
apiVersion: apps/v1
kind: Ingress
metadata:
??name: k8s
??namespace: kube-system
spec:
??rules:
??- host: k8s.shileizcc.com
????http:
??????paths:
??????- path: /
????????backend:
??????????serviceName: kubernetes-dashboard
??????????servicePort: 443