官网给的命令
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml
这里不着急执行,先看一下这个yaml文件,提前把镜像下载下来,这个国内应该是可以下载的
docker pull kubernetesui/dashboard:v2.0.0-rc5
docker pull kubernetesui/metrics-scraper:v1.0.3

然后修改yaml文件,解决三个问题

第一,默认Dashboard只能集群内部访问,如何外部可以访问

修改Service为NodePort类型,到外部:
修改node为NodePort模式

imagePullPolicy: Always # 注释原来的镜像拉取规则
imagePullPolicy: IfNotPresent # 设置为本地没有则拉取
第二,失败可能一直重新拉去镜像
第三,修改默认只能火狐访问的限制,注释掉kubernetes-dashboard-certs

图片标记都是已经修改完的状态
然后再执行官方给的命令, kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml

这个时候应该提示的是secret "kubernetes-dashboard-certs" not found
手工创建证书并签发
cd /etc/kubernetes/pki/
openssl genrsa -out dashboard.key 2048
openssl req -days 3650 -new -out dashboard.csr -key dashboard.key -subj '/CN=
192.168.182.120'
或者openssl req -new -key dashboard.key -out dashboard.csr -subj "/O=HTI/CN=kubernetes-dashboard"
openssl x509 -req -in dashboard.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out dashboard.crt -days 3650
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.crt --from-file=dashboard.key -n kubernetes-dashboard

这个时候在看这个pod kubernetes-dashboard-79f5cc5bb6-n7gq5 应该是正常了,端口在30003

然后打开浏览器,我这个已经第二次登陆了,第一次的可能会出现警告,点击高级就可以出来访问链接

获取默认用户登录token
kubectl describe secrets $(kubectl get secrets -n kubernetes-dashboard | awk '/kubernetes-dashboard-token/{print $1}' ) -n kubernetes-dashboard |sed -n '/token:.*/p'

使用默认token 默认用户权限不足---授权管理员,创建service account并绑定默认cluster-admin管理

创建sa
$ kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
绑定集群管理员
$ kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
获取token
$ kubectl describe secrets $(kubectl get secrets -n kubernetes-dashboard | awk '/dashboard-admin-token/{print $1}' ) -n kubernetes-dashboard |sed -n '/token:.*/p'

kubectl get secret -n kubernetes-dashboard |grep dashboard

用这个admin的token登陆

创建了一个应用


至此就是后续使用再发