提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在我的日常工作当中,由于我需要同事管理N个K8S集群,管理过K8S集群的都知道,这里管理的成本有多高,一直在寻找简单,好用的K8S管理工作,也简单看过使用过一些,如:K9S、Rancher等,但都发现由于功能非常全和多,会导致学习成本较高,对于新手上手成本非常高。
最近发现Lens Desktop,对于新手来说上手成本非常低,可以快速上手使用,因此最终选用了这个工具;本文也是介绍了我自己整体的使用和安装指南。
以下是本篇文章正文内容,下面案例可供参考
一、Lens Desktop是什么?
Lens 是一个 Kubernetes 平台,提供与 Kubernetes 集群无缝交互的工具,以及为团队和组织内安全有效的工作提供环境。
优点:
- 可视化界面:提供用户友好的图形界面,易于操作。
- 多集群支持:可以同时管理多个 Kubernetes 集群。
- 集成工具:支持集成 Prometheus、Grafana 等监控工具。
缺点:
- 桌面应用:作为桌面应用,可能不适合所有用户,尤其是在大型团队中。
- 资源占用:可能会消耗较多的本地资源。
二、使用步骤
1.Lens安装
Lens 的安装非常简单,可以直接在官网找到安装包,直接下载安装即可,官网:Install Lens Desktop - Lens Documentation
博文这里直接下载使用的是windows桌面版本的,主要在于博主使用的时候,大多还是在windows系统上来对K8S集群进行管理的。
2.Lens的使用
PS:博主使用的版本信息:
安装完成后,界面如下:
可看到会有一个默认的demo项目,给提供大家做使用展示以及一些简单的操作体验;
2.1 如何将自己需要管理的K8S集群加入到管理Lens
进入自己的K8S集群中,输入命令:
kubectl config view --minify --raw
可以得到一个这样的结果:
打开lens的安装目录,创建一个无后缀的文件,名字可以随便命名,如下:
将上一步在K8S集群执行命令等到的结果内容,copy到创建的无后缀的文件中,如下:
最后,我们打开lens的桌面软件,点击Local Kubeconfigs后面的+(Add Kubeconfigs)
会自动打开文件管理器选择页面,直接选择我们上一步创建的无后缀的已经保存了K8S配置的文件,如下:
选择了之后,点击Sync之后,就可以直接在Lens的管理页面中直接看到新添加的K8S集群信息了
PS:安装Lens的windows必须和添加的集群信息server地址能正常通信,若集群信息的server地址为域名,那则需要配置本地hosts,如下图:
2.2 如何重命名和自定义K8S集群信息
找到想要重命名或需要修改信息的K8S集群,点击右键,得到下图:
选择“Show Cluster Settings”,则可进入集群配置页面:
其中CLUSTER NAME:即为展示的集群信息名称,点击后方的···,则可以上传自定义的图标;
其他的配置,博主这边并没有用到,所以这里就不介绍了,其他小伙伴可自行去研究使用。
3.Lens如何添加多集群
其实在2.1的末尾的提示中,也有简单说明过,因为Lens其实就是通过配置文件中的集群加密密钥信息、server信息来实现K8S的调度,仔细的同学就会发现,很多K8S集群的server信息其实是会重复的,尤其是走同一个模板部署方案部署出来的,而且在部署的时候没有单独配置的,就一定会重复,这样就会导致类似Lens这类管理工具,来管理的时候,无法区分不同的K8S集群,所以这里就需要针对重复的集群,来做处理,将集群的server信息改成不一致的即可,具体操作如下:
获取当前集群初始化配置
kubectl -n kube-system get configmap kubeadm-config -o jsonpath='{.data.ClusterConfiguration}' > kubeadm-init.yaml
使用命令
cat kubeadm-init.yaml
可以看到下图:
vi kubeadm-init.yaml
我们直接编辑这个文件,在certSANs里面加入研发网能够访问的k8smaster的IP,或者新增和其他已经在lens中的集群信息的hosts不一致的hosts即可,编辑完成后,保存即可;
备份证书
mv /etc/kubernetes/pki/apiserver.{crt,key} .
重新生成证书
kubeadm init phase certs apiserver --config kubeadm-init.yaml
可以得到下图(PS:不一定完全一样,因为集群的IP、hosts信息都不一样)
找到apiserver运行节点
kubectl -n kube-system get pod
如下图:
PS:不一定完全一样,宗旨就是找到apiserver所在的nodes。
通过docker杀掉容器
docker ps | grep kube-apiserver
docker kill 0967f1347df3
镜像杀掉后,通过前面的命令,来看apiserver是否正常running
kubectl -n kube-system get pod
得到所有apiserver镜像正常running后,通过下面的命令来验证结果
kubectl --kubeconfig ~/.kube/config get ns
自此改造完成,我们可以重新获取kubeconfig配置,执行命令:
kubectl config view --minify --raw --flatten
后续就和2.1完全一样的