Kubernetes Dashboards

 Dashboard Github 地址:

链接

Heapster Github 地址:

链接

Kubernetes Dashboards

Service NodePort

Ingress

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 | grepadmin-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 | grepdashboard-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 |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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容