大家好,
趁打开流量主的东风,特此贡献一篇长文,分析一下目前国内国外几大著名云厂商的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