在容器商用化市场竞赛上,Docker以简单易用的封装设计,掀起了容器技术的浪潮,相继成为了容器技术的标准,也带动了IT架构下个十年的变革。
虽然早在2006年就开始发展容器技术的Google慢了一步,但每周至少启用20亿个容器的大规模部署经验,让Google走上了另一条容器发展之路,也就是以提供大规模容器调度和集群管理为主的Kubernetes计划。
4年过去了,Docker和Kubernetes的地位显然互换,过去Docker是最多人琅琅上口的容器技术名词,现在主角则变成了Kubernetes。云端教父AWS云端架构策略副总裁Adrian Cockcroft曾指出,两者虽然都是运用容器技术,但最大的差异是,Docker是要解决应用程序开发(Developing)问题,而Kubernetes是要解决更上层的应用程序运维问题(Operation)。开发问题是早期的痛点,但随着企业越来越依赖容器技术,内部应用越来越多是云原生应用时,运维会是企业IT的新痛点。
运维管理需求是Kubernetes后来居上的关键
因为云原生应用大多采用微服务架构设计,结合容器技术,一支应用程序往往需要数十,甚至复杂者要上百个容器化微服务程序组成,企业若有1百支应用,就得管上数千,甚至上万个容器化微服务,运维管理就成了最大的挑战。这正是后来主打大规模容器集群管理的Kubernetes后来胜出的关键。
企业商软大厂也纷纷加入Kubernetes平台战局,不论是在云端服务或是私有PaaS平台上,来发展自己的Kubernetes产品。像微软更直接找来Kubernetes共同创办人Brendan Burns,负责率领Azure容器服务团队,自己混合云产品Azure Stack也大力支持Kubernetes。IBM同样也靠以Kubernetes为核心的PaaS软件IBM Cloud Private,要来抢攻企业私有云容器平台市场,尤其是微服务管理需求。
很早就支持Kubernetes的红帽,在2015年推出的OpenShift 3.0版中,不惜放弃自己的容器调度工具,开始支持Kubernetes,现在更成为了要通吃跨多云、混合云架构,又能通吃裸机、容器和VM的企业级通用应用管理平台。而虚拟化龙头VMware也不落人后,近来也改力推主打通吃多家IaaS公云和Kubernetes集群管理的容器服务PKS软件。连甲骨文都在旗下云端服务支持Kubernetes。
而云端容器托管服务这两年更进入了新的竞争阶段,不少云端业者相继将自己容器托管服务中的Container,改由Kubernetes取代,例如Azure的ACS早在去年就换成了AKS,IBM则是今年5月将CloudContainer Service更名为Cloud Kubernetes Service,简称IKS。Kubernetes取代了Container,成了容器服务的新代名词。
先让Helm格式成为Kubernetes App封装格式
但是,Google的Kubernetes布局,迟迟没有跨出云端,除了积极参与Kubernetes开源项目之外,就是全力发展GKE,试图打造出云端容器代管服务领导者的地位。直到今年Next云端产品大会举办前一周,Google低调地发布了一个消息,将原本GCP的服务快速安装入口网站(Cloud Launcher)更名为Google Cloud应用市场,开始卖起来各种第三方软件厂商开发的商业软件。
其中最特别的是,这个App市场中设置了企业级Kubernetes App类型,也就是Kubernetes App市场。使用GCP的企业,可以直接在这个App市场,购买想要用的Kubernetes App。Nginx、Spark、Elasticsearch、WordPress、Cassandra等13家软件公司,开始透过Kubernetes App的形式销售企业级软件。
Google还预告要制订一个Kubernetes App的标准,就像OCI容器镜像那样的容器应用打包形式,Google试图要让通过Kubernetes封装管理套件Helm打包的Kubernetes App也能成为一种流通用的封装格式。
不同Docker容器化应用,得将所有程序封装到单一个镜像中,Helm可以将组合一支应用系统的多个微服务程序各自的镜像,打包到一套应用程序包中封装,更符合大型企业应用或复杂云端原生应用的需求。
和Helm封装形式的通用化和专用市场形式的出现,让Kubernetes App成了容器化应用的新格式,这是Google新一代AP层的成形,打下第一个基础。
GKE On-Prem主机首次公开
到了Next大会第一天开场演讲中,正当Google现场示范如何管理部署在两地的GKE容器集群时,突然秀出其中一套GKE的部署地点,竟然就在Next大会举办地点Moscone Center。随即,舞台上也出现了这台GKE主机,Google Cloud云端基础架构资深副总裁Urs Hölzle当场宣布,云端GKE服务将推出软件版本GKE On-Prem,可安装于企业内部机房服务器中。
Urs Hölzle宣布,Google将以GKE On-Prem软件,搭配开源微服务管理平台Istio,组成一套混合云软件称为Cloud Services Platform。GKE On-Prem的管理接口和云端GKE服务完全相同,企业可以将云端GKE上的服务,搬到自己机房,而不用改变管理运维方法。企业运维人员通过GoogleCloud Console就可以同时管理云端的GKE服务和部署于自己机房的GKE On-Prem环境。
而Istio则是一套采取服务网格(Service Mesh)架构,来管理大量微服务的软件,可以将多个Kubernetes集群,集中到单一套服务网格中,来管理,并能支持跨Kubernetes集群联机,也能确保每个集群都套用一致的管理政策。不只Google,红帽同样也在自己的OpenShift上要支持Istio,同样都是看上企业未来大量微服务管理的需求。
不只如此,GKE On-Prem软件也强化了多项混合云整合机制,如企业可使用也可和云端GKE整合,不用建立复杂VPN。另外也可通用云端身份或自己的身份验证服务来登入GKE On-Prem。
运算工作可以跨不同GKE云端集群或自家的GKE集群间移动。企业可自建一个本地端Prometheus来监控GKE On-Prem,也可用云端的Stackdriver服务来监控本地端的GKE On-Prem集群。
不同于云端GKE,本地端GKE软件可存取持久性储存服务来部署大型应用,例如复杂的数据库。Google云端部署工具Cloud Build也可用来部署本地端GKE On-Prem上的容器应用。而Kubernetes应用市场上的Kubernetes应用,果不其然,也可部署到本地端的GKE On-Prem环境中。
Google的Cloud Services Platform战略布局,不只是涵盖了混合云、企业私有云、KubernetesApp市场,还要让自家无服务器服务,能部署到GKE On-Prem上,来进入企业内部。
企业混合云架构的最后一块拼图
Urs Hölzle表示,Kubernetes已经成为企业基础架构的部署标准之一,也因此,Google现在更进一步要用GKE On-Prem软件来补齐企业混合云架构的最后一块拼图。Google新策略是将云带到你身边。要让企业内部环境(on premise)到云端环境的管理工具能一致化,从网络到应用程序都能用同样的管理方式。
而他没说出口的是,如此一来,借助GKE On-Prem软件和Cloud Services Platform布局,Kubernetes已经成为了企业全新的应用层,甚至可以说是新一代的应用服务器层,未来的Kubernetes云原生应用,可以在这一层快速部署,任意调度扩充和迁移,就像是新一代的通用AP层基础架构。
原文:https://www.ithome.com.tw/news/125469