使用Lens管理Kubernetes集群
作者 |黄豪杰 翻译
来源 | 新钛云服(ID:newtyun)
转载请联系授权(微信ID:zlm935177782)
Lens是用于Kubernetes集群的有用,有吸引力的开源用户界面。
随着越来越多的工作迁移到容器化环境,管理大量的容器以及它们与其他系统之间的连接变得越来越具有挑战性。随着容器化环境的规模和复杂性超出人们的管理能力,诸如Kubernetes之类的容器编排平台变得越来越重要。但是,此类平台面临着自己的管理挑战,这些挑战要求指标,可观察性和用户友好的界面来呈现其巨大的复杂性。
使用Lens
Lens自称为“ Kubernetes IDE”,是用于Kubernetes集群的有用,有吸引力的开源用户界面(UI)。开箱即用,Lens可以使用您的kubeconfig文件连接到Kubernetes集群,并将显示有关集群及其包含的对象的信息。Lens还可以连接到(或安装)Prometheus堆栈,并使用它来提供有关群集的指标,包括节点信息和运行状况。
群集上的工作负载概述
与Kubernetes的仪表板和OpenShift一样,Lens提供有关群集中对象状态和Prometheus收集的指标的实时更新。
开始吧
安装Lens很简单。AppImage软件包可用于Linux,并且二进制文件可用于macOS和Windows客户端。
AppImage是“适用于Linux的可下载文件,其中包含应用程序以及该应用程序需要运行的所有内容。” 打包为AppImage的应用程序就是这样-一个可以下载并运行的可执行文件。
可以从https://github.com/lensapp/lens/releases/tag/v3.5.0 页面下载Lens的AppImage。下载后,用chmod标记该文件为可执行文件,然后直接执行该文件或将其复制到$ PATH中的某个位置:
然后,就可以通过在命令行上键入lens来启动Lens。
将Lens连接到Kubernetes集群
启动Lens后,通过单击左上角的+图标并选择kubeconfig将其连接到Kubernetes集群。接下来,将出现一个下拉框,其中包含〜/ .kube / config文件中的任何Kubernetes上下文,或者您可以选择一个自定义上下文。由于kubeconfig文件中包含有关任何上下文的群集的群集和身份验证信息,因此,Lens会将每个上下文视为不同的群集。
与OpenShift如何在kubeconfig文件中为您切换到的任何项目(命名空间)自动创建上下文信息相比,这尤其无济于事。作为负责数百个集群的站点可靠性工程师(SRE),在设置Lens时,我有数十个“集群”可供选择。在实践中,我发现最好为任何集群选择默认上下文。Lens连接后,您就可以管理所有名称空间和工作负载,而无需全部添加它们。
连接上之后,Lens将显示大量关于您的集群的信息。您可以看到正在运行的工作负载:pods和部署、守护进程集、cron作业等。您还可以查看配置映射和秘密、网络信息、存储、名称空间和事件的信息。每个都可以让您深入到给定对象的信息中,甚至可以直接在Lens中编辑对象。
在群集上运行的Pod的详细信息。
收集有关集群的指标
Lens的一个非常有用的特性是,它可以连接到集群中安装的Prometheus栈,以收集关于集群及其节点的当前和历史数据。这对于在Lens UI中获得关于集群的大致信息非常好,而无需进入外部指示板。但是,所提供的信息并不全面——作为概述是很好的,但是您可能仍然希望使用可视化工具(例如带有更复杂仪表板的Grafana)来收集更专业的信息。
除了能够连接集群中提供的现有Prometheus栈外,Lens还可以为您安装应用程序。这对于在自己的homelabs上运行Kubernetes集群的爱好者来说非常有用,他们可以在一次点击中部署并连接到Prometheus。
通过Lens安装Prometheus
只需右键单击Lens UI左上角的群集图标(当然,在连接到群集之后),然后选择设置。在“设置”页面上的“功能”下,您将找到“度量”部分和一个用于安装Prometheus的按钮。单击“安装”将Prometheus堆栈部署到您的群集,Lens将自动检测其存在并开始显示指标。(这将花费一分钟,新的Prometheus必须首先收集一些指标。)
有关集群的硬件利用率指标
修复kube-state-metrics
尽管Prometheus可以在基于Raspberry Pi的群集上很好地安装,但kube-state-metrics服务将失败。当前,kube-state-metrics项目尚未构建AArch64 / ARM64映像,因此从该映像创建的Pod将连续崩溃,并在日志中显示exec格式错误消息。幸运的是,这个问题正在被跟踪,并且kube-state-metrics项目正在致力于构建基础设施来生成官方的ARM图像。不过,在此之前,您可以使用社区开发的映像,并直接使用Lens对kube-state-metrics部署进行补丁。
回到集群信息中,单击workload,并选择deployment。集群中所有Kubernetes部署对象的列表将出现在右侧的窗格中。您应该能够通过”Conditiions”下的红色条目(表明崩溃循环pod问题)轻松地选择kube-state-metrics部署。
选择kube-state-metrics部署,对象的详细信息将从叠加窗口的右侧滑出。在此窗口的右上角是铅笔图标。单击该图标将打开一个编辑器窗口,其中包含kube-state-metrics部署的YAML表示形式。向下滚动,然后编辑.spec.template.spec.containers.image值。默认情况下,该值指向官方镜像quay.io/coreos/kube-state-metrics:v1.9.5.
将此值替换为“ docker.io/carlosedp/kube-state-metrics:v1.9.5”,然后单击“保存”。这将触发部署,以推出具有ARM64架构的新kube-state-metrics pod,它们应该准备就绪,并开始直接向Prometheus报告这些指标。
Lens能让你看的更加直观
Kubernetes是复杂的,任何使它更容易可视化和使用Kubernetes集群的工具都可以降低新手的进入门槛,并使有经验的Kubernetes管理员的生活更加轻松。Lens为管理一个或多个集群提供了一个吸引人的、直观的、易于使用的UI,可以从10,000英尺的高度俯瞰各个Kubernetes对象的细节。Lens还可以帮助显示有关群集的指标,并使安装和使用Prometheus堆栈几乎可以通过按钮显示指标。
Lens给我留下了深刻的印象,并用它来管理自己的家庭实验室中的多个Kubernetes集群,希望您也觉得它有用。