以Docker为代表的容器技术,是IT的未来。但如何管理容器,依然是一个问题。随着技术的发展,谷歌的开源工具Kubernetes迅速成为容器管理领域的领导者。它被越来越多的机构当做容器管理领域的首选平台。Canonical、Red Hat、SUSE都认为Kubernetes将会是容器的DevOps领域的未来。
为什么这样说?Kubernetes 1.4中新的特性以及优化点会为您慢慢解释。
对于初学者,这个版本的Kubernetes更容易安装和使用。例如,新版本的Kubernetes面板带有90%的命令行接口功能并且极易使用。
你也可以使用kubeadm来更容器的创建集群。它将启动过程减少到两条命令,并且没有复杂的脚本涉及。一旦Kubernetes安装好,kubeadm会初始化主节点,并将其余节点加入到集群中。
通过打包Kubernetes和它的依赖到对应的Linux网络源里,安装过程变得更加容易。对于最主流的Linux发布版本,例如RHEL和Ubuntu 16.04,用户可以通过熟悉的工具例如apt-get和yum来安装Kubernetes。
除了刚才提到的安装和管理,Kubernetes还包括如下的新特性。
可扩展的有状态的应用支持-虽然云原生应用被构建在容器中运行,但很多现有应用需要额外功能支持来运行在容器中。通常而言,有状态的应用例如批量处理、数据库和键值存储不能直接在容器上运行。为了使这些程序在容器上更容易运行,Kubernetes现在包括:
- ScheduledJob被引入,目前是Alpha版,这个组件使用户能够在周期性的间隔里运行批量作业。
- 启动容器,beta版。在启动主程序前,运行一个或多个容器。这个组件能用来解决软件依赖,尤其是启动数据库或者多层应用的时候。
- 动态PVC供应,beta版。这个特性使得集群管理员能够展示多种存储并允许用户选择一种存储,通过API的方式。
- 预安装的图表可用,供有状态的应用如MariaDB,MySQL和Jenkins使用,并可通过一条命令启动。
联合的API提供:这个特性使得你能在集群内构件应用并跨域或者跨私有云分布。该特性使用了如下测试功能:
- 联合副本集:副本现在能分布在多个甚至是所有的集群中,实现了跨域以及跨云的复制。全部的副本数量和相关集群的权重被联合副本集控制器持续的调整,这样就能保证在每个区域里都有pod。
- 联合入口:伴随着Google Cloud Platform(GCP)的启动,用户能创建一个简单的7层虚IP地址(VIP),这使得用户能将服务分布在GCP的集群里,另一方面,外部用户只需要指定一个单一的ip地址,就能被发往GCP中最近的可用集群。
容器的安全性也有了提高。作为Kubernetes的重要支持者,CoreOS的技术开发经理Caleb Miles写到,“要让用户启动增加的安全特性,首先需要给用户流畅的用户体验。经验表明高级安全特性通常被关闭,如果它阻碍了其他功能。”新的Kubernetes这方面做的不错。
另一方面,多租户管理员现在能提供包含租户、底层基础设施以及最终用户的不同权限集。这些增强的安全特性包括:
- Pod安全策略使得集群管理员能控制发送给pod或者容器的安全策略的创建。管理员可以通过一系列的限制将租户、组以及用户组合起来来定义安全策略。
- 增加了AppArmor的支持。这使得管理员能够运行一个更安全的部署,并提供更好地审计和监控功能。用户只需简单设置一下就能让容器运行在AppArmor里。
其他改进还有很多,但基本的一点是清楚的:Kubernetes正是目前企业在寻找的完整的、打包到内核态的容器管理系统的答案。
想要试一试吗?Kubernetes 1.4已经可以下载,地址是get.k8s.io,也可以直接获取github上的源代码。要尝试Kubernetes,可以先试试Hello World App。
我希望Kubernetes的竞争对手,如Docker Swarm以及Mesosphere DC/OS能直面挑战,并得到提升。这样,不管最后谁是容器DevOps领域的胜出者,我们都会从中受益。
原文链接:Kubernetes 1.4: One DevOps tool to rule all the containers(翻译:王瀛)
==================================================
译者介绍
王瀛:湖北省楚天云研发工程师
原文发布时间为:2016-12-12
本文作者:王瀛
本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。
原文标题:Kubernetes 1.4:一个DevOps工具管理所有的容器