Kubernetes已经成为大规模部署通过编辑的应用程序的标准方法(许多人会说这是标准方法)。可是,若是Kubernetes能够帮助咱们控制无序和复杂的经编辑的部署,那么有什么方法能够帮助咱们控制Kubernetes呢?毕竟,它也多是复杂、混乱和难以管理的。web
随着Kubernetes的成长和演变,它的一些过分行为极可能会从内部获得控制。可是有些人并无等到Kubernetes变得更容易使用,而是对生产中Kubernetes的许多常见问题推出了本身的解决方案。shell
在这里,咱们重点介绍10个以各类方式简化Kubernetes的项目,从简化命令行交互,到简化应用程序部署语法,再到与AWS集成,再到为多个集群提供一个窗口。服务器
目 录网络
Bitnami Cabin:适用于iOS和Android的Kubernetes面板编辑器
Kedge:简明的Kubernetes部署定义模块化
Koki Short:可管理的Kubernetes密钥清单函数
Kops:Kubernetes集群的命令行操做工具
Kubebox:Kubernetes的终端控制台测试
Kube-monkey:Kubernetes的Chaos Monkey编码
Kube-ps1:智能Kubernetes命令提示符
Kube-prompt:交互式Kubernetes客户端
Kube-shell:用于Kubernetes CLI的shell
Kubespy:实时监控Kubernetes资源
Bitnami Cabin:适用于iOS和Android的Kubernetes面板
任何现代web应用程序或服务都应该具备某种移动界面。Cabin为Kubernetes管理员提供了一个版本的Kubernetes面板,能够经过iOS或Android智能手机访问。整个Kubernetes面板中提供的许多功能均可以从Cabin启动,包括Helm图表,扩展部署,读取pod日志以及访问Kubernetes托管的基于Web的应用程序。
Kedge:简明的Kubernetes部署定义
关于Kubernetes最多见的抱怨是它的清单(或应用程序定义)是多么复杂和冗长。编写它们是一件痛苦的事情,维护它们也是一件痛苦的事情,因此人们求助于第三方工具来缓解也就不足为奇了。Kedge提供了更简单、更简洁的语法。向Kedge提供了Kubernetes定义文件的简单版本,Kedge将该简单定义扩展为完整的Kubernetes对应文件。与Koki Short(见下文)不一样,Kedge的声明文件不使用模块化语法,它只是将应用程序定义简化为通用的快捷方式。
Koki Short:可管理的Kubernetes密钥清单
Koki Short相似上述的Kedge是一个改进应用程序定义或清单在Kubernetes中工做方式的项目。像Kedge定义同样,Short定义使用缩写的语法来描述Kubernetes pod,它能够被翻译成完整的语法,而后再返回。与Kedge定义不一样,Short定义也是模块化的,这意味着一个Short声明中的细节能够在其余声明中重用,这样就能够简单地定义具备公共元素的许多pod。
Kops:Kubernetes集群的命令行操做
Kops由Kubernetes团队开发,容许您从命令行管理Kubernetes集群。它支持在AWS和GCE上运行的集群,VMware vSphere和其余环境也在开发中。除了自动设置和拆卸过程以外,Kops还能够帮助实现其余类型的自动化。例如,它能够生成Terraform配置,从而容许使用Terraform从新部署集群。
Kubebox:Kubernetes的终端控制台
Kubebox是Kubernetes的高级终端控制台,它为Kubernetes及其API提供的不只仅是一个美化的命令行。它提供内存和CPU利用率的交互式显示、pod列表、运行日志和配置编辑器。最重要的是,它能够做为Linux、Windows和MaciOS的独立应用程序使用。
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客户端
Kubernetes CLI的另外一个最小但有用的修改是Kube-prompt,它容许您与Kubernetes客户机输入至关于交互式命令会话的内容。Kube-prompt使您没必要输入kubectl做为每一个命令的前缀,并为每一个命令提供上下文信息自动完成。
Kube-shell: Kubernetes CLI的Shell
Kubernetes命令行功能强大,但与任何命令行应用程序同样,选择它的选项可能很是繁琐。Kube-shell将标准的Kubernetes命令行包装在一个集成的shell中,该shell提供常见命令的自动完成和自动建议,包括Kubernetes服务器提供的建议(例如服务名称)。它还提供了更健壮的命令历史记录函数、vi风格的编辑模式,以及用户、名称空间、集群和其余特定于安装的详细信息的运行上下文信息。
Kubespy:实时监控Kubernetes资源
Pulumi的Kubespy是一个诊断工具,它容许您实时跟踪Kubernetes资源的变化,为您提供一种动态的文本视图面板。例如,您能够在启动pod时查看pod状态的更改:将pod定义写入Etcd,计划在节点上运行pod,在建立pod的节点上运行Kubelet,最后将pod标记为running。Kubespy能够做为独立的二进制文件运行,也能够做为Kubectl的插件运行。
AWS的Kubernetes入口控制器
Kubernetes经过名为Ingress的服务向集群提供外部负载平衡和网络服务。Amazon Web Services提供负载平衡功能,但不会自动将这些服务与Kubernetes的功能进行耦合。AWS的Kubernetes入口控制器弥补了这一差距。入口控制器自动管理集群中每一个入口对象的AWS资源,为新的入口资源建立负载平衡器,为已删除的资源删除负载平衡器,并利用AWS云造成来确保集群的一致状态。它还自动管理集群中使用的其余元素,如SSL证书和EC2自动伸缩群。
kube - os -view:用于多个Kubernetes集群的面板
Kubernetes有一个用于通用监视的有用面板,可是Kubernetes社区正在尝试使用其余方法向Kubernetes管理员提供有用的数据。Kube-os-view就是这样一个实验:它提供了多个Kubernetes集群的概览视图,以图形化的方式呈现,所以您能够一眼看到集群中pod的CPU和内存使用状况以及状态。注意,它不容许您调用任何命令,这彻底是为了可视化。可是它提供的可视化效果是惊人的和有效的,这是可与操做中心的壁监视器完美结合。
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。