12项工具使Kubernetes更易用:可视化、监视、命令行、多集群管理...

zhangxxxww 2020-05-13

即将开播:5月14日,Jenkins在K8S下的三种部署流程和实战演示

利用这些Kubernetes 工具的优势来改善监视,命令行操作,多集群管理等。

12项工具使Kubernetes更易用:可视化、监视、命令行、多集群管理...

Kubernetes已成为大规模部署容器化应用程序的标准方法(许多人会说是标准方法)。但是,如果Kubernetes帮助我们驯服了庞大而复杂的容器部署,那么有什么可以帮助我们驯服Kubernetes的呢?它也可能是复杂,混乱且难以管理的。

随着Kubernetes的发展壮大,毫无疑问,它的许多问题都将在项目内部得到驯服。但是有些用户并没有等着Kubernetes变得更容易使用,他们已经针对生产中Kubernetes的许多常见问题推出了自己的解决方案。

Goldpinger:可视化Kubernetes集群

人类是视觉生物。图形和图表使我们更容易理解全局。考虑到Kubernetes集群的范围和复杂性,可以使用可以获得的所有视觉帮助。

彭博社的技术部门开源的这个有趣的名字叫Goldpinger的工具很简单,它在Kubernetes集群中运行,并显示节点之间关系的交互式地图。健康的节点显示为绿色,不健康的节点显示为红色。只需单击一个节点以获取详细信息。可以使用Swagger自定义API,以引入其他报告,指标或其他集成。

K9s:全屏Kubernetes CLI UI

管理员喜欢“单一窗格”实用程序。K9s是Kubernetes集群的全屏CLI UI。它可以快速查看正在运行的Pod,日志和部署的视图,并可以快速访问Shell。请注意,将需要授予用户Kubernetes在用户和名称空间级别的读取特权,以使K9正常工作。

Kops:Kubernetes集群的命令行操作

Kops由Kubernetes团队开发,可让命令行管理Kubernetes集群。它支持在AWS和GCE上运行的集群,以及正在运行的VMware vSphere和其他环境。除了自动进行设置和拆卸过程外,Kops还可以帮助进行其他类型的自动化。例如,它可以生成Terraform配置,以允许使用Terraform重新部署群集。

Kubebox:Kubernetes的终端控制台

Kubebox是Kubernetes的高级终端控制台,不仅为Kubernetes及其API提供了shell。它提供内存和CPU利用率,窗格列表,运行日志和配置编辑器的交互式显示。最重要的是,它可以作为适用于Linux,Windows和MacOS的独立应用程序使用。

Kube-applier

作为Kubernetes服务运行,Kube应用程序从Git存储库中获取Kubernetes集群的声明性配置文件,并将其应用于集群中的Pod。每当对定义文件进行更改时,都会将它们从存储库中提取并应用于相关的广告连播。本质上,适用于Kube的应用程序类似于Google的Skaffold,但它用于管理整个Kubernetes集群而不是单个应用程序。

Kube-applier可以按计划或按需应用配置更改。它会在每次运行时记录其行为,并提供与Prometheus兼容的指标,因此您不必担心它如何影响集群行为。

Kube-ps1:Smart Kubernetes命令提示符

不,Kube-ps1并不是适用于Kubernetes的第一代Sony PlayStation模拟器(尽管那很漂亮)。这是对Bash的简单补充,可在提示中显示当前的Kubernetes上下文和名称空间。Kube-shell包括此功能以及许多其他功能,但是如果只想提供更智能的提示,Kube-ps1几乎不会带来任何开销。

Kube-prompt:交互式Kubernetes客户端

对Kubernetes CLI的另一种最小但有用的修改,Kube-prompt允许输入相当于与Kubernetes客户端的交互式命令会话的内容。Kube提示不必键入kubectl来为每个命令添加前缀,并为每个命令提供带有上下文信息的自动完成功能。

Kubespy:Kubernetes资源的实时监控

Pulumi的Kubespy是一种诊断工具,可实时跟踪对Kubernetes资源的更改,从而提供了一种实时的文本视图仪表板。例如,可以在启动时查看Pod状态的变化:将Pod定义写入Etcd,将Pod计划在节点上运行,在该节点上的Kubelet创建Pod,最后将Pod标记为正在运行。Kubespy可以作为独立的二进制文件运行,也可以作为Kubectl的插件运行。

Kubeval:验证Kubernetes配置

Kubernetes的YAML配置文件本来应该是人类可读的,但这并不总是意味着它们可以被人类验证。很容易错过逗号或胖手指的名字,直到为时已晚才发现它。最好使用Kubeval。Kubeval在本地使用或集成到CI/CD流水线中,接受Kubernetes YAML配置定义并报告其有效性。它可以产生JSON或TAP格式的输出,甚至可以解析Helm图表配置中引用的源模板,而无需其他提示。

Kube-ops-view:多个Kubernetes集群的仪表板

Kubernetes有一个有用的仪表板,可用于通用监控,但是Kubernetes社区正在尝试其他方法,以向Kubernetes管理员有用地呈现数据。Kube-ops-view是这样的一种实验。它提供了以图形方式呈现的多个Kubernetes集群的概览视图,因此可以一目了然地看到集群中整个CPU和内存使用率以及Pod的状态。请注意,它不允许调用任何命令;仅用于可视化。但是,它提供的可视化效果惊人且高效,是为运营中心中的大屏监控所生。

Rio:Kubernetes的应用程序部署引擎

Rio是Rancher Labs的一个项目,它在Kubernetes中实现了常见的应用程序部署模式,例如从Git和A/B持续交付或蓝/绿部署。每次提交提交时,Rio都可以部署新版本的应用程序,从而有助于管理DNS,HTTPS和服务网格等复杂性。

Stern和Kubetail:Kubernetes的日志尾矿

通过Stern,可以从Kubernetes中的容器和容器中生成颜色编码的输出(按照tail命令)。这是一种将来自多个资源的所有输出传输到单个流中的快速方法,一目了然。同时,可以一目了然地(颜色编码)来区分流。

Kubetail同样将来自多个Pod的日志聚合到单个流中,并对不同Pod和容器进行颜色编码。但是Kubetail是Bash脚本,因此只需要一个shell。

相关推荐