• Post author:
  • Post category:运维
  • Post comments:2评论
  • Reading time:10 mins read

介绍

Lens是一个开源的用于管理Kubernetes集群的IDE,相比于其他任何可视化管理软件更加好用,功能十分强大,通过Lens,我们可以很方便的管理多个Kubernetes集群。

Lens支持多平台安装,相比于其他可视化管理工具的优势如下:

  • 多集群管理:支持上百个集群的管理
  • 独立应用程序:不需要在集群内安装任何部署集
  • 实时状态监控:集群负载的实时可视化监视
  • 内置kubectl指令:不需要单独安装kubectl即可在开发机上通过kubectl远程使用命令行
  • 内置helm应用商店:只需点击即可一键安装部署应用
  • 性能优势:优化性能以处理大型集群,至少可运行25kPod

本文仅介绍Lens的使用方法,不介绍K8S中的各种概念,如需学习请参考《一关系图让你理解K8s中的概念,Pod、Service、Job等到底有啥关系》

安装并连接集群

到官网下载对应平台的安装包:Lens官网

安装完成后打开Lens,本文使用的是Lens5,主界面如下:

点击左上角的菜单图标,打开CATEGORIES列,选择Clusters选项:

之后看界面的右下角,可以看到一个“+”图标:

点击该图标以进行添加集群:

Lens通过kubeConfig文件导入K8S集群信息,该文件在你集群Master节点用户目录下的.kube文件夹下,如果你安装k8s时使用的用户是root,那么该文件的路径是/root/.kube/config,注意如果你是通过kubeadm安装的k8s,那么该文件默认在/etc/kubernetes/admin.conf路径下,简单来说就是如果有admin.conf就优先用这个文件,如果没有就去.kube文件夹内找,接下来需要拷贝文件内容到Lens里面。

cat /etc/kubernetes/admin.conf

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: xxxxxx
    server: https://172.26.65.240:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: yyyyy
    client-key-data: zzzzzz

将内容粘粘贴到Lens内后先不要急着添加,注意这里的server默认是显示你集群Master的内网ip,这里需要更改为你的公网Ip,端口号6443不要改动,修改完成后点击Add clusters添加集群。

注意如果你的K8S部署在云服务器的话,请检查服务器安全组6443端口是否已经打开。

添加完成后点击列表内新增的条目,可以看到集群信息概览,这些概览信息都来自上述的KubeConfig文件:

点击显示KA的大图标或右上角的链接按钮以连接到你的K8S集群。

链接完成后显示如下界面:

使用介绍

先介绍左侧目录概要,本文不在此详述K8S的各种资源概念,仅介绍Lens的使用方式。

Yaml编辑

先介绍如果编辑和创建yaml,界面下方有一个工具栏:

点击后选择Create Resource。

之后可以点select template来选择资源模板,初期学习k8s对资源yaml编写不熟悉时,使用模板来编写帮助很大:

编写完成后点击Create或Create & Close,会对yaml格式进行检查,如果合格的话就会被Create,如果你对已经存在的yaml编辑的话,这里会变成save按钮,基本等同于apply -f命令。

远程Kubectl

如上方式点击底部工具栏选择Terminal session打开控制台对话窗:

在此你可以像在节点服务器内一样使用kubectl执行命令操作集群,当你想以传统方式操作K8S时(比如edit yaml)可以在这里进行操作。

Cluster

这里显示你集群的总体概览,可以查看Master和Worker的Cpu与Memory使用情况,也可以看到集群暴露出的问题。

默认这里会显示:

Metrics are not available due to missing or invalid Prometheus configuration.

Right click cluster icon to open cluster settings.

这是因为你的集群还没有安装监控插件,你可以选择自己安装Prometheus等监控插件,也可以选择Lens自带的监控插件。

如果你选择安装Lens自带的监控插件,那么首先你需要右键点击左侧的KA图标,选择setting,点击Extensions下的Lens Metrics选项:

打开这三项然后点击Apply,这时Lens会自动安装部署集到你的K8S集群内,Namespace为lens-metrics,你可以先以习惯的方式检查pod是否在Running状态,等待些许时间再返回到 Cluster 就可以看到监控画面已经显示出来了:

Nodes

nodes选项显示你集群内所有节点的概览状态,如果你在前文中安装了监控插件,那么这里也可以看到你集群内每个节点的资源状态,除此之外还可以看到节点的Taints(污点)数量、Roles(节点角色)、K8S版本和运行时间。

点击任意节点可以看到该节点的概览:

也可以通过右上角的按钮列很方便的连接到节点shell等。

往下拉滚动条可以看到该节点运行的全部pod状态:

再次点击可以进入pod的概览,具体介绍在下文详述。

WorkLoads

这里显示的是集群内的工作负载,也就是Deployments、DaemonSets、Jobs等等,Pod的具体运行状态都在这里显示。

先来看看Overview:

这里显示了你集群内全部工作负载的运行状况,绿色为Running等,黄色为Pending等,红色为Error等状态,也可以看到Pod的events集合显示,点击即可查看详细信息。

然后我们再看看Pods:

这里列出了你集群内【全部/当前】命名空间的Pod,切换命名空间再右上角的Namespace下拉菜单。

Containers的绿色显示Pod内的容器组运行状态,绿色运行正常,灰色说明该容器状态可能为Completed,上图内的灰色容器是一个Init Container,可以看到Status为Completed,exit code:0:

点击一个Pod的详细信息后,可以看到该pod的概览,类似kubectl describe命令,下拉可以看到该pod的events,通过此种方式可以很方便的查看pod的异常原因。

除此之外,右上角的按钮列分别可以attached、shell和logs,也可以编辑pod的yaml,可以很方便的连接到pod内的容器和跟踪日志信息,等同kubectl logs -f。

Deployments

点击deployment可以看到集群内的全部deployment部署集:

点击一条可以查看概览信息:

注意右上角按钮可以对pod副本进行伸缩,而Deploy Revisions可以对该部署集进行版本回滚等操作,下方pods为该部署集正在运行的pod状态。

其他的工作负载与Deployment区别不大,在此不再详述。

Configuration

这里最重要的两项就是ConfigMaps和Secrets。

你可以在此配置你项目的机密信息和配置文件,比如.Net应用的appsettings:

也可以在Secrets内配置你的数据库密码:

ConfigMap和Secrets的具体概念也不在此详述。

Network

此处包含了集群内的Service资源和Ingress应用路由配置等网络配置资源。

Service如下:

这里会展示Service的ClusterIP,Ports和NodePort,还有Selector,点击一条打开概览,可以查看和Selector匹配到的Endpoint。

Ingresses如下:

这里没啥好说的,我这里使用的是Ingress-Nginx,这里显示了ingress匹配的service。

Storage

这里可以对集群内的PV、PVC、StorageClass进行管理。

我这里主要使用了阿里云NAS作为后台存储服务,所有pvc向storage class动态申请存储空间。

在pvc内可以看到其挂载到的pod。

Namespaces

顾名思义,这里是集群内的命名空间,注意如果你删除了一个命名空间,那么该命名空间下的资源会全部被销毁,请谨慎操作。

Apps、AccessControl、CustomResources

这里分别是Helm应用商店,和授权管理,还有自定义资源管理,都属于比较进阶的概念了,如有兴趣可以自行查看,笔者也没有研究透彻,就不做概述了。

结语

K8S IDE —— Lens APP的简单安装与使用就介绍到这里了,本文只简要概括了该工具的初级使用方式方便k8s初学者入门,更高级的操作和设置还请各位自行探索。

葫芦

葫芦,诞生于1992年8月11日,游戏宅,胶佬,爱好摸鱼,一个干过超市收银,工地里搬过砖,当过广告印刷狗,做过电焊铁艺的现役.Net程序员。

这篇文章有 2 个评论

发表回复