Kubernetes是当今容器革命的中心。容器运动使整个IT行业围绕开放标准进行整合,使所有组织受益,而不仅仅是少数强大的供应商。这就是Kubernetes所代表的:一个建立在开放基础上的软件交付世界。
然而,这种开放性不仅仅与Kubernetes有关。相反,在围绕Kubernetes构建的所有工具和解决方案中,这种开放性都很明显。这是因为特意为Kubernetes构建的开放式架构。当谷歌向全世界发布Kubernetes时,平台上存在大量空洞,需要填充。虽然存在希望,但很少有人知道是否会有足够的支持。令大家惊讶的是,围绕Kubernetes的共识几乎是一致的。过去几年出现的各种解决方案大多数是开源的。以下是Kubernetes衍生的关键开源项目(排名不分先后)
1|Helm
Helm是Kubernetes的包管理器。它有助于自动执行手动安装任务。Helm有一个名为Charts的功能,这是一个描述Kubernetes资源列表的YAML文件。
除了安装之外,它还有助于使部署更容易、更可预测。通过对CI / CD采用系统化方法,Helm有助于简化软件交付流程。它与Kubernetes很好地集成,是CNCF的一部分。
2|Operator Framwork
由CoreOS创建,现在归属于红帽,Operator Framework在构建Kubernetes原生应用程序时提供抽象和简单性。operator是在Kubernetes上部署应用程序的方法。目前,在Kubernetes上构建应用程序时,需要编写许多低级API和样板代码。Operator Framework旨在通过提供有助于管理应用程序开发和进一步管理整个应用程序生命周期的SDK来改进这一点。
3|gVisor
gVisor是为数不多的专注于保护Kubernetes集群的工具之一。具体来说,它处理容器隔离,这对安全性至关重要。gVisor可用于在沙盒gVisor容器中运行你不完全信任的应用程序。这些沙盒容器与系统的其余部分充分隔离,因此在应用程序出现任何问题的情况下,可提供一层保护。过去,已经有了基于机器的虚拟机隔离解决方案,以及使用seccomp、SELinux和AppArmor等工具进行基于规则的隔离。gVisor在这些工具之上的一层工作,改进了系统调用的处理。在gVisor上运行的每个应用程序都有自己的内核和不同的主机资源。这样,你可以在初始阶段更加大胆地在生产中运行应用程序。
当然,你需要的不只是gVisor才能真正保护在Kubernetes中的应用程序。实际上,你需要一个完整的策略来管理开源风险。这种风险甚至可能来自管理开源工具,使其易受攻击。像Whitesource这样的工具是使用开源工具时保持合规的关键。
4|Istio
Istio是现在最热门的Kubernetes容器网络工具。它基于“服务网格”模型。它使用Envoy边车代理——充当代理网格,并在微服务应用程序的各种服务之间实现更好的通信。Istio处理整个网络的负载均衡。它实施控制流量和网络请求加密的策略。仍然处于pre-v1.0阶段的Istio不支持所有的容器编排器(如Mesos),但对Kubernetes的支持很强。在过去的一年中,Istio的采用一直很强劲,而且仍将持续。
5|Prometheus
Prometheus是Kubernetes的顶级监控工具。它侧重于捕获和提供流式实时指标以供分析。在管理Kubernetes时,你需要实时监控,Prometheus做得很好。 Prometheus利用另一个开源工具Kibana进行可视化,但它本身具有强大的查询功能,可让你充分利用监控指标。Prometheus的最大好处是你可以根据指标设置实时警报。这些警报可以通过电子邮件或Pagerduty等外部工具发送。其他监控工具包括Heapster和cAdvisor,但Prometheus是目前用得最多的。
6|OpenTracing
由于微服务架构的复杂性,网络通信是一个巨大的挑战。当请求通过网络时,它们会触及多个服务。能够跟踪网络请求的细节是管理员所必需的。 OpenTracing以微服务模型为基础,可以深入了解网络请求,从头到尾跟踪完整路径,并在整个过程中及时处理问题。它提供了每个步骤所用时间的直观表示,并且当与指标和日志结合使用时,它是一个强大的调试和安全工具。
7|Kops
命令行是一个常常没有被充分利用的强大工具。Kops希望通过允许开发人员在AWS、Google Cloud和Digital Ocean等云平台上轻松创建和管理Kubernetes集群来改变这种状况。Kops正在为更多云供应商提供支持。Kops允许你使用可以执行复杂任务的简单命令轻松地从CLI创建群集。它通过抽象复杂性和提供强大的默认值和易于定制的模板来实现这一点。就像使用kubectl在集群内运行命令一样,你可以使用Kops在集群上运行命令。Kops的好处是自动化和抽象化的集群管理以及提高效率。Kops还集成了Terraform模板,让你可以在云平台上创建K8s集群。
8|Project Calico
Project Calico是一款独特的工具,可提供基于策略的网络安全性。Calico采用精细且分布式的安全方法。与曾经使整个系统易受攻击的传统外围防火墙不同,Calico使用微型墙封装系统内的每个服务。
9|GRPC
另一个网络工具gRPC处理远程过程调用,即客户端和服务器位于不同主机上时候的通信。gRPC专门管理Kubernetes网络中请求的负载均衡。它启用了路由请求的规则,以便系统在峰值容量时表现正常,并且没有单个节点过载。它处理重试和超时,从而确保没有长时间运行的请求占用系统资源。通过引入请求的双向流,gRPC实时地进行服务到服务的通信。通过克服通信的关键挑战,gRPC让Kubernetes管理员专注于应用逻辑和更高价值的任务。
勇敢的新开源Kubernetes世界
当你向更加以Kubernetes为中心的堆栈迈进时,挑战是新的,解决方案也应如此。这些解决方案并非来自大型供应商,相反,它们来自整个开发者社区,为面临的问题创建解决方案,并与世界分享,以便进一步改进和完善。在这个新经济中,开源不是养子或事后的想法——它是面对云计算这一整个难题的关键。无论是安全性、网络、监控还是更好的管理,都有对应的开源工具。因此,把那些昂贵的、专有的、锁定的供应商工具放在一边,进入开源Kubernetes工具的勇敢新世界吧。
本文转移K8S技术社区-一文掌握Kubernetes衍生的9大开源项目?