我们都知道 kubectl,但是随着过去几年 Kubernetes 的广泛使用,出现了许多新兴的客户端工具,这些工具能够改善你对 Kubernetes 集群的日常交互。
本文将简单介绍这类客户端应用,了解它是如何帮到你的。
K9s
K9s 提供了一个基于终端的 UI 与 Kubernetes 集群进行交互。这个 UI 看上去像是持续运行的 Linux 命令,例如 top。k9s 持续监控 Kubernetes 集群的变化,并允许你与 Kubernetes 资源进行交互。
类型:独立运行(后台使用 kubectl )
安装:在发行页[1]提供适用于 Linux,Windows 和 Mac 安装的二进制 tar 压缩包。
Kubernetes 版本:目前 k9s 要求 Kubernetes 的版本不低于 1.13。
社区:k9s 非常受欢迎,并且有一个很棒的社区共同努力以进一步优化它。
特点:支持插件,可让你定义自己的集群命令。
Tubectl
Tubectl 是对 kubectl 简单但强大的封装,它降低了使用上下文、命名空间和智能匹配资源的复杂性。Tubectl 允许在上下文和命名空间之前无缝切换,例如对于命令 kubectl --context staging 或 kubectl --context production ,现在只需要输入 tubectl @st 或 tubectl @prod 。同样,在命令 kubectl get pods -n kube-system 中 kube-system 也可以被替换,你只需输入命令 tubectl get pods +sys。
类型:独立运行(后台使用 kubectl)
安装:在发行[2]页提供适用于 Linux,Windows 和 Mac 安装的二进制 tar 压缩包。
Kubernetes 版本:目前 tubectl 要求 Kubernetes的版本不低于 1.13。
社区:tubecctl 社区挂在 slack.reconquest.io。
webkubectl
Web Kubectl 可以帮助你管理 Kubernetes 证书并在 Web 浏览器中运行 kubectl 命令,从而不必在本地 PC 或其他服务器上安装 kubectl,而且 Web Kubectl 可用于团队。
类型:独立运行(后台使用 kubectl)
安装:使用 Docker 镜像,安装简单。
$ docker run --name="webkubectl" -p 8080:8080 -d --privileged kubeoperator/webkubectl
Kubernetes 版本:与支持 kubectl 的 Kubernetes 集群兼容。
社区:webkubectl 的讨论目前在 GitHub Repo[3] 上进行。
特点:单个 webkubectl 部署的多会话支持,以及完全的会话隔离。
kube-prompt
kube-prompt 是一个具有自动完成功能的交互式 Kubernetes 客户端。它使用与 kubectl 相同的命令,但是不需要输入 kubectl 前缀。因此,使用这个客户端不需要额外的学习成本。
类型:独立运行(后台使用 kubectl)
安装:在发行页[4]提供适用于 Linux,Windows 和 Mac 安装的二进制 tar 压缩包。
Kubernetes 版本:与支持 kubectl 的 Kubernetes 集群兼容。
社区:kube-prompt 的讨论目前在 GitHub Repo[5] 上进行。
kubectl-tree
这是一个 kubectl 插件,可让你以普遍使用的树状图浏览 Kubernetes 对象之间的关系。树状图可以很好地直观地展示 Kubernetes 集群上存在的各种资源及其关系。
类型:kubectl 插件
安装:使用 krew 插件管理器将 kubectl-tree 安装到 kubectl 上,参考文档[6]。
Kubernetes 版本:与支持 kubectl 的 Kubernetes 集群兼容。
社区:GitHub 标星近1.5k的 kubectl-tree 非常受大家欢迎,关于它的讨论都在 GitHub Repo[7]。
其他有趣的 kubectl 插件
kubectx,kubectx 是管理 kubectl 并在其上下文之间切换的实用程序。参考:https://github.com/ahmetb/kubectx
kubens,kubens是在 Kubernetes 命名空间之间切换的实用程序。参考:https://github.com/ahmetb/kubectx/#kubens1
kubectl trace,kubectl trace是一个 kubectl 插件,可让你在 Kubernetes 集群中调度 bpftrace 程序的执行。参考:https://github.com/iovisor/kubectl-trace
ksniff,一个 kubectl 插件,利用 tcpdump 和 Wireshark 在 Kubernetes 集群中的任何 Pod 上启动远程捕获。参考:https://github.com/eldadru/ksniff
kubectl-unbound-pvc,一个小插件,用于列出未处于 Bound 状态的持久卷声明。参考:https://github.com/ishantanu/kubectl-unbound-pvc
相关链接:
https://github.com/derailed/k9s/releases
https://github.com/reconquest/tubekit/releases
https://github.com/KubeOperator/webkubectl/issues
https://github.com/c-bata/kube-prompt/releases
https://github.com/c-bata/kube-prompt/issues
https://github.com/ahmetb/kubectl-tree#installation
https://github.com/ahmetb/kubectl-tree/issues
原文链接:https://developer.sh/posts/kubernetes-client-tools-overview
基于Kubernetes的DevOps实战培训
基于Kubernetes的DevOps实战培训将于2020年6月19日在上海开课,3天时间带你系统掌握Kubernetes,学习效果不好可以继续学习。本次培训包括:容器特性、镜像、网络;Kubernetes架构、核心组件、基本功能;Kubernetes设计理念、架构设计、基本功能、常用对象、设计原则;Kubernetes的数据库、运行时、网络、插件已经落地经验;微服务架构、组件、监控方案等,点击下方图片或者阅读原文链接查看详情。