于是开启了容器界的Autopilot 谷歌承认Kubernetes太复杂
试问上手Kubernetes有多难?有时候真得会让你怀疑人生。
过去几年,就连互联网大厂的技术砖家也得细细捋。
Google Kubernetes Engine(GKE)产品负责人Drew Bradstock在最近的一次公开声明中说道。
Kubernetes就像一把双刃剑,既是最佳的容器编排技术,同时也存在相当高的复杂性和应用的高门槛,这个过程中往往会导致一些常见性错误。
2019年,知名软件开发服务商Atlassian在尝试部署Kubernetes的三年后就发现了这一点:Kubernetes部署起来实在太复杂了。
如今,就连Kubernetes的创立者和核心推动者Google本身都承认这个问题。
为什么Kubernetes这么难
实际上,在国内,Kubernetes直到2017年之后才开始由混乱开始逐渐走向成熟,很大程度上也源自云计算市场本身的企业用户实践大大加快。
一次采访中,阿里巴巴资深技术专家张磊分析了Kubernetes的本质,他指出,
也就是说,从目前造成Kubernetes复杂性的原因在于两点:一是技术本身的应用难度,二是开发者的接受度,市场的认知和成熟度均有待提高。
鼻祖Google如何不抛弃不放弃
自2015年Google推出其云端托管Kubernetes服务Google Kubernetes Engine(GKE),就一直得到外界关注和使用。在此期间,Google也在不断释出新的版本模型以强化其应用性。
不久前,Google推出一项新功能Autopilot以简化部署和管理Kubernetes配置过程中存在的挑战。
GKE是一个Kubernetes管理平台,主要在谷歌云平台上运行,也可以在Anthos集群管理的其他云平台或本地部署的平台上。
这么来看,目前存在两种操作模式,一是标准的手动控制,二是自动控制Autopilot。Autopilot的基本原理可以解释为:一款GKE完全托管部署的平台,需要运行在谷歌云平台上。 尽管GKE本身就是一项托管服务,但与Autopilot的区别在于,后者能够比GKE具备更强的自主化和自动化能力。
Kubernetes本身涉及了集群(一组物理或虚拟服务器)、节点(单个服务器)、pod(代表节点上一个或多个容器的管理单元)和容器等方面。GKE主要对集群进行托管,而Autopilot则将这点扩展至节点和pod。
谷歌云通常是一地三个或三个以上机房。如果将所有资源放在单个机房,其弹性将小于将其分散在多个机房中,同时将故障分散到多个机房又可以最大程度提升弹性能力。Autopilot模式始终是按地域划分的,这有利于弹性伸缩能力,不过成本较高。
不过,应用Autopilot模式同样存在其限制条件。其中包括操作系统始终基于Google自家容器的Linux“容器优化”,而不是基于Docker,或者基于Windows Server服务器。而且,每个节点的pod最大数量为32,而标准GKE为110。
同时,定价模式上也有所不同。每个Autopilot集群每小时还需要支付1美分的费用。
究竟是Autopilot更贵还是GKE更贵,这种显而易见的问题回答起来却并不简单。“与GKE相比,它还有一个溢价,因为我们得到了站点可靠性工程(Site Reliability Engineering,SRE)和SLA的服务,这就不仅仅只是产品功能了。”
也就是说,由于难以估计计算实例的正确规范,因此未充分GKE标准部署的成本可能会高于Autopilot。
整体来看,新的Autopilot服务为Kubernetes提供了更多选择范畴,可参考成本是否增加、灵活性是否降低、或者给IT运维人员带来的潜在挑战等等。当然,这并不包括对客户支持的满意度这一问题。
值得一提的是,软件工程师Kevin Lin在最近对比了亚马逊和谷歌云服务,指出Google的客户支持基本上没有任何帮助,相比之下亚马逊的技术服务既快又有用。Kevin Lin曾为亚马逊公司任职,他最近描述了自己使用AWS和Google云的经历。
回到一开始雷锋网所探讨的,针对Kubernetes复杂性问题是一直以来困惑很多开发人员的技术问题,伴随Kubernetes已然成为整个云原生社区最主流的开源容器编排技术,在生产环境的采用率越来越高,可以预见其复杂度也会呈线性增长。
你有没有针对复杂性问题的一个最佳实践呢?欢迎你的解决方案。
原创文章,未经授权禁止转载。详情见 转载须知 。