在短短的两年时间里, Kubernetes 在容器编排的竞争中逐渐赢得了先机。像AWS这样的顶级云服务供应商也承诺通过对K8s的支持和整合来满足客户的需求。由于Kubernetes作为企业选择容器解决方案的迅速普及,也产生了大量的工具,为用户提供便利,是时候总结一份完整的工具清单了。本文将从集群部署工具、开发工具、CLI工具、无服务器/功能工具、监控工具、安全、原生可视化和控制、原生服务发现、测试工具,这9个方面介绍50个有用的Kubernetes工具,大部分都是免费开源的!
注:文末提供50个工具地址清单的获取方式!
一、集群部署工具
1.Kubespray
Kubespray为Kubernetes部署和配置提供了一系列 Ansible 作用。Kubespray可以使用AWS,GCE(谷歌云引擎),Azure,OpenStack或裸金属基础设施即服务(IaaS)平台。Kubespray是一个开放开发模式的开源项目。对于那些已经知道Ansible的人来说,该工具是一个不错的选择,因为不需要使用其他工具进行配置和编排。Kubespray在后台使用kubeadm。
费用:免费
2.Minikube
Minikube允许你在本地安装和试用Kubernetes。该工具是Kubernetes研究的一个很好的起点。在笔记本电脑上的 虚拟机 (VM)内轻松启动单节点Kubernetes集群。Minikube可在Windows,Linux和OSX上使用。在短短的5分钟内,将能够探索Kubernetes的主要特色。只需一个命令即可启动Minikube仪表板。
费用:免费
3.Kubeadm
Kubeadm是自1.4版以来的Kubernetes分发工具。该工具有助于在现有基础架构上引导最佳实践Kubernetes集群。但Kubeadm无法为你配置基础架构。它的主要优势是能够在任何地方启动最小可行的Kubernetes集群。附加组件和网络设置都不在Kubeadm的范围之内,因此你需要手动或使用其他工具进行安装。
费用:免费
4.Kops
Kops可以帮助你从命令行创建,销毁,升级和维护生产级高可用性Kubernetes集群。AWS目前正式获得支持,其中GCE处于测试版支持,Alpha版VMware vSphere以及其他平台支持正在计划中。 Kops允许你控制完整的Kubernetes集群生命周期;从基础设施配置到集群删除。
费用:免费
5.Bootkube
CoreOS提供了版本1.4发布的自托管Kubernetes集群的概念。自托管集群方法的核心是Bootkube。Bootkube可以帮助你建立一个临时的Kubernetes控制平面,该控制平面将一直运行,直到自主控制平面能够处理请求。
费用:免费
6.Kubernetes on AWS(Kube-AWS)
Kube-AWS是CoreOS提供的控制台工具,它使用AWS CloudFormation部署全功能的Kubernetes集群。Kube-AWS允许你部署传统的Kubernetes集群,并使用原生AWS功能(例如,ELB,S3和Auto Scaling等)自动配置每个K8s服务。
费用:免费
7.SimpleKube
SimpleKube是一个bash脚本,它允许你在Linux服务器上部署单节点Kubernetes集群。虽然Minikube需要虚拟机管理程序(VirtualBox,KVM),但SimpleKube会将所有K8s二进制文件安装到服务器中。Simplekube在Debian 8/9和Ubuntu 16.x / 17.x上进行了测试。这是第一次尝试Kubernetes的好工具。
费用:免费
8.Juju
Juju是来自Canonical的编排工具,可以让你远程操作云提供商解决方案。Juju比Puppet/Ansible/Chef工作在更高的抽象层次上,并且管理服务而不是机器/虚拟机。Canonical非常努力地提供他们称之为生产中合适的“Kubernetes-core bundle”。Juju作为一个专用工具提供,它拥有自己的控制台/用户界面,也可作为测试期间免费提供的服务(JaaS)。
费用:免费的社区版
商业版:每年200美元
9.Conjure-up
Conjure-up是另一个Canonical产品,它允许您通过一些简单的命令部署“Ubuntu上Kubernetes的规范分发”。它支持AWS,GCE,Azure,Joyent,OpenStack,VMware,裸机和本地主机部署。 Juju,MAAS和LXD是Conjure-up的基础技术。
费用:免费
二、监控工具
10.Kubebox
Kubebox是Kubernetes集群的终端控制台,允许你通过漂亮的老式界面管理和监控集群的实时状态。Kubebox显示你的容器资源使用情况,集群监控和容器日志等。此外,可以轻松导航到所需的名称空间并执行到所需的容器中,以便快速排除故障/恢复。
费用:免费
11.Kubedash
Kubedash为Kubernetes提供了一个性能分析UI。Kubedash汇总来自不同来源的指标,并为管理员提供高级分析数据。Kubedash使用Heapster作为数据源,默认情况下,所有Kubernetes集群都会收集各个容器的度量和分析。
费用:免费
12.Kubernetes Operat io nal View(Kube-ops-view)
Kube-ops-view是多个K8群集的只读系统仪表板。使用Kube-ops-view,您可以轻松地在群集和监视器节点之间进行导航以及您的群集的健康状况。 Kube-ops-view使一些Kubernetes进程动画化,例如创建和终止窗口。它还使用Heapster作为数据源。
费用:免费
13.Kubetail
Kubetail是一个小型的bash脚本,它允许您将来自多个窗格的日志聚合到一个流中。最初的Kubetail版本没有过滤或高亮功能,但Github上还有一个额外的Kubetail分叉。这可以使用多尾工具来形成和执行日志着色。
费用:免费
14.Kubewatch
Kubewatch是一名Kubernetes观察员,可以将K8s事件发布到团队沟通应用Slack。Kubewatch作为Kubernetes集群内的一个容器运行,并监视系统中发生的变化。可以通过编辑配置文件来指定要接收的通知。
费用:免费
15.Weave Scope
Weave Scope是 Docker 和Kubernetes集群的故障排除和监控工具。它可以自动生成应用程序和基础架构拓扑,可帮助轻松识别应用程序性能瓶颈。可以将Weave Scope作为独立应用程序部署在本地服务器/笔记本电脑上,也可以选择Weave Cloud上的Weave Scope Software as a Service(SaaS)解决方案。借助Weave Scope,可以使用名称,标签和/或资源消耗轻松地对容器进行分组,筛选或搜索。
费用:在独立模式下免费
标准模式:每月30%(免费试用30天)
企业模式:每节点/月150美元
16.Searchlight
AppsCode提供的Searchlight是满足Icinga的Kubernetes编排工具。Searchlight定期对Kubernetes集群进行各种检查,并在出现问题时通过电子邮件,短信或聊天提醒你。Searchlight包括专门为Kubernetes编写的默认检查套件。此外,它还可以增强Prometheus的监控功能,并且可以通过外部黑匣子监控功能进行监控,并在内部系统完全失效的情况下作为回退功能。
费用:免费
17.Heapster
Heapster为Kubernetes启用容器集群监控和性能分析。Heapster本身支持Kubernetes,并可以作为所有K8s设置中的一个容器运行。然后,Heapster的数据可以推送到可配置的后端以进行存储和可视化。
费用:免费
三、测试工具
18.Kube-monkey
Kube-monkey是Netflix的Chaos Monkey的Kubernetes版本。Kube-monkey是遵循chaos engineering原理的工具。它可以随意删除K8s pods,检查服务是否具备抗失效能力,并有助于你系统的健康状况。Kube-monkey也由TOML文件配置,可以在其中指定要杀死哪个应用程序以及何时执行恢复策略。
费用:免费
19.K8s-testsuite
K8s-testsuite由2个Helm图组成,可用于网络带宽测试和单个Kubernetes集群的负载测试。负载测试使用基于Vegeta的Kubernetes微服务运行的loadbots模拟简单的Web服务器。网络测试在内部使用iperf3和netperf-2.7.0并运行三次。这两组测试都会生成包含所有结果和指标的综合日志消息。
费用:免费
20.Test-infra
Test-infra是用于Kubernetes测试和结果验证的工具集合。Test-infra包含几个仪表板,用于显示历史记录,汇总故障并显示当前正在测试的内容。你可以通过创建自己的测试作业来增强测试infra套件。Test-infra可以使用Kubetest工具在不同的提供商上执行完整的Kubernetes生命周期仿真的端到端Kubernetes测试。
费用:免费
21.Sonobuoy
Sonobuoy允许你通过以易于访问和非破坏性的方式运行一组测试来了解您当前的Kubernetes集群状态。Sonobuoy生成有关集群性能的详细信息的信息报告。Sonobuoy支持Kubernetes版本1.8及以上版本。Sonobuoy Scanner是一款基于浏览器的工具,可让你只需点击几下即可测试Kubernetes集群,但CLI版本具有更多可用的测试。
费用:免费
22.PowerfulSeal
PowerfulSeal是类似于Kube-monkey的工具,遵循chaos engineering原理。PowerfulSeal可以杀死pods,并从你的集群中删除/添加虚拟机。与Kube-monkey相反,PowefulSeal具有交互模式,可让你手动中断特定集群组件。此外,PowefulSeal除SSH外不需要外部依赖。
费用:免费
四、安全工具
23.Trireme
Trireme是Kubernetes网络策略的灵活和直接的实施。Trireme适用于任何Kubernetes集群,并允许你管理来自不同集群之间的流量。Trireme的主要优势在于不需要任何集中式策略管理,能够轻松组织Kubernetes中部署的两种资源的交互,以及没有SDN,VLAN标签和子网的复杂性(Trireme使用常规L3-网络)。
费用:免费
24.Aquasec
Aquasec为Kubernetes部署提供完整的生命周期安全。Aqua Security在每个容器实例上部署一个专用代理,该实例充当防火墙并阻止容器中的安全漏洞。该代理与中央Aqua安全控制台进行通信,该控制台执行定义的安全限制。Aqua Security还有助于为云和原生环境组织灵活的安全交付管道。Kube-Bench是一款由AquaSec发布的开源工具,它根据CIS Kubernetes Benchmark中概述的长列表测试Kubernetes环境。
费用:每次扫描0.29美元
25.Twistlock
Twistlock是另一种用作“云预算呢行应用程序防火墙”的工具,可分析容器和服务之间的网络流量。Twistlock能够分析标准容器行为并根据此行为生成适当的规则,以便管理员不必手动生成策略规则。Twistlock还支持2.2版本的Kubernetes的CIS Benchmark。
费用:每个许可证每年1700美元(提供免费试用版)
26.Sysdig Falco
Sysdig Falco是一种行为活动监控,旨在检测应用程序中的异常活动。Falco基于Sysdig Project,这是一个开源工具(现在是商业服务),通过跟踪内核系统调用来监控容器性能。Falco可让你通过一套规则持续监控和检测容器,应用程序,主机和网络活动。
费用:免费作为独立工具
基本云服务:每月20美元(免费试用)
Pro Cloud:每月30美元
Pro软件:定制价格
27.Sysdig Secure
Sysdig Secure是Sysdig Container Intelligence Platform的一部分,具有很好的容器可视性和与容器编排工具的深度集成。这些包括Kubernetes,Docker,AWS ECS和Apache Mesos。借助Sysdig Secure,你可以实施服务感知策略,阻止攻击,分析历史记录并监控集群性能。Sysdig Secure可作为云和内部部署软件产品提供。
费用:作为独立工具免费
Pro Cloud:定制价格
Pro软件:定制价格
28.Kubesec.io
Kubesec.io是一项服务,它允许你为使用Kubernetes资源安全功能评分。Kubesec.io根据Kubernetes安全最佳实践验证资源配置。因此,你将对如何提高整体系统安全性有完全的控制权和其他建议。该网站还包含大量与容器和Kubernetes安全相关的外部链接。
费用:免费
五、CLI工具
29.Cabin
Cabin充当用于远程管理Kubernetes集群的移动仪表板。通过Cabin,用户可以快速管理应用程序,扩展部署,并从Android或iOS设备对整个K8群集进行故障排除。Cabin是K8集群运营的强大工具,因为它允许你在发生事故时执行快速补救措施。
费用:免费
30.Kubectx/Kubens
Kubectx是一个小型的开源实用工具,它可以增强Kubectl的功能,并且可以轻松切换上下文,并同时连接到几个Kubernetes集群。Kubens允许你在Kubernetes命名空间之间导航。这两个工具在bash/zsh/fish shell上都有一个自动完成功能。
费用:免费
31.Kube-shell
使用kubectl时,Kube-shell可提高你的生产力。Kube-shell启用命令自动完成和自动建议。此外,Kube-shell将提供有关执行命令的内嵌文档。Kube-shell甚至可以在错误输入时搜索和纠正命令。这是在K8s控制台中提高性能和工作效率的绝佳工具。
费用:免费
32.Kail
Kail适用于Kubernetes集群。借助Kail,你可以为所有匹配的Pod获取Docker日志。Kail允许你通过服务,部署,标签和其他功能来过滤Pod。如果符合条件,Pod会在启动后自动添加(或删除)到日志中。
费用:免费
六、开发工具
33.Telepresence
Telepresence提供了通过从你的Kubernetes环境到本地进程的代理数据在本地调试Kubernetes集群的可能性。Telepresence能够为你的原生代码提供对Kubernetes服务和AWS/GCP资源的访问权限,因为它将部署到集群中。通过Telepresence,Kubernetes会将原生代码作为集群中的正常集群进行计数。
费用:免费
34.Helm
Helm是Kubernetes的包管理工具。它就像APT/Yum/ Homebrew,当然是针对Kubernetes的。Helm使用Char来运行,它是构成分布式应用程序的Kubernetes资源清单的归档集。可以通过创建Helm图表来共享你的应用程序。Helm允许创建可重复的构建并轻松管理Kubernetes清单。
费用:免费
35.Keel
Keel允许你自动执行Kubernetes部署更新,并可以在专用名称空间中作为Kubernetes服务启动。通过这样的组织,Keel在你的环境中引入了最小的负载并增加了显著的健壮性。Keel通过标签,注释和图表帮助部署Kubernetes服务。你只需要为每个部署或Helm版本指定更新策略。一旦新的应用程序版本在存储库中可用,Keel将自动更新环境。
费用:免费
36.Apollo
Apollo是一个开源应用程序,为团队提供自助UI,用于创建和部署Kubernetes的服务。Apollo允许操作员只需点击一下即可查看日志并将部署恢复到任何时间点。Apollo具有灵活的部署许可模式。每个用户只能部署他需要部署的内容。
费用:免费
37.Draft
Draft是Azure团队提供的一种工具,可将应用程序开发和部署简化为任何Kubernetes集群。Draft在代码部署和代码提交之间创建了“内部循环”,大大加快了变更验证过程。借助Draft,开发人员可以使用两条命令准备应用程序Docker files和Helm图表,并将应用程序部署到远程或本地Kubernetes集群。
费用:免费
38.Deis Workflow
Deis Workflow是一款开源工具。平台即服务(PaaS)在Kubernetes集群上创建了额外的抽象层。这些层允许你在没有来自开发人员的特定领域知识的情况下部署和/或更新Kubernetes应用程序。工作流程基于Kubernetes概念,提供简单的,对开发人员友好的应用程序部署。作为一套Kubernetes微服务交付,运营商可以轻松安装该平台。工作流程可以在零宕机时间部署新版应用程序。
费用:免费
39.Kel
Kel是来自Eldarion,Inc.的开源PaaS,它有助于在整个生命周期中管理Kubernetes应用程序。Kel提供了两个使用Python编写的附加图层,并在Kubernetes之上使用Go。级别0允许你配置Kubernetes资源,而级别1可帮助你在K8s上部署任何应用程序。
费用:免费
七、无服务器/功能工具
40.Kubeless
Kubeless是一个Kubernetes本地无服务器框架,可让你部署小部分代码,而无需担心底层基础设施。Kubeless能够即时了解Kubernetes资源,并提供自动扩展,API路由,监控和故障排除。 Kubeless完全依赖于K8s的,因此Kubernetes用户也将能够使用原生K8s API服务和API网关。
费用:免费
41.Fission
Fission是一款针对Kubernetes的快速无服务器框架,专注于开发人员的生产力和高性能。Fission在Kubernetes集群的任何位置都可以运行:在笔记本电脑上,任何公有云或私有数据中心内运行。可以使用Python,NodeJS,Go,C#或PHP编写函数,并使用Fission将其部署到K8s集群上。
费用:免费
42.Funktion
很长一段时间,Kubernetes:Funktion只有一个函数即服务(FaaS)实现。Funktion是为Kubernetes设计的开源事件驱动的lambda风格编程模型。Funktion与fabric8平台紧密结合。使用Funktion,你可以创建流程以订阅200多个事件源来调用你的功能,包括大多数数据库,消息传递系统,社交媒体以及其他中间件和协议。
费用:免费
43.IronFunction
IronFunctions是一个开源的无服务器平台或FaaS平台,你可以在任何地方运行。IronFunction写在Golang上,真正支持任何语言的功能。IronFunction的主要优势在于它支持AWS Lambda格式。直接从Lambda导入功能并在任何你想要的地方运行它们。
费用:免费
44.OpenWhisk
Apache OpenWhisk是由IBM和Adobe驱动的强大的开源FaaS平台。OpenWhisk可以部署在本地内部设备或云上。Apache OpenWhisk的设计意味着它充当一个异步和松散耦合的执行环境,可以运行针对外部触发器的功能。OpenWhisk在Bluemix上作为SaaS解决方案提供,或者你可以在本地部署基于Vagrant的虚拟机。
费用:免费
45.OpenFaaS
OpenFaaS框架旨在管理Docker Swarm或Kubernetes上的无服务器功能,以便收集和分析各种指标。你可以打包你的函数中的任何进程,并使用它,而无需重复编码或任何其他例行操作。FaaS拥有Prometheus指标,这意味着它可以根据需求自动调整功能。FaaS原生支持基于Web的界面,你可以在其中尝试功能。
费用:免费
46.Nuclio
Nuclio是一个无服务器项目,旨在处理高性能事件和大量数据。Nuclio可以作为独立库或VM/Docker容器在内部设备上启动。另外,Nuclio支持Kubernetes。Nuclio以最大的并行性和最小的开销提供实时数据处理。
费用:免费
47.Virtual-Kubelet
Virtual-Kubelet是一个开源的Kubernetes Kubelet实现,它模拟成一个kubelet,用于将Kubernetes连接到其他API。Virtual-Kubelet允许节点由ACI,Hyper.sh和AWS等其他服务提供支持。该连接器具有可插拔架构和直接使用Kubernetes基元,使其更易于构建。
费用:免费
48.Fnproject
Fnproject是一个容器原生无服务器项目,几乎支持任何语言,几乎可以在任何地方运行。Fn是在Go上编写的,因此它具有性能且轻便的特点。Fnproject支持AWS Lambda格式样式,因此你可以轻松导入Lambda函数并使用Fnproject启动它。
费用:免费
八、原生服务发现
49.CoreDNS
CoreDNS是一组使用Go编写的用于执行DNS功能的插件。带有附加Kubernetes插件的CoreDNS可以替换默认的Kube-DNS服务,并实现为Kubernetes基于DNS的服务发现定义的规范。CoreDNS还可以侦听通过UDP/TCP,TLS和gRPC进入的DNS请求。
费用:免费
九、原生可视化和控制
50.Kubernetes Dashboard
Kubernetes Dashboard是Kubernetes集群的通用基于Web的UI。使用本机仪表板对K8s集群进行故障排除和监控要容易得多。你需要在机器和Kubernetes API服务器之间创建一个安全代理通道来访问仪表板。本地Kubernetes仪表板依赖于Heapster数据收集器,因此它也需要安装在系统中。
费用:免费