由于Kubernetes能给混合平台管理带来各种好处,所以很多厂商都在以Kubernetes为核心构建混合云解决方案。比如:谷歌的Anthos、VMware的Tanzu、AWS的EKS Anywhere等等。那么,不以Kubernetes作为底层资源管理层的产品有哪些?最具代表性的是AWS Outposts和Azure Stack,他们把许多公有云服务从他们各自的平台扩展到内部基础设施部署,比如基于云计算的虚拟机和数据库,让用户在数据中心使用AWS或Azure云平台上的许多公有云服务成为可能,包括API调用和各种管理工具等。
Kubernetes选型由业务需求决定
那么,从用户应用的角度看,该如何选择呢?到底要不要基于Kubernetes构建混合云平台?非Kubernetes模式能带来更好的用户体验吗?答案是根据你的业务需求来选择!
是否要通过Kubernetes管理工作负载,要看你的应用部署在哪里。如果你选用的是 Anthos、Tanzu等云平台,你可以通过内嵌的Kubernetes来编排一切;但如果你选择的是AWS Outposts和Azure Stack这样的解决方案,可以使用CloudWatch、CloudTrail、CloudFormation等本地化的管理工具来部署和管理应用。当然,如果你只喜欢Kubernetes这种管理方式,而不想使用上述的任何云解决方案,你也可以选择基于Kubernetes的其他混合云平台。
除了应用部署问题,还要考虑应用被容器化的程度,Kubernetes可以像管理容器一样管理虚拟机,这点在 Tanzu和 Anthos中都能实现。但在Kubernetes中管理虚拟机总归有点奇怪,因为Kubernetes的设计初衷是为了编排容器,而虚拟机的启动和停止速度通常不像容器那样快,而且很少有人以容器的方式启动多个VM实例。如果你的工作负载主要由vm组成,那么使用不以Kubernetes为核心的混合云平台可能效果会更好。
另外,还有一个值得重点关注的问题是,我们对于Kubernetes是否能长远投资,必须持怀疑态度。现在,Kubernetes之所以很热,是因为谷歌和VMware都把它纳入到混合云的基础设施层;但毕竟Kubernetes只有7年的发展历程,很有可能会“昙花一现”。就像5、6年前的Docker,当初Kubernetes没出现的时候,几乎所有人把赌注都压在了Docker上。所以,技术创新永无止境,我们不能盲目追热,而是要冷静思考,充分考虑到应用的灵活性。
就目前应用现状来看,基于kubernetes的混合云平台一定比那些只依赖于云供应商提供的专有工具更灵活,比如:如果你使用的是Azure Stack,就很难迁移到AWS Anthos,但从Anthos迁移到Tanzu相对要容易得多。尽管不是无缝的,但两个平台都建立在统一的Kubernetes管理平台上。