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/
成本: 免费
(文章版权归极客邦科技 InfoQ 所有,未经许可不得转载。)