微服务架构是那种能够扩大差距的下一代技术。就应用程序而言,微服务架构是保持相关性的关键,其中大版本更新慢、补丁粗糙都是不可接受的。容器是向微服务架构迈出的第一步,接下来就得靠Kubernetes管理微服务。
管理微服务
如果容器在你的“购物清单”上,那么Kubernetes绝对是下一个选项。开源并由CNCF不断开发让越来越多的人相信这项技术将持续发展。当PC还是一件新事物时,很多公司犹豫不敢投入很多,担心两倍速度的处理器明天就会出来。Kubernetes不会有这样的情况,它在全球各地专业人才的帮助下,永远都在升级。它是每个人都想要投资的技术。
容器编排
Kubernetes的更新显示了技术的灵活性和伸展性。围绕它的工具和支持软件的生态系统呈指数级增长,围绕Kubernetes构建的工具的可定制性进一步增长。现在,尽管很多人将整个堆栈统称为“容器”,但Kubernetes清楚地区分了管理良好的容器。
Docker绝对是推动容器时代到来的软件,但却是从人们开始使用Kubernetes时才是真正管理容器。Kubernetes使人们可以通过简单易用的API来管理数千个在容器中运行的微服务。
Kubernetes还让利用已经围绕它建立的庞大的专业工具生态系统成为可能,这是一个非常庞大的资源。它是开源的,也由于是CNCF的宠儿,让它有了吸引力,而且大多数公司认为,如果Kubernetes对谷歌、Netflix来说足够好,对他们当然也足够好。
未开拓的领土
微服务架构意味着必须开始以不同的方式做事情,还意味着需要做很多以前没有做过的事情。当数以千计的微型服务相互通信时,需要做一些后台工作提供保障。 Kubernetes是通过提供管理微服务的工具来确保这一点。
像服务发现、负载均衡和基于策略的网络安全等都起作用。如果只有容器引擎,那么举步维艰。编排告诉人们该做什么,编排和微服务架构开启了一些新领域。
服务发现
当可以轻松找到其他服务和自己的依赖关系时,微服务的工作效果最佳——Kubernetes就有着精心设计的服务抽象。要使用服务,你需要动态发现它的pod实施,以便可以调用它。这是服务发现,Kubernetes提供DNS名或环境变量,这就是发现服务的两种方式。 Kubernetes默认使用DNS——这是通过使用DNS来将服务名称解析为服务的IP地址来完成的。
负载均衡
现代高性能应用程序和网站可满足成千上万的用户从游戏到视频到即时聊天的任何需求。负载均衡是通过一组后端服务器有效地分发网络流量以提高整体性能的做法,而且还有效地实现了这一点。 Kubernetes有两种不同类型的负载均衡器。一种是内部类型,可平衡容器之间的负载,一种是外部负载平衡器,主要用于公有云。
基于策略的网络安全
在Kubernetes中,默认情况下所有pod可以相互通信。网络策略制定了一套关于谁能与谁通信的基本规则。网络策略还定义如何允许pod组彼此和其他网络端点进行通信,并且还将pod隔离,以便它们拒绝网络策略不允许的任何连接。默认情况下,pods是非隔离的,接受所有传入的流量,因此,如果你想要更多地控制谁可以与你的容器通信,网络策略一定会出现在你的列表中。
使用Kubernetes管理微服务的优势是你可以访问大量生态系统工具。 Calico绝对是其中一个让一切变得更容易的工具。
Calico项目通过围绕每个工作负载创建防火墙来保护Kubernetes网络,从而使袭击者必须处理更多的防火墙。来自Calico的这些微型防火墙能够分别保护每个工作负载——一个服务失效不会带来多米诺效应。每个服务完全有能力独立进行。
Calico可以与CoreOS的开源容器网络项目Flannel进行集成(Flannel这个名称意味着它可以在你的微服之间创建连接的“结构”)。两者的集成被称为“Canal”,整合了Calico的安全性和Flannel的连接选项。Canal也是一个开放源码的项目,本质上是通过整合两个工具所带来的更完整的解决方案。
对于所有需要管理微服务的人来说
技术和现代应用程序之美在于它们像油漆:如果你不喜欢蓝色或黄色,你可以把它们混合起来得到绿色!Weave是另一个最近被谈论得比较多的基于策略的安全系统。随着越来越多的时间、精力和金钱投入到基于策略的网络安全,可以下结论,这是保护和管理由容器实现的微服务应用的最佳方式。
除了Calico和Weave,Kubernetes周围还有很多非常强大的工具和资源,特别是在网络和安全方面。CNCF的一些最新采用与Istio和Linkerd等容器网络有关。
Kubernetes不仅帮助人们管理微服务,而且还促进了整个工具和服务生态系统,帮助人们轻松管理微服务。这基本满足了企业的所有需求。Kubernetes相对于Swarm的领先优势就在于此,而且后者还难以跟上。
本文转移K8S技术社区-Kubernetes决胜Swarm的优势在这里?