Kubernetes 服务落地的三种方式
技术
作者:向志华
译者:
2017-12-06 09:54



Kubernetes,也称K8s,是一个开源的集群管理软件,用于部署、运行和管理容器。它的美妙之处在于:它让开发人员专注于他们的应用程序,而不用担心提供它们的底层基础设施,Kubernetes不仅可以运行在本地数据中心里,也可以运行在大量的云服务提供商上,比如Oracle、AWS、GCE和Azure等。Kubernetes在2015年发布,最初由谷歌创建。此后不久,谷歌与Linux基金会合作创建了云计算原生应用基金会(CNCF),并向该组织捐赠了Kubernetes作为种子技术。

Kubernetes特性

可移植性:
云原生应用程序开发的理念可以用一个词来概括-“可移植性”。在CNCF版图里,可移植性也是Kubernetes的主要概念,它消除了基础设施锁定,并使开发人员能够在任何基础设施上运行。可扩展性:Kubernetes在操作系统、容器运行时、存储引擎、处理器架构或云平台时提供了选择的自由。它还允许开发人员在KubernetesAPI中集成他们自己的应用程序,并通过Kubernetes工具扩展或推出新的创新特性。自愈合性:Kubernetes持续地执行修复,保护容器应用程序抵御任何可能影响可靠性的故障。从而降低了操作人员的负担,提高了系统的整体可靠性。它还提高了开发人员的速度,因为开发人员可能花在故障诊断上的时间和精力可以花在开发新特性上。

Cloud Native Con+Kube Con调查报告

CNCF对2017 Cloud Native Con+Kube Con大会欧洲站参与者关于Kubernetes技术的使用情况进行了一次调查,将调查报告内容公布于CNCF网站上。
在容器管理平台选择方面,自去年11月份以来,Kubernetes以近8成的份额占据统治地位。



在选择Kubernetes作为容器管理平台的用户中,自去年11月份以来,有近6成的用户将Kubernetes应用于真实生产环境中。



为了能够支持大规模的集群管理,Kubernetes承载了很多的组件,而且分布式本身的复杂度就很高。kubernetes项目本身模块化和功能分离做得很好,优点是插件支持度高、适合多个模块多人并行开发,缺点是部署困难。Networking、Security、Storage是广大开发人员在使用Kubernetes过程碰到最多的问题。

 
Oracle Kubernetes相关服务介绍

Oracle曾在2017年9月13日宣布,作为白金会员加入开源组织-云原生计算基金会(Cloud Native Computing Foundation  CNCF)。Kubernetes作为CNCF的种子项目,得到了Oracle的大力支持,Oracle投入极大的资源到Kubernetes开源社区中,同时也将Kubernetes产品的强大功能特性带到Oracle云平台上。在Oracle云平台上,通过三种方式提供Kubernetes 云服务:

1. DIY

客户在Oracle Cloud Infrastructure云服务上直接部署Kubernetes服务



通过此种方式,Oracle将为客户提供稳定可靠的计算资源、存储资源、网络资源等基础设施产品服务,客户自己选择适用自己的container产品,选用适用自己的Kubernetes网络产品,Kubernetes集群监控产品等等,客户将获得最大的灵活性,部署、维护适合自己的Kubernetes 服务。 

2. Terraform Installer for Kubernetes

使用Oracle提供的工具在Oracle Cloud Infrastructure云服务

上直接部署Kubernetes服务Terraform 是一个安全和高效的用来构建、更改和合并基础架构的工具,采用 Go 语言开发。Terraform 可管理已有的流行的服务,并提供自定义解决方案。Terraform 是 Infrastructure as Code 的一个实现,通过自定义的一种形式化语言来模块化地描述各个服务组件和由这些组件构成的整个架构。这样用户便可以通过管理代码的方式来描述、追踪对架构的修改。然后通过 Terraform 命令来便利地创建或者是解构服务。
Terraform Installer forKubernetes提供了一套Terraform模块和示例基本配置,以便在Oracle Cloud Infrastructure(OCI)的租户中调配和配置高可用性和可配置的Kubernetes集群。这包括虚拟云网络(VCN)和子网,运行Kubernetes controlplan的实例,以及Kubernetes主节点集群和etcd集群前端的LoadBalancer(LB)负载均衡器。基本配置支持许多输入变量,这些输入变量允许指定Kubernetes主节点和节点规格/大小以及如何将它们放置在底层可用的可用域(Availability Domain)之间。 这种部署方式非常强大,因为除了虚拟机规格外,还可以指定Bare Metal 的规格(无hypervisor!),以便为Kubernetes群集充分利用OCI基础架构的极致性能。这些节点还被智能标记(例如,标记Availability Domain)以支持Kubernetes多区域(mutilate-zone)部署,以便Kubernetes调度程序可以横跨AvailabilityDomain调度部署Pods。

 
3. Oracle Container Engine

完全托管的Kubernetes 服务

为彻底屏蔽Kubernetes底层复杂性,Oracle更进一步,提供完全托管的Kubernetes服务——一个集成了Kubernetes生产级容器编排工具以及Oracle下一代云基础架构-OCI托管的云服务,将Kubernetes与OCI在控制、安全、高可预测性能相结合。OCE作为完全托管的Kubernetes服务,在服务供应上,易于配置,只需要配置Kubernetes 集群服务名称,选择Kubernetes版本,确定Kubernetes集群大小,提供访问集群的凭证信息(SSH)。提供补丁和升级,标准的API接口 ,做到与开源Kubernetes API保持完全一致。内置Helm Chart,部署可重复安装的应用程序,容易共享。同时内置DNS,来解耦最终的服务调用者和服务提供者。


Oracle Container Engine(OCE)具有以下显著特征:

容器原生:标准Kubernetes(当前稳定版本1.7.4); 完全的生命周期管理。开发人员友好:简单,简化的用户界面; 丰富的API; 集成Helm,Dash board和内置DNS。企业就绪:Oracle云基础架构性能; 高度可用; 访问安全控制。
这些服务高度集成,为客户提供独特的容器原生体验,从建设到部署,拥有基于container的完整的CI/CD流程。


70 comCount 0