欢迎大家关注我的以下主页,尤其是今日头条!!!谢谢🙏🙏🙏
csdn:雷园的csdn博客
个人博客:雷园的个人博客
简书:雷园的简书
今日头条:来自底层程序员的仰望
终端管理K8s命令太多太费劲?试试官方的Dashboard,你100%喜欢
开头说几句
- 上一篇文章我们说了官方提供的最简便的安装方式Kubeadm,相信小伙伴们也利用这一方式搭建起了自己的第一个K8s集群。
- 今天我们来说一说如何搭建官方的Dashboard来管理我们的K8s集群。
- 那后面我们还会有很多关于K8s使用方面的小知识小技巧,感兴趣的小伙伴可以关注我,文章末尾我会列出我们将要谈到的话题哦,记得看完!
- 先来个上篇文章的链接吧!!!有些软件包在上篇文章中有说到
为什么要使用 Kubernetes Dashboard?
- 看到这里有小伙伴就要问了,我们为什么要用Dashboard?哈哈哈,无他,唯好用尔!
- linux实在是有太多太多的命令了,小编的脑子根本记不住,每次都要查太费劲了,有官方提供的管理平台当然要快快用起来了。
Kubernetes Dashboard 可以做什么
基本上一目了然了吧,那我就不说了,说起来挺费劲的!
正式开始
Kubernetes Dashboard 安装
-
首先呢我们先获取一下官方提供的recommended.yaml配置文件,不过咱这网络一般是下载不下来,回复我关键字k8s会提供相关所有的软件包给大家哦!!
-
我们先打开recommended.yaml,找到下面这一段(红色框内)
-
我们需要在这一段内呢添加两对键值,修改后这段应该是这样的:
kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort ports: - port: 443 targetPort: 8443 nodePort: 30443 selector: k8s-app: kubernetes-dashboard
-
我简单的解释一下,我们这里添加了type: NodePort,这个呢意思是service对外开放端口,用户可以通过node、master节点的IP来访问该服务。那后面nodePort: 30443大家应该也就明白了是对外开放的端口号。
-
修改好之后我们就可以开始安装了,上一篇文章中我们同样为大家提供的Kubernetes Dashboard相关的镜像,不然我们这边还不太好下载。
$ kubectl create -f recommended.yaml
-
命令执行完毕后我们就可以查看一下对应的service、pod的状态了
$ kubectl get pod,svc -n kubernetes-dashboard
创建 Kubernetes Dashboard 超级管理用户
-
默认Dashboard为最小RBAC权限,我们需要添加集群管理员的权限以方便我们从Dashboard页面操作集群资源。
-
首先我们需要创建adminuser.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- 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
-
然后就是执行如下命令在集群中创建用户:
$ kubectl create -f adminuser.yaml
-
然后我们就可以访问了页面了,访问地址是:https://{YourNodeIp}:30443
-
你会发现他会提示我们证书不对,这是因为我们上面的recommended.yaml中为我们创建了一个空的证书。有的浏览器甚至无法强行跳转,这就涉及到我们下面的证书配置了!
-
页面需要我们提供一个token进行登录,最长的那一段就是:
$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
为 Kubernetes Dashboard 配置正确的域名证书
-
这里我们要配置的是正确的域名证书哦,就像我的截图一样。那没有域名的小伙伴可以使用自签名证书哦,或者使用hosts配置也可以!
-
首先我们需要准备好我们的证书以及key文件,这里要注意了,我们的证书命名一定是dashboard.crt,我们的key命名一定是dashboard.key。通过我的实践这是真理,具体为什么咱也不知道,咱也不敢问(可能官方文档里有写咱没看见)。
-
接下来我们要查看一下当前是否存在证书(这里算是多此一举)
$ kubectl get secret -n kubernetes-dashboard|grep kubernetes-dashboard-certs
-
那我们需要先删除这个证书配置,这样我们才能添加自己的证书
$ kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard
-
删除之后呢我们,我们就要创建自己的证书了,千万注意步骤2中的命名问题!!!这是个巨坑
$ kubectl create secret generic kubernetes-dashboard-certs --from-file="dashboard.crt" --from-file="dashboard.key" -n kubernetes-dashboard
-
证书创建好了,我们还需要重启pod才能生效,这里我们直接删除pod,deployment监测到pod被删除后会自动创建一个新的
# 先查看kubernetes-dashboard的pod名称 $ kubectl get pod -n kubernetes-dashboard # 删除该pod $ kubectl delete pod kubernetes-dashboard-7f99b75bf4-sbmdp -n kubernetes-dashboard
结束了!!!
- 至此我们的证书也搞定了,不过需要重新获取一下token,清理一下页面缓存。
- 这样就可以正常的使用和登录了。
最后说两句
- 这章节就到这里啦,希望大家有所收获。
- 后面我们还有一些关于K8s应用方面的小知识、小技巧:
- K8s 简单应用(pod,deployment)
- 应用互相访问、对外开放访问(service,nodePort)
- (nfs)磁盘挂载
- 配置文件(config-map)
- 使用K8s搭建自己的docker镜像仓库并且配备web-ui
- 有兴趣的小伙伴可以关注我哦!!!
- 谢谢大家!!!