在docker for mac上安装kubernetes后,安装dashboard
1.在 https://github.com/kubernetes/dashboard/releases 官网,找到对应的版本。本文使用2.0.1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.1/aio/deploy/recommended.yaml
可能会出现raw.githubusercontent.com无法访问的情况。可能是DNS污染,临时解决方法是配置 /etc/hosts 文件
sudo vim /etc/hosts
151.101.76.133 raw.githubusercontent.com
2. 运行 kubectl get pods --namespace=kubernetes-dashboard -o wide 查看pod名称,下面说明pod正在被创建
执行 kubectl describe pod dashboard-metrics-scraper-b68468655-4cfdn --namespace=kubernetes-dashboard 查看创建过程
等一会,再次查看,发现已经在运行了
3.使用API Server 访问
kubectl proxy # 开启本机访问代理
这时候可通过 http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login 地址访问,注意namespace=kubernetes-dashboard/
4. 使用NodePort访问
4.1 查看kubernetes-dashboard
kubectl --namespace=kubernetes-dashboard get service kubernetes-dashboard
4.2 编辑kubernetes-dashboard,
将里面的type: ClusterIP
改为type: NodePort
即可
kubectl --namespace=kubernetes-dashboard edit service kubernetes-dashboard
4.3 wq
保存即可。等一会儿,重新查看,就变为NodePort了。
4.4 生成证书
Dashboard安装完成,改为NodePort形式之后,通过https://127.0.0.1:30304/
访问,会提示安全信息如下: 无法访问了,需要生成证书
#新建目录:
mkdir key && cd key
#生成证书
openssl genrsa -out dashboard.key 2048
#部署的是docker for mac的kubernetes,配置如下。192.168.10.7是本机IP地址
openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.10.7'
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt
#删除原有的证书secret
kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard
#创建新的证书secret
kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard
#查看pod
kubectl get pod -n kubernetes-dashboard
#删除pod,系统会自动启动一个新的
kubectl delete pod kubernetes-dashboard-64999dbccd-lpq7k -n kubernetes-dashboard
执行完成之后,再次访问是这样的
上图点开高级之后,有个继续前往的链接,点击即可。
4.5 新建用户获取令牌
4.5.1新建用户
新建文件(文件名随意)admin-user.yaml
:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
复制到admin-user.yaml
文件后,执行:kubectl create -f admin-user.yaml
4.5.2 绑定用户关系
新建文件(文件名随意)admin-user-role-binding.yaml
:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kubernetes-dashboard
复制到admin-user-role-binding.yaml
文件后,执行:kubectl create -f admin-user-role-binding.yaml
如果过程中提示存在或者需要删除,只需要kubectl delete -f 相应的yaml文件
即可。
4.5.3 获取令牌
按照官网提示的获取token方法:
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
eyJhbGciOiJSUzI1NiIsImtpZCI6IlRZd1VXeDdjSmZJRW1keDZsQUVyMW12M24wZTF2WGU4Ul8wX09KTVpQcmcifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXNicWwyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIxMzFlM2E3MC1jZWI0LTQ5MWQtOGU2Zi1iMTA0NDMxMmU2OTEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.UqP8ale28OoMxlwpyBKCE95O5CIKQa3Z3FmNevl9x99CkUJCBGFsjtzt8dYxnEkF3R1FqcLAf7umjR1M931u94jsoI7OcOvFyV3jQeApLhlRBLdJ4wr5WcXROVxyJfDbpKvwGsPb6BiOMdXITAAksnjgXQVUcdLPgNaRFqFHh7OY10MMI8yHN31ZN1Ragh4j0n1lj8aiRruOS0c2iGy30MAjOhlvM9YSpv-ENVEMDkxxwVUg095SejWP3mnWzbfBDF0gNE5cJ9aEWwzUv-6f5q0lGxjA2YSABhfaK0lLPPRf3zHYtf7H37oJvsUvv1a5B52zVjOMU_2g13V4qAipRQ
4.5.4 输入令牌打开页面
输入令牌后,点登入,就打开了首页,如图所示:
本文主要参考了
Web基础配置篇(十七): Kubernetes dashboard安装配置