大家好,
趁打开流量主的东风,特此贡献一篇长文,分析一下目前国内国外几大著名云厂商的kubernetes服务,以飨诸君。
文起之前,先聊态度。 我本人是十分看好k8s的发展的,为何? 理因古往今来,能给资本家省钱,能给企业省资源,能把人全栈化,能把业务自动化的玩意,肯定是会受追捧的。君不见docker兴起之时,mesos启势之际,到k8s一统天下。国内企业,技术人员已经有能力消化和适用K8S这类理念和框架了,其带来的好处和收益或许不亚于pc时代的linux服务器,故而有人称之为云时代的linux系统,鄙人确也深以为然。他有啥好处?看起来其实十分简单:
scaling: k8s直接按需扩展pods
recovery:k8s帮你监管pods,出问题了自动修复
monitoring:k8s包含了很多监控能力
free: k8s是免费的
easy&fast:部署应用贼快贼方便,ci/cd集成容易
然而,K8S是银弹(silver bullet)吗? 显然不是。
我一直强调其是一种理念,开发架构部署时的理念,原则上,你需要具备应用现代化,云原生化,DDD的能力,才能更好结合K8s帮助企业应用数字化转型。通过将业务模型和软件架构改造,配合k8s来做,这才是正确的使用方式。
你问我一个简单的CMS或者企业内部应用sap的,Oracle,需要K8S么? 我只能说可能不适合。语言,框架,开源软件,都是工具, 择适之而行,方是正道。
言归正传,先抛出一个鄙人客观修改过的横向比对图给各位看一下总览,主要从国外的几大K8S比较表里截取并结合国内情况略加修改。
Google GKE
Microsoft AKS
Amazon EKS
Ali ACK
Tencent TKE
服务时间
2014
2017
2018
2017
2018
K8S版本
1.13
1.13
1.12
1.11
1.10.5
地域支持
全球
几乎全部
几乎全部
几乎全部
几乎全部
国内支持
无
有
无
有
有
托管控制面板
是
是
是
是
是
控制面板SLA
无SLA 内部支持99.5&99.95%regional
无SLA 内部支持99.5%
有 99.9%
无
有 99.95%
集群创建时间
3分钟
7分钟
20分钟
8分钟
3分钟
权限控制
有
有
有
有
偏弱
多节点池
有
有
有
有
无
工作节点HA
有
有
有
有
有
gpu 支持
有
有
有
有
有
每节点pod数
100
110
limited by ENI
100
未声明
每集群节点数
5000
100
500+
40
未声明
worker创建时间
<3mim
<10min
<5min
<10min
<3min
裸金属支持
没
没
有
有
有
自动扩展功能
有
有(cluster scaler)
有(手动启用)
有(ESS)
有(cluster scaler)
k8s升级
自动或者手动
手动(自动在roadmap)
手动
手动
手动
控制面板收费
不收费
不收费
20 cents每小时每个master节点
不收费
不收费
控制面板日志集成
有
有
没有
有
有
认证情况
PCI DSS, ISO, SOC, HIPAA
PCI DSS, ISO, SOC, HIPAA
HIPAA, PCI
没有
没有
全局负载均衡
有
没有(roadmap)
没有
没有
没有
全局网络互联
有
有 vpc互联
有 vpc互联
有 vpc互联
有 vpc互联
网络策略支撑
Calico
Calico
Calico
Terway
未声明,无
container as a service 集成
cloud run
Virtual Kubelet with ACI
Virtual Kubelet with Fargate
无
无
使用界面
很好
好
复杂
好
好
AD集成
federation
native ad
federation
无
无
文档情况
很好
很好
很好
好
简陋
开源支持
开源支持良好
开源支持良好
未参与开源
支持一般
支持一般
devops体系
google全套devops体系,优秀
MS全套devops体系,优秀
AWS全套devops体系,良好
ali devops体系,一般,缺少部分组件
Tencent devops体系,一般,缺少部分组件
Windows容器支持
支持
支持
支持
不支持
不支持
看完以后大家应该已经有了一个简单的认知,我再从几个方面跟大家聊聊。
技术层面来看,首先,毫无疑问,K8S的王者还是谷歌。毕竟是始作俑者和生态先锋,其技术始发优势和体系建设还是很好的。但是从某些方面来看,azure也从一些地方进行了弯道超车。比如aci的集成和serverless这一侧。而Azure本身,也结合了其自带的企业属性,在ad, rbac,备份等方面完善了开源软件在企业环境中使用痛点,并反馈给了社区。相信随着K8s创始人的加入,中长期AKS是有能力追赶上GKE的。
而AWS的EKS,则可能是其对于自身ECS未能战胜k8s的一种妥协,所以看起来aws的EKS并没有太放心思,至少没到all-in的程度,AWS作为云玩家里唯一对control plane收费的厂商,其本身并未对K8S的一些feature做到极致,而其本身也一直贯彻对开源界取之卖之的态度,没有给K8S社区做任何贡献,以AWS在云计算界的地位,确实颇值得玩味。
国内玩家里,阿里在一些方面赶上了国际厂商的脚步,对于先进技术的投入和跟进步伐是值得称赞的,然而在很多企业级feature和生态体系,易用性,文档方面还需努力跟上,比如这个Terway,大家都在用calico做network policy,你硬生生憋出个不一样的,又犯了当年maxcompute之错。还有阿里云的容器兼容性有待提高,我身边的一些使用.NET Core的同学反馈,微软为.NET Core的打包镜像多为Debain/Ubuntu,出现各种奇怪问题,还说是你的代码问题,要求使用Centos镜像,这个问题在腾讯云不存在。
腾讯云作为后起之秀,其启动时间,性能等能力是值得肯定的,但同样在feature跟进,版本,生态,甚至易用性文档方面欠缺良多。特别是文档,和gke aks暂且不比,比之阿里也是苍白许多,让人体会不到产品的优势和使用方法,亟待丰富。
从国内情况来看,国内目前真正能用得上的K8S主要还是集中在 微软Azure AKS, 阿里容器服务和腾讯容器服务。从IT选型来看,成熟易用,生态完整,可能还是要考虑Azure AKS,当然,从孤云不长的角度,分应用的tier,利用多家云的优势,也是可行之策。
希望本文能帮助到各位正在考虑 k8s服务的老大们。
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
来源:oschina
链接:https://my.oschina.net/u/4562984/blog/4937829