这篇文章已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变得不正确。
Kubernetes 1.4:使其能够轻松在任何地方运行 Kubernetes
今天我们很高兴宣布 Kubernetes 1.4 的发布。
自从 15 个月前发布正式版以来,Kubernetes 持续增长,并在整个行业中得到广泛采用。从全新的初创公司到大型企业,用户都描述了 Kubernetes 在构建、部署和管理分布式应用程序方面所带来的巨大改变。然而,我们用户最迫切的需求之一是使 Kubernetes 本身更易于安装和使用。我们已将此反馈铭记于心,1.4 版本中有几项重大改进。
这些安装和可用性增强功能是整个社区共同努力的成果 - 来自 SIG-Cluster-Lifecycle 的 20 多位贡献者齐聚一堂,大大简化了 Kubernetes 的用户体验,涵盖了安装、启动、证书生成、发现、网络和应用程序部署的改进。
此版本中的其他产品亮点包括在任何云上简化集群部署、轻松安装有状态应用程序以及大大扩展的集群联邦功能,从而可以在多个集群和多个云上进行简单的部署。
新增功能
使用两个命令创建集群 - 要开始使用 Kubernetes,用户必须配置节点、安装 Kubernetes 并引导集群。用户的一个常见请求是在任何云(公共云、私有云或裸机)上轻松、可移植地完成此操作。
- Kubernetes 1.4 引入了“kubeadm”,它将引导简化为两个命令,不涉及复杂的脚本。安装 Kubernetes 后,kubeadm init 启动主节点,而 kubeadm join 将节点加入集群。
- 通过将 Kubernetes 与其依赖项打包在一起,简化了安装,适用于大多数主要的 Linux 发行版,包括 Red Hat 和 Ubuntu Xenial。这意味着用户现在可以使用熟悉的工具(如 apt-get 和 yum)安装 Kubernetes。
- 通过使用 DaemonSet,可以将覆盖网络等附加组件的部署减少到一个命令。
- 实现这种简单性的是新的证书 API 及其用于 kubelet TLS 引导,以及新的发现 API。
扩展的有状态应用程序支持 - 虽然云原生应用程序旨在在容器中运行,但许多现有应用程序需要其他功能才能轻松采用容器。最常见的情况包括有状态应用程序,如批处理、数据库和键值存储。在 Kubernetes 1.4 中,我们引入了许多简化此类应用程序部署的功能,包括:
- 引入 ScheduledJob 作为 Alpha 版本,以便用户可以定期运行批处理作业。
- Init 容器为 Beta 版,解决了在启动主应用程序之前运行一个或多个容器的需求,例如在启动数据库或多层应用程序时对依赖项进行排序。
- 动态 PVC 配置移至 Beta 版。此功能现在使集群管理员能够公开多个存储配置器,并允许用户使用新的存储类 API 对象来选择它们。
- 适用于常见有状态应用程序(如 MariaDB、MySQL 和 Jenkins)的经过策划和预先测试的 Helm 图表将可用于使用 Helm 程序包管理器版本 2 进行一键启动。
集群联邦 API 添加 - 我们的全球客户最需要的功能之一是能够使用跨越区域和云的集群构建应用程序。
- 联邦副本集 Beta 版 - 副本现在可以跨越某些或所有集群,从而实现跨区域或跨云复制。联邦副本集控制器会不断协调联邦副本总数和相对集群权重/副本数,以确保你在每个区域/云中都有所需的 Pod。
- 联邦服务现在为 Beta 版,并且 机密、事件和 命名空间也已添加到联邦 API。
- 联邦 Ingress Alpha 版 - 从 Google Cloud Platform (GCP) 开始,用户可以创建一个单一的 L7 全局负载平衡 VIP,该 VIP 跨越部署在 GCP 内的集群联邦中的服务。借助 GCP 中的联邦 Ingress,外部客户端指向一个 IP 地址,并被发送到 GCP 中联邦的任何区域或可用区中具有可用容量的最近集群。
容器安全支持 - 多租户集群的管理员需要能够在租户、基础结构组件和系统的最终用户之间提供不同的权限集。
- Pod 安全策略是一个新对象,使集群管理员能够控制 Pod/容器安全上下文的创建和验证。管理员可以将服务帐户、组和用户与一组约束相关联,以定义安全上下文。
- 添加了 AppArmor 支持,使管理员能够运行更安全的部署,并提供更好的系统审计和监控。用户可以通过设置一个字段来配置容器以在 AppArmor 配置文件中运行。
基础结构增强功能 - 我们将继续根据用户和生态系统的需求,在 Kubernetes 中添加调度程序、存储和客户端功能。
- 调度程序 - 引入了 Pod 间亲和性和反亲和性 Alpha 版,适用于想要自定义 Kubernetes 如何并置或分散其 Pod 的用户。此外,还引入了 集群附加组件(如 DNS、Heapster 和 Kube 仪表板)的优先级调度功能。
- 中断 SLO - 引入了 Pod 中断预算,以限制集群管理操作(如节点升级)在任何一个时间删除的 Pod 的影响。
- 存储 - 为 Quobyte 和 Azure 数据磁盘添加了新的 卷插件。
- 客户端 - 添加了 Swagger 2.0 支持,从而支持非 Go 客户端。
Kubernetes 仪表板 UI - 最后,一个外观精美的 Kubernetes 仪表板 UI,具有 90% 的 CLI 对等性,可实现一目了然的管理。
有关更新的完整列表,请参阅 GitHub 上的发行说明。除了功能之外,Kubernetes 开发最令人印象深刻的方面是贡献者的社区。对于 1.4 版本而言尤其如此,其全部范围将在未来几周内展开。
可用性
Kubernetes 1.4 可在 get.k8s.io 下载,也可以通过 GitHub 上托管的开源存储库 GitHub 下载。要开始使用 Kubernetes,请尝试 Hello World 应用程序。
要参与项目,请加入每周社区会议或从此处开始为项目做贡献(标记为“帮助”)。
用户和案例研究
自从 Kubernetes 1.0 GA 版本发布以来的过去 15 个月里,此项目的 采用和热情超出了所有人的想象。Kubernetes 在数百个组织中投入生产,数千个组织正在开发中。以下是一些运行 Kubernetes 的公司的独特亮点:
- Box -- 将交付服务的时间从六个月缩短到不到一周。 阅读更多有关 Box 如何在 Kubernetes 上运行关键生产服务的信息。
- Pearson -- 最大限度地降低了复杂性,提高了工程师的生产力。 阅读如何 Pearson 使用 Kubernetes 来重塑世界上最大的教育公司。
- OpenAI -- 一个非盈利的人工智能研究公司,使用 Kubernetes 构建了 深度学习基础架构,以最大限度地提高研究人员的生产力,使他们能够专注于科学研究。
我们非常感谢我们由 900 多名贡献者组成的社区,他们贡献了 5,000 多次提交,使此版本成为可能。要更深入地了解社区如何使用 Kubernetes,请加入我们用户会议 KubeCon,直接听取用户和贡献者的意见。
联系
- 在 Stack Overflow 上发布问题(或回答问题)
- 在 Slack 上与社区联系
- 在 Twitter 上关注我们 @Kubernetesio,了解最新更新
感谢您的支持!