Rancher的Kubernetes dashboard安装部署
当我们通过Rancher安装完k8s后,发现Rancher并没有帮我们安装k8s的dashboard,虽然Rancher自己的管理控制台功能已经非常强大了。但对于想真正学习k8s的人,一定会去尝试再安装一个k8s的dashboard。本人在安装k8s dashboard的过程中踩了很多坑,这里总结出很简单的方式分享给大家。环境1.docker版本:1.13.12.kubernetes版...
当我们通过Rancher安装完k8s后,发现Rancher并没有帮我们安装k8s的dashboard,虽然Rancher自己的管理控制台功能已经非常强大了。但对于想真正学习k8s的人,一定会去尝试再安装一个k8s的dashboard。本人在安装k8s dashboard的过程中踩了很多坑,这里总结出很简单的方式分享给大家。
环境
1.docker版本:1.13.1
2.kubernetes版本:v1.11.3-rancher1-1
3.k8s dashboard版本:v1.8.3
安装kubernetes-dashboard
1.下载官方的yaml文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
2.编辑yaml文件
由于下载的yaml文件里的镜像在国内环境下并不能pull成功,所以我们需要将换成能正常pull的,也可以先docker pull到本地。
这里推荐镜像:mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.8.3 。下面我们修改yaml文件的内容,
只摘取部分内容如下,注意image被修改了
3.执行安装
kubectl create -f kubernetes-dashboard.yaml
4.检查k8s dashboard是否已成功运行
访问k8s dashboard
1.查看本机的k8s的api server地址
2.获取上面已经创建的角色用户的token
命令:kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kubenetes-dashboard | awk '{print $1}')
在输出结果里将token复制并保存下来
3.访问k8s dashboard
通过上面的api server,整理访问地址为:https://192.168.20.161/k8s/clusters/c-ppfpt/api/v1/namespaces/kube- system/services/https:kubernetes-dashboard:/proxy/
我们选择令牌,并输入保存的token,点击登录
发现登录成功了,但是看不到任何内容。原因:上面创建的用户权限不够。
解决方案
1.新建文件dashboard_service_account-admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
2.新建文件 dashboard_cluster_role_binding_admin.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: kube-system
3.创建用户,及绑定角色
# Create Service Account
kubectl apply -f dashboard_service_account_admin.yaml
# Create Cluster Role Binding
kubectl apply -f dashboard_cluster_role_binding_admin.yaml
4.获取创建admin用户的token
命令:kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
在输出结果里将token复制并保存下来
5.再次访问使用admin用户的token
可以发现,已经大功告成了。
更多推荐
所有评论(0)