50+顶级开源Kubernetes工具列表

近日,Kubernetes 1.13 正式发布,这是2018年发布的第四次也是最后一次大版本,该版本继续关注Kubernetes稳定性和可扩展性,对存储和集群生命周期的主要功能实现高可用。Kubeadm简化了集群管理、容器存储接口(CSI)并将CoreDNS作为默认DNS。

最近两年,Kubernetes给容器战场带来了巨大冲击,Docker Swarm也未能成为其对手,类似AWS的主流云供应商纷纷提供K8s支持。本文总结了50多种Kubernetes集群部署、监控、安全及测试等相关工具,大部分为开源项目,非常适合技术人员入门。

原生可视化与控制

1、Kubernetes Dashboard

Kubernetes Dashboard是Kubernetes集群基于Web的通用UI,使用本地仪表板对K8s集群进行故障排除和监控要容易得多,但需要在计算机和Kubernetes API服务器之间创建安全代理通道才能访问。原生Kubernetes Dashboard依赖Heapster数据收集器,因此也需安装在系统中。
链接:
https://github.com/kubernetes/dashboard#kubernetes-dashboard
成本: 免费

测试

2、Kube-monkey

Kube-monkey遵循混沌工程原理,可随机删除K8s pod并检查服务是否具有故障恢复能力,并提高系统健康性。Kube-monkey由TOML文件配置,可在其中指定要杀死的应用程序及恢复时间。
链接: https://github.com/asobti/kube-monkey
成本: 免费

3、K8s-testsuite

K8s-testsuite由两个Helm图组成,可用于网络带宽测试和单个Kubernetes集群负载测试。负载测试模拟带有loadbots的简单Web服务器,这些服务器作为基于Vegeta的Kubernetes微服务运行。网络测试在内部使用iperf3和netperf-2.7.0并运行三次,两组测试均会生成包含所有结果和指标的综合日志消息。
链接: https://github.com/mrahbar/k8s-testsuite
成本: 免费

4、Test-infra

Test-infra是Kubernetes测试和结果验证的工具集合,可显示历史记录、聚合故障及当前正在测试的内容。用户可通过创建测试作业增强 test-infra套件。Test-infra可使用Kubetest工具对不同提供商的完整Kubernetes生命周期模拟并进行端到端测试。
链接: https://github.com/kubernetes/test-infra
成本: 免费

5、Sonobuoy

Sonobuoy允许以可访问和非破坏方式运行一组测试了解当前Kubernetes集群状态。Sonobuoy生成信息报告,其中包含有关集群性能的详细信息。Sonobuoy支持Kubernetes 1.8及更高版本,Sonobuoy Scanner是一个基于浏览器的工具,允许通过几次单击测试Kubernetes集群,但CLI版本有更多测试可用。
链接: https://github.com/heptio/sonobuoy
成本: 免费

6、PowerfulSeal

PowerfulSeal是一种类似Kube-monkey的工具,遵循混沌工程原理。PowerfulSeal可杀死pod并从集群中删除或者添加VM。与Kube-monkey相比,PowefulSeal具有交互模式,允许手动中断特定集群组件。此外,PowefulSeal除了SSH之外不需要外部依赖。
链接: https://github.com/bloomberg/powerfulseal
成本: 免费

集群部署工具

7、Kubespray

Kubespray为Kubernetes部署和配置提供一组Ansible角色。Kubespray可使用AWS,GCE,Azure,OpenStack或裸机基础架构即服务(IaaS)平台。 Kubespray是一个开源项目,具有开放的开发模型。对于已经了解Ansible的人来说,该工具是一个不错的选择,因为不需要使用其他工具进行配置和编排。
链接: https://github.com/kubernetes-incubator/kubespray
成本: 免费

8、Minikube

Minikube允许在本地安装和试用Kubernetes,该工具是使用Kubernetes的良好起点,可在笔记本电脑的虚拟机(VM)中轻松启动单节点Kubernetes集群。Minikube适用于Windows、Linux和OSX。在短短5分钟内,用户就可以探索Kubernetes的特点,只需一个命令即可启动Minikube仪表板。
链接: https://github.com/kubernetes/minikube
成本: 免费

9、Kubeadm

Kubeadm是自1.4版以来的Kubernetes分发工具,该工具有助于在现有基础架构上引导最佳Kubernetes集群实践,但Kubeadm无法配置基础架构,其主要优点是能够在任何地方发布最小的可行Kubernetes集群。但是,附加组件和网络设置都不属于Kubeadm范围,因此需要手动或使用其他工具进行安装。
链接: https://github.com/kubernetes/kubeadm
成本: 免费

10、Kops

Kops可帮助用户从命令行创建、销毁、升级和维护生产级高可用Kubernetes集群。AWS目前正式支持,GCE处于测试支持状态,而alpha vSphere中的VMware vSphere以及其他平台均予以支持。Kops可控制完整Kubernetes集群生命周期,从基础架构配置到集群删除。
链接: https://github.com/kubernetes/kops
成本: 免费

11、Bootkube

CoreOS提供自托管Kubernetes集群概念,自托管集群方法的中心是Bootkube。Bootkube可设置临时Kubernetes控制平面,该平面将一直运行,直到自托管控制平面能够处理请求。
链接: https://github.com/kubernetes-incubator/bootkube
成本: 免费

12、Kubernetes on AWS (Kube-AWS)

Kube-AWS是CoreOS提供的控制台工具,使用AWS CloudFormation部署功能齐全的Kubernetes集群。Kube-AWS允许部署传统Kubernetes集群,并使用本机AWS功能(比如ELB、S3和Auto Scaling等)自动配置每个K8s服务。
链接: https://github.com/kubernetes-incubator/kube-aws]\">https://github.com/kubernetes-incubator/kube-aws]
成本: 免费

13、SimpleKube

SimpleKube是一个bash脚本,可在Linux服务器上部署单节点Kubernetes集群。虽然Minikube需要虚拟机管理程序(VirtualBox,KVM),但SimpleKube会将所有K8s二进制文件安装到服务器。Simplekube在Debian 8/9和Ubuntu 16.x / 17.x上进行测试,这同样是入门Kubernetes的好工具。
链接: https://github.com/valentin2105/Simplekube
成本: 免费

14、Juju

Juju 是 Canonical 提供的服务编排工具,可让用户远程操作云提供商解决方案。Juju的工作抽象级别高于Puppet、Ansible和Chef,并且管理服务而不是虚拟机。Canonical努力在生产中提供称之为合适的“Kubernetes-core bundle”。Juju可作为专用工具使用,具有控制台UI界面,也可作为JaaS服务。
链接: https://jujucharms.com/
成本: 社区版免费,商业版每年200美元起

15、Conjure-up

Conjure-up同样是Canonical的产品,允许使用简单命令部署Kubernetes在Ubuntu上的规范分布,支持AWS、GCE、Azure、Joyent、OpenStack、VMware和localhost部署。Juju、MAAS和LXD是Conjure-up的基础。
链接: https://conjure-up.io/
成本: 免费

监测工具

16、Kubebox

Kubebox是Kubernetes集群的终端控制台,允许使用界面管理和监控集群实时状态。Kubebox可显示pod资源使用情况,集群监视和容器日志等。此外,用户可轻松导航到所需的命名空间并执行到所需容器,以便快速排障或恢复。
链接: https://github.com/astefanutti/kubebox
成本: 免费

17、Kubedash

Kubedash为Kubernetes提供性能分析UI,汇总不同来源的指标,并为管理员提供高级分析数据。Kubedash使用Heapster作为数据源,默认情况下在所有Kubernetes集群中作为服务运行,为各个容器收集指标并分析。
链接: https://github.com/kubernetes-retired/kubedash
成本: 免费

18、Kubernetes Operational View (Kube-ops-view)

Kube-ops-view是一个用于多K8s集群的只读系统仪表板。使用Kube-ops-view,用户可轻松在集群和监控节点之间导航,并监控pod健康状况。Kube-ops-view可以动画Kubernetes进程,例如pod创建和终止,使用Heapster作为数据源。
链接: https://github.com/hjacobs/kube-ops-view
成本: 免费

19、Kubetail

Kubetail是一个小型bash脚本,允许将多个pod日志聚合到一个流中。最初的Kubetail没有过滤或突出显示功能,但Github上的额外Kubetail版本可使用多尾工具形成并执行日志着色。
链接: 
https://github.com/johanhaleby/kubetailhttps://github.com/aks/kubetail
成本: 免费

20、Kubewatch

Kubewatch可将K8s活动发布到Slack应用。Kubewatch作为Kubernetes集群内的pod运行,并监视系统中发生的变化,可通过编辑配置文件来指定要接收的通知。
链接: https://github.com/bitnami-labs/kubewatch
成本: 免费

21、Weave Scope

Weave Scope是Docker和Kubernetes集群的故障排除和监视工具,可以自动生成应用程序和基础架构拓扑,轻松识别应用程序性能瓶颈,可以将Weave Scope部署为本地服务器或笔记本电脑上的独立应用程序,也可以选择Weave Cloud上的Weave Scope软件即服务(SaaS)解决方案。使用Weave Scope,用户可根据名称、标签或资源消耗轻松对容器分组、过滤或搜索。
链接: https://www.weave.works/oss/scope/
成本: 标准模式提供30天免费体验,企业版每节点每月150美元

22、Searchlight

AppsCode提供的Searchlight是满足Icinga的Kubernetes编排工具。Searchlight会定期对Kubernetes集群执行检查,并在出现问题时通过电子邮件、短信或其他方式提醒。Searchlight包含专门为Kubernetes编写的默认检查套件。此外,可通过外部黑匣子增强Prometheus监控,并在内部系统完全失效的情况下作为备份。
链接: https://github.com/appscode/searchlight
成本: 免费

23、Heapster

Heapster为Kubernetes提供容器集群监控和性能分析。Heapster本身支持Kubernetes,可在所有K8s设置上作为pod运行,可将Heapster数据推送到可配置的后端进行存储和可视化。
链接: https://github.com/kubernetes/heapster
成本: 免费

安全

24、Trireme

Trireme适用于所有Kubernetes集群,允许管理来自不同集群的pod间流量,主要优点是不需要任何集中策略管理,能够轻松组织部署在Kubernetes中的资源交互,并且没有SDN、VLAN标签和子网的复杂性(Trireme使用传统L3-网络)。
链接: https://github.com/aporeto-inc/trireme-kubernetes
成本: 免费

25、Aquasec

Aquasec为Kubernetes部署提供完整的生命周期安全性。Aqua Security在每个容器实例上部署专用代理,该实例用作防火墙并阻止容器中的安全漏洞,此代理与中央Aqua Security控制台进行通信,该控制台强制执行已定义的安全限制。Aqua Security还有助于为云和内部部署环境组织灵活的安全交付管道。Kube-Bench是AquaSec发布的开源工具,根据CIS Kubernetes Benchmark中的测试列表检查Kubernetes环境。
链接: https://www.aquasec.com/
成本: 每次扫描0.29美元

26、Twistlock

Twistlock可用作云原生应用程序防火墙,并分析容器和服务之间的网络流量。Twistlock能够分析标准容器行为并据此生成适当规则,管理员不必手动生成。Twistlock还支持2.2版本的Kubernetes CIS基准测试。
链接: https://www.twistlock.com/
成本: 每年每个许可1700美元起 (可免费试用)

27、Sysdig Falco

Sysdig Falco是一种行为活动监视器,旨在检测应用程序异常。Falco基于Sysdig项目,这是一个开源工具(现在是商业项目),通过跟踪内核系统调用来监控容器性能。Falco允许使用一组规则持续监视和检测容器、应用程序、主机和网络活动。
链接: https://sysdig.com/opensource/falco/
成本: 独立工具可免费使用 
基于云: 每月20美元 per month (免费试用)
Pro Cloud: 每月30 美元
Pro Software: 定制价格

28、Sysdig Secure

Sysdig Secure是Sysdig Container Intelligence Platform的一部分,具有无与伦比的容器可见性并与容器编排工具深度集成,开箱即用,包括Kubernetes、Docker、AWS ECS和Apache Mesos。Sysdig Secure可实施服务感知策略,阻止攻击并分析历史记录及监控集群性能。
链接: https://sysdig.com/product/secure/
成本: 工具免费 
Pro Cloud:定制价格
Pro Software: 定制价格

29、Kubesec.io

Kubesec.io可为Kubernetes资源评分并提供安全功能,Kubesec.io根据安全性最佳实践验证资源配置。因此,用户将获得有关提高整体系统安全性的全面控制和建议。该网站包含大量与容器和Kubernetes安全相关的链接。
成本: 免费

CLI工具

30、Cabin

Cabin用作移动仪表板,可远程管理Kubernetes集群。 借助Cabin,用户可快速管理应用程序,扩展部署并通过Android或iOS设备对整个K8s集群进行故障排除。Cabin是K8s集群运营商的理想工具,因为允许在发生事故时执行快速补救措施。
链接: https://github.com/bitnami-labs/cabin
成本: 免费

31、Kubectx/Kubens

Kubectx是一个小型开源实用工具,可以增强Kubectl功能,轻松切换上下文并同时连接到几个Kubernetes集群。Kubens允许在Kubernetes命名空间之间导航,这两个工具在bash/zsh/fish shell上都有自动完成功能。
链接: https://github.com/ahmetb/kubectx
成本: 免费

32、 Kube-shell

使用kubectl时,Kube-shell可提高工作效率,其可通过命令自动完成部分工作。此外,Kube-shell将提供有关已执行命令的在线文档。Kube-shell甚至可以在错误输入时搜索和更正命令,是提高K8s控制台性能和工作效率的绝佳工具。
链接: https://github.com/cloudnativelabs/kube-shell
成本: 免费

33、Kail

Kail是Kubernetes tail的缩写,适用于Kubernetes集群。Kail可为所有匹配pod添加Docker日志。Kail允许按服务、部署、标签和其他功能过滤pod。如果Pod符合条件,则会在启动后自动添加(或删除)到日志中。
链接: https://github.com/boz/kail
成本: 免费

部署工具

34、Telepresence

Telepresence通过Kubernetes环境的代理数据本地调试集群到本地进程的可能性。Telepresence能够为本地代码提供对Kubernetes服务和AWS/GCP资源的访问,因为它将部署到集群。通过Telepresence,Kubernetes可将本地代码视为集群中的普通pod。
链接: https://www.telepresence.io/
成本: 免费

35、Helm

Helm可与Char一起运行,Char是构成分布式应用程序的Kubernetes资源归档集,可通过创建Helm图表共享应用程序,Helm允许构建并轻松管理Kubernetes配置。
链接: https://github.com/kubernetes/helm
成本: 免费

36、Keel

Keel允许自动执行Kubernetes部署更新,并可在专用命名空间中作为Kubernetes服务启动。通过这种方式,Keel为环境带来了最小负载,并显著增加稳健性。Keel通过标签、注释和图表帮助部署Kubernetes服务,只需为每个部署或Helm版本指定更新策略。一旦新的应用程序版本在存储库中可用,Keel将自动更新环境。
链接: https://keel.sh/
成本: 免费

37、Apollo

Apollo是一个开源应用程序,为团队提供自助UI,用于创建和部署Kubernetes服务。Apollo允许管理员单击一下即可查看日志并将部署恢复到任何时间点。Apollo具有灵活的部署权限模型,每个用户只能部署需要的内容。
链接: https://github.com/logzio/apollo
成本: 免费

38、Draft

Draft是Azure团队提供的工具,可简化应用程序开发和部署到任何Kubernetes集群。Draft在代码部署和提交之间创建内部循环,显著加快了变更验证过程。使用Draft,开发人员可以准备应用程序Dockerfiles和Helm图表,并使用两个命令将应用程序部署到远程或本地Kubernetes集群。
链接: https://github.com/azure/draft
成本: 免费

39、Deis Workflow

Deis Workflow可在Kubernetes集群上创建额外的抽象层,这些层允许开发人员在没有特定领域认知的情况下部署或更新Kubernetes应用程序。Workflow基于Kubernetes概念构建,提供简单且易于使用的应用程序部署方式。作为一组Kubernetes微服务提供,运营商可轻松安装该平台,Workflow也可在不停机的情况下部署新版本应用。
链接: https://deis.com/workflow/
成本: 免费

40、Kel

Kel有助于管理Kubernetes应用的整个生命周期。Kel在Kubernetes上提供两个用Python和Go编写的附加层。级别0允许配置Kubernetes资源,级别1可帮助在K8s上部署应用程序。
链接: http://www.kelproject.com/
成本: 免费

CI/CD

41、Cloud 66

Cloud 66是一个完整的DevOps工具链,用于生产中容器化应用程序,通过专门的Ops工具自动化DevOps大部分繁重工作。该平台目前在Kubernetes上运行4,000个客户工作负载,并管理2,500行配置。通过提供端到端的基础架构管理,Cloud 66使工程师能够在任何云或服务器上构建、交付、部署和管理应用程序。
链接: www.cloud66.com
成本: 14天免费使用

无服务器相关工具

42、 Kubeless

Kubeless是一个Kubernetes本机无服务器框架,允许部署少量代码,而无需担心底层基础架构。Kubeless提供自动扩展、API路由、监控和故障排除等功能。Kubeless完全依赖K8s原语,因此Kubernetes用户也可使用原生K8s API服务器和API网关。
链接: https://github.com/kubeless/kubeless
成本: 免费

43、Fission

Fission是Kubernetes的快速无服务器框架,可任何地方的Kubernetes集群上运行:笔记本电脑、公有云或私有数据中心。用户可使用Python、NodeJS、Go、C#或PHP编写函数,并使用Fission将其部署到K8s集群。
链接: https://fission.io/
成本: 免费

44、Funktion

很长一段时间,Kubernetes只有一个功能即服务实现就是Funktion。Funktion是一个为Kubernetes设计的开源事件驱动lambda式编程模型。Funktion与fabric8平台紧密结合。使用Funktion,用户可创建从200多个事件源订阅的流来调用功能,包括大多数数据库、消息传递系统、社交媒体及其他中间件和协议。
链接: https://github.com/funktionio/funktion
成本: 免费

45、IronFunction

IronFunctions是一个开源无服务器平台或FaaS平台,可以在任何地方运行。IronFunction是在Golang上编写的,并且支持任何语言函数。IronFunction的主要优点是支持AWS Lambda格式,直接从Lambda导入函数并在任何地方运行。
链接: https://github.com/iron-io/functions
成本: 免费

46、OpenWhisk

Apache OpenWhisk是一个由IBM和Adobe驱动的强大开源-FaaS平台。OpenWhisk可在本地内部部署或云上。Apache OpenWhisk的设计意味着其充当异步且松散耦合的执行环境,可以针对外部触发器运行功能。OpenWhisk在Bluemix上作为SaaS解决方案提供,或者在本地部署基于Vagrant的VM。
链接: https://console.bluemix.net/openwhisk/
成本: 免费

47、OpenFaaS

OpenFaaS框架旨在管理Docker Swarm或Kubernetes上的无服务器功能,可收集和分析各种指标。用户可在函数内打包任何进程并使用,无需重复编码或其他任何操作。FaaS具有Prometheus指标,这意味着可以根据需求自动调整功能。FaaS本身支持基于Web的界面,可在其中试用功能。
链接: https://github.com/openfaas/faas
成本: 免费

48、Nuclio

Nuclio是一个无服务器项目,可作为独立库在内部部署设备上启动,也可在VM或Docker容器内启动。此外,Nuclio支持开箱即用的Kubernetes。Nuclio提供实时数据处理,具有最大并行性和最小开销,可在页面上试用Nuclio。
链接: https://github.com/nuclio/nuclio
成本: 免费

49、Virtual-Kubelet

Virtual Kubelet是一个开源Kubernetes Kubelet实现,伪装成一个kubelet,用于将Kubernetes连接到其他API。Virtual Kubelet允许节点由其他服务(如ACI、Hyper.sh和AWS等)提供支持。此连接器具有可插入的体系结构,可直接使用Kubernetes原语,使其更容易构建。
链接: https://github.com/virtual-kubelet/virtual-kubelet
成本: 免费

50、Fnproject

Fnproject是一个容器本机无服务器项目,几乎支持任何语言,可在任何地方运行。Fn是在Go上编写的,因此具有性能和轻量级等优势。Fnproject支持AWS Lambda格式,可以轻松导入Lambda函数并使用Fnproject启动。
链接: http://fnproject.io/
成本: 免费

本地服务发现

51、CoreDNS

CoreDNS是一组用Go编写的插件,用于执行DNS,带有额外Kubernetes插件的CoreDNS可取代默认Kube-DNS服务,并实现为Kubernetes基于DNS服务定义的规范。CoreDNS还可侦听通过UDP/TCP、TLS和gRPC传入的DNS请求。
链接: https://coredns.io/
成本: 免费

原文链接:https://dzone.com/articles/50-useful-kubernetes-tools

你可能感兴趣的:(50+顶级开源Kubernetes工具列表)