Kubernetes1.4版本介绍

Kubernetes1.4主要新特性:

  • 创建kubernetes集群只需要两条命令
  • 增强了对有状态应用的支持
  • 增加了集群联盟API
  • 支持容器安全控制
  • 增强包括调度在内的Kubernetes基础架构
  • 通过Kubernetes DashBoard UI已经可以实现90%的命令行操作

20161012104929

两条命令创建集群

为了启动Kubernetes,用户需要提供计算节点、安装Kubernetes和启动集群。用户都渴望一种简易、可移植的方法,在任何云(公有云、私有云或裸金属)上部署Kubernetes集群。为此:

  • Kubernetes 1.4引入了kubeadm命令,它将集群启动简化为两条命令,不需要再使用复杂的kube-up脚本。一旦Kubernetes被安装,kubeadm init启动master节点,而kubeadm join可以将节点并入集群。
  • 安装过程的流水线化,通过打包Kubernetes和它的依赖,对于Linux主要发行版本,包括Ubuntu Xenial和Red Hat的用户可以使用熟悉的apt-get和yum来安装Kubernetes。
  • 附加部署,例如对于一个overlay网络, 使用daemonset方式可以将操作简化为一条命令。
  • 简化这个使用的是新的认证API,它使用kubelet TLS bootstrap,和新的API发现。

增强了对有状态应用的支持

当云原生应用被构建并运行在容器里时,更普遍的的批处理、数据库和KV存储等有状态的应用需要额外的特性来兼容容器。在Kubernetes 1.4里,我们引入了一系列特性来简化这些应用的部署,包括:

  • ScheduledJob alpha版,用户可以按正常间隔运行批处理任务。
  • Init-Container beta版,强调了在启动主容器前运行一个或多个容器,例如启动数据库或多层应用前的序列化依赖
  • 动态PVC升级到beta版。这个特性允许集群管理员暴露多个存储提供者,并且允许用户通过一个新的存储API来选择使用哪个存储提供者。
  • Curated和预测试Helm Charts,对于公共的有状态应用,例如MariaDB、MySQL和Jenkins,使用Helm Package Manager版本2的一条命令就可使用Curated和Helm Charts。

增加了集群联盟API

我们全球的用户共同希望的是在划分了的区域和云上能够构建应用,为此我们提供了:

  • 联邦ReplicaSets Beta版,副本集现在可以在集群中的全部或者部分,跨区域、跨云创建副本。整个联邦副本统计和相对集群权重/副本统计会被持续地保持一致,通过联邦ReplicaSet控制器来保证你在每个区域/云上都拥有这些Pods。
  • 联邦Services beta版,并且secrets,events和namespaces也同样被添加到联邦API中。
  • 联邦Ingress Alpha版,由GCP启动,用户可以创建一个L7的全局负载均衡器,通过VIP负载部署在GCP中跨集群联邦的服务。通过GCP的联邦Ingress,外部客户端通过一个单独IP地址访问,请求会被发送至联邦中最近的可用集群中。

支持容器安全控制

多租户集群的管理员需要能够提供不同的租户、基础设施组件和系统的最终用户之间的权限集合。因而提供了下面的支持:

  • Pod安全策略,它是一种新的对象,使集群管理员来控制Pod/Containers安全上下文的创建和验证,管理员可以联合service accounts,groups和拥有一些限制的用户来定义一个安全上下文。
  • 添加了AppArmor支持,使管理员能够运行一个更安全的部署,提供了更好的审计和系统监控。用户可以通过在AppArmor的配置文件中设置一个简单的字段就可完成容器的配置。

增强包括调度在内的Kubernetes基础架构

我们持续的为基于Kubernetes的用户和生态圈增加调度器、存储和客户端的能力。包括:

  • Scheduler,引入了pod间亲缘性和反亲缘性 Alpha版本,用户能够定制Kubernetes如何组合或分配Pods,还有,集群附加组件的优先调度能力,例如DNS、Heapster和Kube Dashboard。
  • Disruption SLOs,Pod中断预算被引入来限制在任意时刻被集群删除pod带来的影响,例如节点升级。
  • 存储,新的卷插件,适用于Quobyte和Azure Data Disk的被添加。
  • 客户端:Swagger 2.0支持添加,支持非Go的客户端。

通过Kubernetes DashBoard UI已经可以实现90%的命令行操作

最后,一个匹配了90%的Dashboard UI可以提供方便的管理。

对于一个完全的更新列表,我们可以参见Github上的release note。除了Kubernetes开发带来的深刻印象外,更重要的是社区的贡献者。不仅对于1.4版本来说十分重要,在以后会更加重要。

K8S中文社区微信公众号