Dashboard Github 地址:
链接
Heapster Github 地址:
链接
Kubernetes Dashboards
官方 Dashboard 只适用于开发人员或者运维人员,并且配合 heapster 服务获取容器内的资源信息。
启动服务:
$ 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 方式,则创建 ClusterRoleBinding:
admin-user.yml 展开源码
创建:
$ 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 | grep admin-user | awk '{print $1}' ) |
然后把 Token 值贴入 Dashboard 页面:

如果使用 KubeConfig 报错如下:

请创建 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 | grep dashboard-admin | awk '{print $1}' ) |
请把上述创建出的 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 | grep dashboard-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 |