当前位置: 首页 > 科技观察

2020年Kubernetes-as-a-Service(KaaS)状态

时间:2023-03-12 03:09:20 科技观察

从开发者的角度,EKSvs.AKSvs.GKE2019年2月,正如AWS宣布将EKS的GA发行版添加到Azure的AKS和GCP的GKE几个月后,我将这些服务作为开源Kubernetes书籍第一版的一部分进行了比较。从那时起,Kubernetes的使用呈爆炸式增长,托管Kubernetes产品已成为所有主要云提供商的标准化。根据云原生计算基金会(CNCF)于2020年3月发布的最新调查,在AWS和GCP上的托管Kubernetes服务中,Kubernetes的生产使用率从58%跃升至78%。>CNCF2019调查中的容器管理使用情况根据我个人使用Kubernetes的经验,从2019年到现在最显着的区别是云之间的功能对等。GKE曾经享有的巨大领先优势已经大大减少,在某些情况下甚至被其他供应商超越。由于有许多资源比较每个服务的产品和价格差异(例如learnk8s.io、stackrox.com、parkmycloud.com),在本文中我将重点介绍在开发和生产中使用这些服务的个人经验。.亚马逊EKS考虑到AWS在云上的主导地位,EKS和kops的大量使用也就不足为奇了。现有AWS客户的一个明显优势是,只需对其他服务进行最少的修改,即可将工作负载从EC2或ECS迁移到EKS。但是,我通常发现EKS在托管Kubernetes功能方面落后于GKE和AKS。Github上有所有AWS容器服务(ECS、ECR、Fargate和EKS)的公共路线图,但我对AWS的总体印象是它正在推动更多无服务器产品(例如Lambda、Fargate)而不是容器使用。但这并不是说亚马逊的支持不是很好,我也不认为EKS不是亚马逊的优先事项。事实上,EKS提供了一个有资金支持的SLA来鼓励企业使用(2020年6月15日更新-从20年5月19日开始,AKS也提供了一个有资金支持的SLA)。由于EKS强制执行RBAC和pod安全策略,因此它在基本级别安全性方面优于GKE和AKS。最后,现在GKE还对每个主节点管理收取每小时0.10的费用,这两个云之间的价格差异甚至可以忽略不计,包括ReservedInstances和其他企业协议。与许多其他AWS服务一样,EKS在配置集群方面提供了很大的灵活性。另一方面,这种灵活性也意味着管理负担落在了开发人员身上。例如,EKS为CalicoCNI提供网络策略支持,但需要用户手动安装和升级。Kubernetes日志可以导出到CloudWatch,但这在默认情况下是关闭的,留给开发人员部署日志代理来收集应用程序日志。最后,升级也是由用户发起的,由用户负责更新开发者上的主要服务组件(如CoreDNS、kube-proxy等)。>部署工作节点是一个单独的步骤,而不是配置集群——图片来自AWSEKS最令人沮丧的部分是创建实验集群的困难。在生产中,上述大部分问题都可以用Terraform或CloudFormation解决。但是,当我只想创建一个小型集群来尝试新事物时,我往往会花一些时间来使用CLI或GUI,才意识到我在这个过程的后期错过了设置或IAM角色。在我们完善Terraform配置之前,我发现eksctl是创建生产就绪型EKS集群的最可靠方法。eksworkshop网站还为常见的集群设置操作提供了出色的指南,例如部署Kubernetes仪表板、建立EFK堆栈以进行日志记录以及与其他AWS服务(例如X-Ray和AppMesh)集成。>eksctl—EKSbWeaveWorks的cli工具总的来说,在EKS在Kubernetes1.14及更高版本中引入托管节点组之前,我发现EKS是一个相当大的管理负担,尤其是在刚开始的时候。AWS正在迅速追赶竞争对手,但EKS仍然不是新用户的最佳起点。在为较新的Kubernetes版本提供支持方面,AzureAKS出人意料地优于GKE(截至2020年6月,AKS的预览版为1.18,而GKE的预览版为1.17)。同样,AKS仍然是唯一不对控制平面使用收费的服务。与EKS一样,主节点升级必须由开发者发起,但EKS负责基础系统升级。就个人而言,我没有在生产中使用过AKS,因此我无法评论技术或操作挑战。但是,截至2020年5月19日,AKS不仅提供了有资金支持的SLA(99.95%可用区),而且还使其成为允许无限免费集群的可选功能(2020年6月15日更新)。尽管如此,Azure对Kubernetes的持续投资体现在Azure从CNCF毕业后对Helm的贡献(微软获得了创建Helm的Deis的贡献)。随着Azure继续缩小与AWS的差距,我预计随着对社区问题的支持不断增加,AKS的使用将会增加。>打包应用程序——CNCF调查谷歌云GKE虽然谷歌决定开始对非Anthos集群的控制平面使用收费,这在开发者社区中引发了挫败感,但GKE在功能、支持和易用性方面无疑仍然是托管Kubernetes的领导者kingof对于不熟悉Kubernetes的新用户,创建集群的GUI体验以及通过Stackdriver的默认日志和监控集成,使其易于上手。GKE也是唯一提供全自动主节点和节点升级过程的服务。通过引入集群维护窗口,节点升级可以在受控环境中以最小的开销完成。节点自动修复支持还减轻了开发人员的管理负担。与许多GCP产品一样,GKE出色的托管环境确实意味着定制可能很困难,有时甚至是不可能的。例如,GKE默认安装kube-dns,要使用CoreDNS,您需要修改kube-dns设置。同样,如果Stackdriver不适合您的日志记录和监控需求,您必须卸载这些代理并自行管理其他日志代理。尽管如此,我对GKE的体验总体上还是很愉快的,即使考虑到价格上涨,我仍然会推荐GKE,而不是EKS和AKS。GKE最令人兴奋的部分是越来越多的基于托管Istio和CloudRun的服务。容器的托管服务网格和无服务器环境将继续降低迁移到云和微服务架构的门槛。虽然GCP在整体云市场份额上落后于AWS和Azure,但它在2020年仍保持在Kubernetes领域的领先地位。>GoogleCloudServicePlatform—GCP博客资源资源CNCF调查2019Kubernetes托管服务Kubernetes书籍比较:Amazon、Azure和Google的托管Kubernetes服务EKSvs.GKEvs.AKS