您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 云计算 > 正文

管理Kubernetes部署环境的15个工具

发表于:2018-11-08 作者:布加迪编译 来源:51cto

Kubernetes已成为大规模部署容器化应用程序的一种标准方式,许多人会说它是唯一的标准方式。但如果说Kubernetes帮助我们管理庞杂的容器部署环境,又有什么工具能帮助我们管理Kubernetes呢?毕竟,管理起来复杂、凌乱又棘手。

本文着重介绍以各种方式简化Kubernetes的10个项目,从简化命令行交互、简化应用程序部署语法、与AWS集成到为多个集群提供窗口,不一而足。

管理Kubernetes部署环境的15个工具

Bitnami Cabin:面向iOS和Android的Kubernetes仪表板

现代的Web应用程序或服务都会有某种移动界面。Cabin为Kubernetes管理员提供了可从iOS或Android智能手机访问的Kubernetes仪表板。标准的Kubernetes仪表板拥有的许多功能都可以从Cabin来启动,包括Helm图表、扩展部署、读取pod日志以及访问Kubernetes托管的基于Web的应用程序。

Kedge:简洁的Kubernetes部署定义

Kubernetes最饱受诟病的地方是,它的清单或应用程序定义复杂又冗长。编写简单,维护麻烦,难怪人们求助于第三方工具。Kedge提供了一种更简单、更简洁的语法。你向Kedge提供Kubernetes定义文件的简单版本,Kedge就可以将这个简单的定义扩展为完整的Kubernetes定义。与Koki Short(见下文)不同,Kedge并不将模块化语法用于声明文件;它只是将应用程序定义简化为常见的快捷方式。

Koki Short:易于管理的Kubernetes清单

就像上面的Kedge,Koki Short这个项目旨在改进应用程序定义或清单在Kubernetes中工作的方式。与Kedge定义一样,Short定义使用缩写的语法来描述Kubernetes pod,可以翻译成完整的语法,并翻译回来。与Kedge定义不同,Short定义也是模块化的,这意味着来自一个Short声明的细节可以在其他声明中重复使用,因此可以简洁地定义有共同元素的许多pod。

Kops:面向Kubernetes集群的命令行操作

Kops由Kubernetes团队开发,让你可以从命令行管理Kubernetes集群。它支持在AWS和GCE上运行的集群,支持VMware vSphere和其他环境的功能在开发之中。除了使安装和拆卸过程自动化外,Kops还有助于其他类型的自动化。比如,它可以生成Terraform配置,以便使用Terraform重新部署集群。

Kubebox:面向Kubernetes的终端控制台

作为面向Kubernetes的高级终端控制台,Kubebox不仅为Kubernetes及其API提供了强化的shell,还提供内存和CPU利用率的交互式图形以及pod、运行日志和配置编辑器的列表。最棒的是,它可作为面向Linux、Windows和MacOS的独立应用程序来使用。

Kube-monkey:面向Kubernetes的Chaos monkey

对系统进行压力测试的一种可靠方法是随机搞乱。这就是Netflix的Chaos Monkey背后的理念,这是一种混沌工程工具,可随机终止在生产环境中运行的虚拟机和容器,“鼓励”开发人员构建更具弹性的系统。Kube-monkey实现了同样的基本理念对Kubernetes集群进行压力测试。工作原理是,随机终止集群中你专门指定的pod,它们可进行微调,以便在特定的时间窗口内运行。

Kube-ps1:智能的Kubernetes命令提示符

不,Kube-ps1不是Kubernetes的第一代索尼PlayStation模拟器,它是Bash的简单补充,可在提示符下显示目前的Kubernetes上下文和命名空间。除此之外,Kube-shell还包括其他许多功能,但如果你只想要智能的提示符,Kube-ps1可满足要求,且开销很小。

Kube-prompt:交互式Kubernetes客户软件

Kube-prompt是对Kubernetes CLI所作的另一个细小但实用的修改,让你可以用这个Kubernetes客户软件输入交互式命令会话。Kube-prompt让你不必输入kubectl添加每个命令的前缀,并为自动完成(autocomplete)提供了每个命令的上下文信息。

Kube-shell:面向Kubernetes CLI的Shell

Kubernetes命令行功能强大,但与任何命令行应用程序一样,选择选项可能很繁琐。 Kube-shell将标准Kubernetes命令行包装在集成的shell中,该shell提供了常用命令的自动完成和自动建议,包括Kubernetes服务器提供的建议(比如针对服务名称)。它还为你提供了更强大的命令历史功能、vi样式的编辑模式,以及用户、命名空间、集群和其他针对特定安装的细节等方面的上下文信息。

Kubespy:实时监控Kubernetes资源

Pulumi的Kubespy这个诊断工具让你可以实时跟踪Kubernetes资源的变更,为你提供了一种文本视图仪表板。比如说,可以在pod启动时观察其状态的变化:pod定义被写入Etcd、pod经调度后在节点上运行、节点上创建pod的Kubelet,以及最后被标为“运行中”的pod。Kubespy可作为独立的二进制文件或作为Kubectl的插件来运行。

Kubernetes Ingress Controller for AWS

Kubernetes通过一项名为Ingress的服务为集群提供外部负载均衡和网络服务。AWS提供负载均衡功能,但并不自动将这些服务耦合到Kubernetes的工具。Kubernetes Ingress Controller for AWS填补了这一不足。Ingress Controller自动为集群中的每个Ingress对象管理AWS资源,为新的ingress资源创建负载均衡器,为已移除的资源删除负载均衡器,并利用AWS Cloud Formation确保集群的一致状态。它还自动管理集群中使用的其他元素,比如SSL证书和EC2自动扩展组。

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

Kubernetes有一个用于通用监控的实用仪表板,但Kubernetes社区在尝试其他的方式向Kubernetes管理员呈现数据。Kube-ops-view就是这样一款工具;它以图形化方式提供了多个Kubernetes集群的一览式视图,所以集群中CPU和内存使用情况以及pod的状态一目了然。注意,它不允许你调用任何命令;它只用于可视化,但提供的可视化非常清晰,天生适合运维中心的​监视器墙。

Skaffold:Kubernetes的迭代开发

Skaffold是谷歌自己的Kubernetes工具之一,用来执行Kubernetes应用程序的持续部署。你对源代码进行更改时,Skaffold可自动检测,触发构建和部署过程,如果出现任何错误,还会提醒你。Skaffold完全在客户端运行。它可以在现有的持续集成/持续交付(CI/CD)管道中使用,与几款外部构建工具(主要是谷歌自己的Bazel)集成。

Stern和Kubetail:Kubernetes的日志追踪

Stern让你可以生成来自Kubernetes中的pod和容器的标以色码的输出(按照tail命令)。这种快捷方法可以将来自多个资源的所有输出组合并到一目了然的数据流。同时,可以一目了然(标以色码)地区别数据流。

Kubetail同样将来自多个pod的日志聚合到一个数据流中,对不同的pod和容器标以色码。但Kubetail是Bash脚本,所以它只需要shell。

Teresa:Kubernetes上的简单PaaS

Teresa是一个应用程序部署系统,在Kubernetes上作为简单的PaaS运行。组织成团队的用户可以部署和管理属于他们的应用程序。这样一来,负责某个应用程序的人更容易使用它,无需直接处理Kubernetes。

原文标题:15 tools to tame Kubernetes deployments,作者:Serdar Yegulalp