侧边栏壁纸
博主头像
汪洋

即使慢,驰而不息,纵会落后,纵会失败,但一定可以达到他所向的目标。 - 鲁迅

  • 累计撰写 212 篇文章
  • 累计创建 81 个标签
  • 累计收到 160 条评论

6 种 K8S 协同工具,助你提高工作效率

汪洋
2023-05-09 / 0 评论 / 1 点赞 / 432 阅读 / 2,447 字

a7c0531243ca7307e5701318673bc8df.png

Kubernetes 是一个功能强大的容器编排平台,用于自动部署、管理和扩缩容复杂的应用程序。官方提供了一款命令行工具 Kubectl,允许用户使用 CLI (命令行界面)与 Kubernetes 集群进行交互。

这些年来,Kubectl 已经与开源社区开发的其他工具深度结合,不仅改善了用户体验,也让我们的生产工作变得更加高效。下面,我将介绍几个方便大家使用 Kubernetes 的有力工具,供大家参考。

为了方便测试以下工具,建议在本机使用 kind 创建一个 Kubernetes 集群,使用 kind 可以便于安装 Kubernetes 集群,并且在结束时容易清理。(随意)

# install kind
brew install kind
# create cluster
kind create cluster --name playground --image kindest/node:v1.21.14

一、K9S

K9s 是一个可以和 K8s 集群进行交互的终端 UI 。它可以轻松浏览你的 namespace、services 、 deployments 等,并持续监视 Kubernetes 的变化,使得管理应用程序变得更加容易。

brew install k9s

cedb0e09d38040d689257ab4492b5b73.png

二、Popeye

Popeye 是一个开源工具,可以扫描实时的 Kubernetes 集群,并且可以报告部署过的资源及配置的潜在问题。它根据部署的内容来清理群集。通过扫描集群检测出配置错误,并帮助我们保证最佳实践。此外,如果我们的 Kubernetes 集群过载,它会报告分配过多/分配不足的资源,在集群容量不足时发出警告。


# Install
brew install derailed/popeye/popeye
# Run
popeye

f081567fba9b7823c2b4524bc17965e0.png

三、Kube-bench

Kube-bench 也是一个方便使用的工具,通过 CIS Kubernetes Benchmark 测试中的记录,检查 Kubernetes 集群是否安全部署。

# Run kube-bench as a job and inspect the logs
curl https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml | kubectl apply -f -
# get the logs, replace <kube-bench-95cf7> with your pod id
kubectl logs kube-bench-95cf7 -f

Job 运行后,只需选择容器并检查日志即可。同样的,我们在处理群集时可以使用 K9s 快速观察群集。

098ca4dd4065a2f2aa0cfc9bb4a74266.png

四、Kubectx Kubens and fzf

通常情况下,你可能会拥有多套集群,开发/测试/生产,本地或云集群。我们可以使用 Kubectx 和 Kubens 快速地在不同的集群和 namespace 直接切换。除此之外, fzf 提供了交互的方式来切换上下文,因此你不必记住任何集群或 namespace。

# Install kubectx, kubens, fzf
brew install kubectx fzf
# Switch between namespaces
kubens

9f499ee25d7dfd63d3562fec1bce7f5f.png

五、Stern

Stern 允许我们在 Kubernetes 上使用多个 Pod ,帮助我们从不同的 Pod 收集日志,并通过颜色进行区分。

该查询是一个正则表达式,不需要指定确切的 ID,也可以轻松筛选出 Pod 名称。如果一个 Pod 被删除,它就会从尾部移除,如果添加了一个新的 Pod,它会自动被拖到尾部。当一个 Pod 包含多个容器时,Stern 也可以直接查看 Pod 中所有容器的日志,而不必一个个单独查看。

# Install
brew install stern
# stern <keyword>
stern deploy

在此示例中有 3 个副本,我们可以通过选择带有关键字的 Pod,来聚合日志。如图所见,每个 Pod 对应不同的颜色。

4ef35b601c8b6d8cbd2835c012f30e44.png

六、Bat

Bat 可以为我们在 shell 环境中查看 yaml 时,提供语法高亮提示。

# Install bat
brew install bat# Explore themes
bat --list-themes# Bat a file
bat deployment.yaml

973c62990f549eb10445915a80e43207.png

希望本文对大家有用,更多与 Kubernetes 协同好用的软件工具,等待我们一起探索和发现。

参考链接:

[1] kind (k8s.io): https://kind.sigs.k8s.io/

[2] GitHub - derailed/k9s: Kubernetes CLI To Manage Your Clusters In Style!: https://github.com/derailed/k9s

[3] GitHub - derailed/popeye: A Kubernetes cluster resource sanitizer: https://github.com/derailed/popeye

[4] GitHub - aquasecurity/kube-bench: Checks whether Kubernetes is deployed according to security best practices as defined in the CIS Kubernetes Benchmark: https://github.com/aquasecurity/kube-bench

[5] GitHub - ahmetb/kubectx: Faster way to switch between clusters and namespaces in kubectl: https://github.com/ahmetb/kubectx

[6] GitHub - wercker/stern: Multi pod and container log tailing for Kubernetes: https://github.com/wercker/stern

[7] GitHub - sharkdp/bat: A cat clone with wings: https://github.com/sharkdp/bat

9292cb0b93db5ad0a45da9b5698fd001.png

作者:程锐
云原生研究院产品经理

0

评论区