这篇博文介绍的是安装Dashboard V2.0.3
, 并将其映射到具体的域名上。先上一个成果图,若是安装过程当中有遇到什么问题,能够评论联系我html
本次安装基于Helm
的chart
包安装的,且向外暴露服务的方式为Ingress,因此有如下前提:node
如未安装helm,能够参照:kubernetes系列(十六) - Helm安装和入门nginx
DaemonSet
方式安装好了Ingress-nginx
如未安装,安装教程能够参照下篇文章的第四小节部分:kubernetes系列(十) - 经过Ingress实现七层代理git
由于使用的是ingress,因此必需要域名,且dashboard须要https才能外网访问,证书能够在阿里云之类的购买一年期的免费赠书github
# 具体上传过程不赘述 # 这里假设证书aaa.key和bbb.crt已经上传至路径/usr/local/cert cd /usr/local/cert # 建立secret到kube-system命名空间下 # 以后咱们的dashboard也会建立在这个命名空间下,须要依赖这个,因此提早建立 kubectl creat secret tls dashboard-tls --key aaa.key --cert bbb.crt -n kube-system
# 添加helmhub上的dashboard官方repo仓库 helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ # 查看添加完成后的仓库 helm repo list # 查询dashboard的chart helm search repo kubernetes-dashboard # 新建文件夹用于保存chart mkdir dashboard-chart && cd dashboard-chart # 拉取chart helm pull kubernetes-dashboard/kubernetes-dashboard # 此时会有一个压缩包,解压它 tar -zxvf kubernetes-dashboard-2.3.0.tgz # 进入到解压后的文件夹 cd kubernetes-dashboard
注意:如下建立的new-values.yaml
是基于values.yaml
修改的,即意味着若是须要跟自定义的配置,能够本身参照values.yaml
修改配置文件shell
注意:如下的host须要换成本身的域名,且secretname须要跟刚刚建立的secret对应起来api
image: repository: kubernetesui/dashboard tag: v2.0.3 pullPolicy: IfNotPresent pullSecrets: [] replicaCount: 1 annotations: {} labels: {} extraEnv: [] podAnnotations: seccomp.security.alpha.kubernetes.io/pod: 'runtime/default' nodeSelector: {} tolerations: [] affinity: {} resources: requests: cpu: 100m memory: 200Mi limits: cpu: 2 memory: 200Mi protocolHttp: false service: type: ClusterIP externalPort: 443 annotations: {} labels: {} ingress: enabled: true annotations: nginx.ingress.kubernetes.io/secure-backends: "true" nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" paths: - / customPaths: [] hosts: - xxx.xxx.com # 你的域名 tls: # 注意这个名字要跟前面新建的secret对上 - secretName: dashboard-tls hosts: - xxx.xxx.com # 你的域名 metricsScraper: enabled: false image: repository: kubernetesui/metrics-scraper tag: v1.0.4 resources: {} containerSecurityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true runAsUser: 1001 runAsGroup: 2001 metrics-server: enabled: false rbac: create: true clusterRoleMetrics: true clusterReadOnlyRole: false serviceAccount: create: true name: livenessProbe: initialDelaySeconds: 30 timeoutSeconds: 30 podDisruptionBudget: enabled: false minAvailable: maxUnavailable: containerSecurityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true runAsUser: 1001 runAsGroup: 2001 networkPolicy: enabled: false
# 执行路径在new-values.yaml目录 helm install -f new-values.yaml --namespace kube-system kubernetes-dashboard .
注意:云服务商的域名解析处,须要将域名经过A记录解析到某个node节点上服务器
而后访问刚刚配置文件配置的域名应该可以访问到以下界面app
这里咱们须要查看tokenui
[root@k8s-master kubernetes-dashboard]# kubectl get secret -n kube-system | grep kubernetes-dashboard-token kubernetes-dashboard-token-vgp9w kubernetes.io/service-account-token 3 22h
kubectl describe secret kubernetes-dashboard-token-vgp9w -n kube-system
根据以下的登录
登录成功
此时咱们刚进去界面,发现什么资源都显示不了,是由于dashboard默认的serviceaccount
并无权限,因此咱们须要给予它受权。
https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/README.md
dashboard-admin.yaml
,内容为如下apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kubernetes-dashboard namespace: kube-system roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kubernetes-dashboard namespace: kube-system
dashboard-admin.yaml
kubectl apply -f dashboard-admin.yaml