K9s-Kubernetes的高级控制台

2024-03-20 09:30

本文主要是介绍K9s-Kubernetes的高级控制台,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

K9s Kubernetes CLI,可以个性化方式管理您的集群!

参考:

  • 源码,https://github.com/derailed/k9s
  • 使用方法,https://www.ctolib.com/amp/derailed-k9s.html
  • 原文链接:https://medium.com/@fernand.galiana/if-you-k8s-please-try-k9s-82ea30eb9aa3

Why K9s?

首先我们得面对现实——Kubernetes及其周边生态系统的运营方式正变得越来越复杂。集群管理需要大量工具加以配合。当我在集群之上进行日常运营时,和大家一样,我也需要观察自己使用的各种Kubernetes资源、深入了解配置、设置以及在任务没能按照预期完成时追踪问题。这个流程通常需要使用大量令人头痛、易于混淆的命令,安装/操作用途单一的CLI工具,同时配合大量自定义bash脚本。除此之外,还有各类运行状态调整需要考虑……

我知道,Kubernetes作为一款技术解决方案正面临着诸多争议,但我个人通常选择在本地开发代码并面向本地minikube实例,最后才进行Docker化转换。一般来讲,我不需要在自己的集群之上部署整个应用程序来处理任何给定服务。我发现自己的代码以及配置与资源清单是一种连续、而非独立存在的活动。因此,我的日常Kubernetes例程通常包括启动一个或多个终端窗口,其中又细分为各类选项卡/窗格,又有部分选项卡/窗格内容纳着用于监控资源的监控命令,外加用于发出kubectl并构建命令的开放CLI。

K9s工作状态

终于有一天,我对这个极为烧脑的流程做出一番考量,并意识到完全可以通过一款简单的CLI工具来观察Kubernetes资源,在各种资源之间切换,检查清单、日志、监控事件并执行Pod,从而确保自己宝贵的桌面空间不至于被大量终端窗格所占据……

因此,我编写了一款用于实现上述目标的工具!我将其命名为K9s,其工作效果如下图所示。 
640?wx_fmt=pngK9s Pod视图
这是一款基于终端的UI,会以特定时间间隔(默认为2秒)监控Kubernetes资源,并允许我查看自己集群中的内容。

我可以使用ctx<enter>命令在开发集群与生产集群之间快速导航。这款CLI还允许我按照命名空间进行过滤操作,并对大部分Kubernetes资源执行只读操作(这项功能仍在开发当中……)。如果集群卡住,我可以使用?<enter>命令列出所有受支持的资源。

K9s安装与使用

安装

K9s 可用于 Linux, OSX 和 Windows 平台。

  • 对于 Linux, Windows 和 Mac 的二进制安装包,下载到 release 页面。

  • 对于 OSX,可以使用 Homebrew安装:

    brew tap derailed/k9s && brew install k9s
  • 从源码构建 K9s,使用 go 1.12 以上版本,需要:

    1. Clone the repo

    2. Set env var GO111MODULE=on

    3. 添加下面行到 go.mod 文件

    4. replace (github.com/derailed/k9s => MY_K9S_CLONED_GIT_REPO
      )

       

    5. 构建并运行:  

    6. go run main.go

       


命令行
# List all available CLI options
k9s -h
# To get info about K9s runtime (logs, configs, etc..)
k9s info
# To run K9s in a given namespace
k9s -n mycoolns
# Start K9s in an existing KubeConfig context
k9s --context coolCtx

预先检查
  • K9s 使用 256 colors terminal mode. On `Nix system make sure TERM is set accordingly.

    export TERM=xterm-256color

K9s config file ($HOME/.k9s/config.yml)

K9s 保存配置 dot file 在 home directory。

NOTE: This is still in flux and will change while in pre-release stage!

k9s:# Indicates api-server poll intervals.refreshRate: 2# Indicates log view maximum buffer size. Default 1k lines.logBufferSize: 200# Indicates how many lines of logs to retrieve from the api-server. Default 200 lines.logRequestSize: 200# 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: pominikube:namespace:active: allfavorites:- all- kube-system- defaultview:active: dp

快捷键绑定

K9s uses aliases to navigate most K8s resources.

CommandResultExample
:alias<ENTER>View a Kubernetes resource:po<ENTER>
?Show keyboard shortcuts and help 
Ctrl-aShow all available resource aliasselect+<ENTER> to view
/filterENTER>Filter out a resource view given a filter/bumblebeetuna
<Esc>Bails out of command mode 
d,vel,...Key mapping to describe, view, edit, view logs,...d (describes a resource)
:ctx<ENTER>To view and switch to another Kubernetes context:+ctx+<ENTER>
:qCtrl-cTo bail out of K9s

转载于:https://my.oschina.net/u/2306127/blog/3048858

这篇关于K9s-Kubernetes的高级控制台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.

Java Stream 的 Collectors.toMap高级应用与最佳实践

《JavaStream的Collectors.toMap高级应用与最佳实践》文章讲解JavaStreamAPI中Collectors.toMap的使用,涵盖基础语法、键冲突处理、自定义Map... 目录一、基础用法回顾二、处理键冲突三、自定义 Map 实现类型四、处理 null 值五、复杂值类型转换六、处理

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group