Kubernetes 集群管理工具 K9S

2023-10-28 00:10

本文主要是介绍Kubernetes 集群管理工具 K9S,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击下方“民工哥技术之路”,选择“设为星标”

回复“1024”获取独家整理的学习资料!

通常情况下,我们自行部署 k8s 集群之后,要么使用 kubectl 命令做集群管理,要么使用 bashbroad 的 UI 管理界面来管理集群。最近,发现了一个基于终端且比较好用的项目,可以让我们快速查看、导航、观察并解决日常我们使用 Kubernetes 中的一些问题,这就是 k9s 项目(之前的文章中有过相关的一些介绍:轻松管理 Kubernetes 集群的7个工具)。

工具介绍

日常使用终端的你,可谓是一件利器!

k9s 是一个基于 curses 的全屏终端 UI 管理工具,可以与 Kubernetes 集群进行交互,可以观察系统资源,在各种资源之间切换,检查清单、日志、监控事件并执行 Pod 等,从而确保桌面空间不至于被大量终端窗格所占据。

k9s 会以特定时间间隔监控 Kubernetes 资源,默认为 2 秒,并允许查看自己集群中的内容。它可以一目了然地提供了运行中 Pod、日志和部署的可视化视图,以及对 Shell 的快速访问。以下是该工具的主要特性:

  • 信息触手可及

    • 跟踪 Kubernetes 集群中运行的资源的实时活动

    • 处理 Kubernetes 标准资源和自定义资源定义

  • 集群指标

    • 跟踪与 Pod,容器和节点等资源关联的实时指标

  • 高级特性

    • 提供标准的集群管理命令,例如日志,扩展,端口转发,重启

    • 定义自己的命令快捷方式,以通过命令别名和热键快速导航

    • 支持插件扩展 k9s 来创建属于自己的集群操作管理命令

    • 强大的过滤模式,允许用户向下钻取并查看与工作负载相关的资源

  • 外观可定制

    • 通过 K9s 皮肤定义自己的外观

    • 自定义/安排要按资源显示的列

Pulses-集群事务状态的顶级仪表板

XRay-挖掘群集资源并查看其依赖性

Pods -列出你的 Pods 状态和资源消耗

Logs-查看容器日志并与之交互

RBAC-查看您的集群上的授权的用户、方式等

安装

安装起来虽然比较简单,但是有点不怎么给力!

K9s 采用 Go 语言开发,可运行于 Linux,macOS 和 Windows 平台。K9s 安装非常的简单,官方已经为我们提供了各平台的二进制安装包,只需下载对应版本即可。

MacOS

# Homebrew
$ brew install derailed/k9s/k9s

Linux

# LinuxBrew
$ brew install derailed/k9s/k9s# PacMan
$ pacman -S k9s

Build

# Clone the repo
$ git clone https://github.com/derailed/k9s.git# Build and run the executable
$ make build && ./execs/k9s

Docker

# 指定k8s的配置文件路径
$ docker run --rm -it -v $KUBECONFIG:/root/.kube/config derailed/k9s# k8s配置文件的默认路径
$ docker run --rm -it -v ~/.kube/config:/root/.kube/config derailed/k9s

使用方式

k9s 和 dashboard 可以理解为 vim 和 idea 之间的关系!

K9s 自带有一些参数,可以使用该参数以不同的配置启动该工具,比如你需要看 Pod 相关的信息。

命令行启动参数

# 列出所有可用的CLI选项
$ k9s help# 获取有关K9s运行时的信息
$ k9s info
$ k9s info logs
$ k9s info configs# 在给定的名称空间中运行
$ k9s -n mycoolns# 运行K9s在pod视图中启动
$ k9s -c pod# 以只读模式启动K9s;该模式禁用所有修改命令
$ k9s --readonly

操作快捷键

简单使用

主要演示一些常用的命令参数的效果!

启动后,会弹出 k9s 的基于文本的用户界面。在没有指定命名空间标志的情况下,它会向你显示默认命名空间中的 Pod。通过快捷键来导航 k9s,可以随时使用方向键和回车键来选择列出的项目。可能会注意到 k9s 设置为使用 Vim 命令键,包括使用 J 和 K 键上下移动等。

  • k9s

0:#显示在所有命名空间中的所有 Pod
d:#描述所选的 Pod
l:#显示所选的 Pod 的日志
y:#查看 YAML 文件
e:#编辑 YAML 文件
d:#查看键映射描述
:svc:#跳转到服务视图
:deploy:#跳转到部署视图
:namespace:#跳转到命名空间视图
:cj:#跳转到 cronjob 视图,查看集群中计划了哪些作业
:rb:#跳转到角色绑定视图,用于基于角色的访问控制(RBAC)管理
  • k9s info

运行该命令,会告诉我们该应用程序要在哪里找它的配置文件。

$ k9s info____  __.________
|    |/ _/   __   \______
|      < \____    /  ___/
|    |  \   /    /\___ \
|____|__ \ /____//____  >\/            \/
Configuration:   /Users/jess/.k9s/config.yml
Logs:            /var/folders/5l/xxx/T/k9s-jess.log
Screen Dumps:    /var/folders/5l/xxx/T/k9s-screens-jess# 查看k9s的日志
$ tail -f /var/folders/5l/xxx/T/k9s-jess.log# 进入k9s的调试模式
$ k9s -l debug
  • k9s -n namespace

通过指定 namespace 命名空间,我们可以将注意力集中在给定的命名空间上。

配置文件

配置文件中主要定义一些使用上面的默认方式

K9s 将其配置保存在主目录 $HOME/.k9s 中的 .k9s 目录中。主要配置文件名为config.yml 并存储各种 K9s 特定位。k9s 将更新此文件以存储当前视图和名称空间信息。

# config.yml
k9s:# Represents ui poll intervals. Default 2secsrefreshRate: 2# Set to true to hide K9s header. Default falseheadless: false# Indicates whether modification commands like delete/kill/edit are disabled. Default is falsereadOnly: false# Toggles icons display as not all terminal support these chars.noIcons: false# Logs configurationlogger:# Defines the number of lines to return. Default 100tail: 200# Defines the total number of log lines to allow in the view. Default 1000buffer: 500# Represents how far to go back in the log timeline in seconds. Default is 5minsinceSeconds: 300# Go full screen while displaying logs. Default falsefullScreenLogs: false# Toggles log line wrap. Default falsetextWrap: false# Toggles log line timestamp info. Default falseshowTime: false# Indicates the current kube context. Defaults to current contextcurrentContext: minikube# Indicates the current kube cluster. Defaults to current context clustercurrentCluster: minikube# Persists per cluster preferences for favorite namespaces and view.clusters:cooln:namespace:active: cooliofavorites:- cassandra- defaultview:active: pofeatureGates:# Toggles nodeshell support. Allow K9s to shell into nodes if needed. Default false.nodeShell: false# Provide shell pod customization of feature gate is enabledshellPod:# The shell pod image to use.image: killerAdmin# The namespace to launch to shell pod into.namespace: fred# The resource limit to set on the shell pod.limits:cpu: 100mmemory: 100Mi# The IP Address to use when launching a port-forward.portForwardAddress: 1.2.3.4minikube:namespace:active: allfavorites:- all- kube-system- defaultview:active: dp

总结说明

对于日常经常需要操作 k8s 的运维人员来说却是很有帮助!

除了上述的功能以外,k9s 还有其他比较实用的功能,比如支持自建命令别名、自定义热键方式、支持自定义插件、还支持自定义终端界面显示以及资源显示顺序和组合。这些在官网中,给出了一些简单的示例说明和配置方式,基本可以做到,看了之后就可以自行 DIY 了。

了解你的工具并掌握做事情的“硬道理”很重要。还有一点很重要的是要记住,就管理而言,重要的是要更聪明地工作,而不是更努力。使用 k9s,就是我践行这个目标的方法。

作者: Escape 

链接: https://www.escapelife.site/posts/d91f0590.html

推荐阅读 点击标题可跳转

超详细!无坑部署最小化 K8S 集群,收藏了

CTO说了,再发现谁用kill -9关闭程序就开除

再见 RPM/DEB/TAR!下一代全平台安装程序来了!

从零开始掌握 HAProxy,也不难嘛!!!

进程、线程、进程池、进程三态、同步、异步、并发、并行、串行

超全整理!Linux 性能分析工具汇总

带你尝鲜!史上最轻量 Kubernetes 发行版

用 GitLab 做 CI/CD 是什么感觉,太强了

Docker部署Prometheus+Grafana监控系统

这篇关于Kubernetes 集群管理工具 K9S的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/289368

相关文章

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

Python+Tkinter实现Windows Hosts文件编辑管理工具

《Python+Tkinter实现WindowsHosts文件编辑管理工具》在日常开发和网络调试或科学上网场景中,Hosts文件修改是每个开发者都绕不开的必修课,本文将完整解析一个基于Python... 目录一、前言:为什么我们需要专业的Hosts管理工具二、工具核心功能全景图2.1 基础功能模块2.2 进

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl