剖析IBM Cloud Private服务,以Kubernetes为调度核心

IBM Cloud Private重点策略

  1. 主打PaaS应用管理需求,强调快速自建的私有容器云
  2. 兼顾传统IT需求,能同步管理容器及VM

上有AWS、GCP以及Azure,下有甲骨文竞争对手的IBM,在今年3月时宣布,正式在Bluemix容器服务上支持Kubernetes。目前这家公司支持Kubernetes的方式共有两种。第一种是以公有云平台IBM Cloud Public的容器服务为基础,支持容器调度功能。第二种则是在私有容器平台IBM Cloud Private中,以Kubernetes为核心引擎,目前两个平台都已经支持至Kubernetes 1.7.3版。

而IBM调度工具架构的演进,总共可分为3阶段。最初,IBM推出自家版本的Docker,并以Docker Swarm为基础,自主开发了一套调度工具。第二阶段中,则在单一平台上同步整合Mesos及Kubernetes,使用Mesos管理系统资源,Kubernetes则专注在容器调度。而到了现今,则是全力押宝Kubernetes,透过它掌控容器调度、资源分配的任务。

公有云平台以Cloud Foundry为主要底层架构

现在IBM Cloud Public及IBM Cloud Private这两个平台上皆支持Kubernetes,但是平台特色的定位,也影响该门技术的支持程度及实作功能。

目前IBM Cloud Public是以开源PaaS Cloud Foundry为基础,许多服务仍要靠既有Buildpack,打包应用程序执行所需要的组态设定、环境。而容器调度任务则主要靠Cloud Foundry的Diego框架完成。以PaaS为基础的优点在于,开发者只须关注程序代码开发,不须介入底层Docker容器的运作,但是其平台僵固性也更高。

私有容器平台用Kubernetes为核心,还能搭配其他开源工具

虽然目前IBM Cloud Public、IBM Cloud Private皆能作为容器执行平台,但私有环境的目标是让Kubernetes跟Cloud Foundry并存。

IBM Cloud Private虽支持Cloud Foundry,不过底层则是选择Kubernetes为核心,整合了开源网络虚拟化工具Calico、Kubernetes打包工具Helm,以及IBM自家的行动应用程序管理工具Application Center。

而IBM Cloud Private除了有Kubernetes作为调度核心外,还得提供其他相关容器功能。例如,在此平台也有提供容器漏洞扫描功能,想要部署在该平台运作的容器,均得通过此程序,藉此确保既有Kubernetes环境中执行的容器不会受到影响。

以私有容器平台而言,IBM不单把Kubernetes视为容器调度工具,如果将平台上的Docker容器视为各自独立执行的服务,此时Kubernetes便可以被视作PaaS,而IBM Cloud Private则成为企业内部的私有容器云管理平台。

以容器为基础发展,也为企业使用者带来更多自由度,例如,可以自由加入开源工具如Elasticsearch、Kibana或是Grafana等。

此外,现阶段IBM Cloud Private也已经整合微服务管理工具Istio,主要用途为补强Kubernetes的网络功能。Istio现阶段在此平台主要满足两大需求。第一需求是支持路由功能,透过此工具管理、追踪出入集群的网络流量。而第二个功能则是安全监控功能,根据系统管理所定义的网络管理策略,限制系统服务的访问权限。

Istio团队表示,想要开发稳定、松散耦合,又能进入正式环境的微服务相当具有挑战性。随着单体式(Monolithic)应用程序分解成微服务,软件团队必须考虑分布式系统如何整合各种服务,像是服务搜寻、负载平衡、容错、监控。

而Istio提供的是「服务网」(Service Mesh)的概念,让服务及网络之间拥有透明的架构层,提供运营商所需的控制能力,开发人员也可以专注开发程序代码,让运营商脱离应用程序的功能开发与发布过程。而Istio的角色即是系统化地嵌入代理人,将各种不同的微服务变成单一的整合服务网络。

而近日所推出的0.2版,除了加强稳定性、表现效能之外,也加入一些企业所需的支持,像是TLS认证机制、TCP服务。同时,Istio开始支持多种开源工具,像是HashiCorp的集群管理调度工具Nomad、服务探查工具Consul,还有Netflix开源推出的云端负载均衡工具Eureka。

Kubernetes操作接口仍有可继续加强,增进易用性

不过,现在许多企业系统仍以VM环境为主力,还不能一次到位地迈入容器环境。因此,IBM以基础架构管理工具Terraform,开发了IBM Cloud Automation Manager,即使只有Kubernetes,也能同步管理容器及VM。

目前Kubernetes最新的版本为1.8,而IBM已经开始支持1.7.3版,支持步调算是快。不过部分既有服务、产品还未能与容器平台进行深度整合。例如,现在企业用户使用Kubernetes必须透过传统的命令程序接口操作,对部分非工程背景用户可能较不便。而IBM现在也已经计划,要推出更友善的Kubernetes操作接口。

同时,IBM也希望把Kubernetes变成新一代的PaaS平台,并且将产品、服务容器化,透过Docker镜像形式提供并收取授权费用,也能减低企业部署、安装的难度。