本文发表已超过一年。较早的文章可能包含过时内容。请检查页面信息自发布以来是否仍然准确。
Kubernetes 1.4:让 Kubernetes 在任何地方运行都变得简单
今天,我们很高兴地宣布 Kubernetes 1.4 版本发布。
自 15 个多月前达到普遍可用 (GA) 版本以来,Kubernetes 持续发展并在行业内获得了广泛应用。从全新的初创公司到大型企业,用户都描述了 Kubernetes 在构建、部署和管理分布式应用方面带来的巨大改变。然而,用户最主要的请求之一是让 Kubernetes 本身更易于安装和使用。我们认真听取了这些反馈,并在 1.4 版本中进行了多项重大改进。
这些安装和可用性增强是社区协同努力的结果——来自 SIG-Cluster-Lifecycle 的 20 多位贡献者共同大幅简化了 Kubernetes 用户体验,涵盖了安装、启动、证书生成、发现、网络和应用部署等方面的改进。
此版本的其他产品亮点包括在任何云上的简化集群部署、易于安装有状态应用,以及大幅增强的集群联邦能力,从而实现跨多个集群和多种云的简单部署。
新特性
使用两个命令创建集群 - 要开始使用 Kubernetes,用户必须配置节点、安装 Kubernetes 并引导集群。用户常见的请求是希望有一个简单、可移植的方法在任何云(公有云、私有云或裸金属)上完成这些操作。
- Kubernetes 1.4 引入了 ‘kubeadm’,它将引导过程减少到两个命令,无需复杂的脚本。安装 Kubernetes 后,使用 kubeadm init 启动 Master 节点,而 kubeadm join 将节点加入集群。
- 通过将 Kubernetes 及其依赖项打包,简化了安装过程,支持大多数主流 Linux 发行版,包括 Red Hat 和 Ubuntu Xenial。这意味着用户现在可以使用 apt-get 和 yum 等熟悉工具安装 Kubernetes。
- 附加组件(如 overlay 网络)的部署可以通过使用 DaemonSet 减少到一个命令。
- 实现这种简便性得益于新的证书 API 及其在 kubelet TLS 引导中的应用,以及新的发现 API。
扩展的有状态应用支持 - 虽然云原生应用是为了在容器中运行而构建的,但许多现有应用需要额外的功能才能轻松采用容器。最常见的是有状态应用,例如批量处理、数据库和键值存储。在 Kubernetes 1.4 中,我们引入了许多简化此类应用部署的功能,包括:
- 引入了 ScheduledJob 的 Alpha 版本,以便用户可以按固定间隔运行批量作业。
- Init 容器达到 Beta 阶段,解决了在启动主应用程序之前运行一个或多个容器的需求,例如在启动数据库或多层应用时按顺序处理依赖关系。
- 动态 PVC 供给升级至 Beta。此功能现在使集群管理员能够公开多个存储供给器,并允许用户使用新的 Storage Class API 对象选择它们。
- 精心维护和预测试的常见有状态应用 Helm Charts,如 MariaDB、MySQL 和 Jenkins,将通过 Helm Package Manager v2 提供,支持一个命令启动。
集群联邦 API 增强 - 全球客户最常请求的功能之一是能够跨区域和跨云构建应用集群。
- 联邦 Replica Sets Beta - 副本现在可以跨部分或所有集群,实现跨区域或跨云复制。联邦 Replica Set 控制器会持续协调总联邦副本数和相对集群权重/副本数,以确保您在每个区域/云中拥有所需的 Pod。
- 联邦 Service 现已达到 Beta 阶段,并且 secret、event 和 namespace 也已添加到联邦 API 中。
- 联邦 Ingress Alpha - 从 Google Cloud Platform (GCP) 开始,用户可以创建一个跨越 GCP 联邦集群中部署的服务的单一 L7 全局负载均衡 VIP。借助 GCP 中的联邦 Ingress,外部客户端指向单个 IP 地址,并被发送到 GCP 联邦中任何区域或区域中具有可用容量的最近集群。
容器安全支持 - 多租户集群的管理员需要能够在租户、基础设施组件和系统最终用户之间提供不同的权限集。
- Pod Security Policy 是一个新的对象,使集群管理员能够控制 Pod/容器安全上下文的创建和验证。管理员可以将服务账号、组和用户与一组约束关联,以定义安全上下文。
- 添加了 AppArmor 支持,使管理员能够运行更安全的部署,并提供更好的系统审计和监控。用户只需设置一个字段即可配置容器在 AppArmor profile 中运行。
基础设施增强 - 我们根据用户和生态系统的需求,持续增强 Kubernetes 的调度器、存储和客户端功能。
- 调度器 - 引入了面向用户的 Pod 间亲和性和反亲和性 Alpha 功能,用户可以自定义 Kubernetes 如何共置或分散其 Pod。还包括对 DNS、Heapster 和 Kube Dashboard 等集群附加组件的优先级调度功能。
- 中断 SLO - 引入了 Pod Disruption Budget,以限制集群管理操作(例如节点升级)在任何时候删除 Pod 的影响。
- 存储 - 添加了 Quobyte 和 Azure Data Disk 的新卷插件。
- 客户端 - 添加了 Swagger 2.0 支持,支持非 Go 客户端。
Kubernetes Dashboard UI - 最后,一个漂亮的 Kubernetes Dashboard UI,具备 90% 的 CLI 功能对等性,用于一目了然的管理。
有关更新的完整列表,请参阅 GitHub 上的发布说明。除了功能之外,Kubernetes 开发中最令人印象深刻的方面是贡献者社区。对于 1.4 版本尤其如此,其全部内容将在未来几周内逐步展现。
可用性
Kubernetes 1.4 可在 get.k8s.io 下载,也可通过托管在 GitHub 上的开源仓库获取。要开始使用 Kubernetes,请尝试 Hello World 应用。
要参与该项目,请加入每周社区会议,或在这里开始贡献(标记为 help)。
用户和案例研究
自 Kubernetes 1.0 GA 版本发布以来的十五个月里,该项目的采用和热情超出了所有人的想象。Kubernetes 已在数百家组织中运行于生产环境,还有数千家正在开发中。以下是几家运行 Kubernetes 的公司的独特亮点:
- Box -- 将其服务上线时间从六个月缩短到不到一周。阅读更多关于 Box 如何在 Kubernetes 上运行关键生产服务的内容。
- 培生 (Pearson) -- 最小化了复杂性并提高了工程师的工作效率。阅读培生如何使用 Kubernetes 重塑全球最大的教育公司。
- OpenAI -- 一家非营利人工智能研究公司,使用 Kubernetes 构建了深度学习基础设施,以最大限度地提高研究人员的生产力,使他们能够专注于科学研究。
我们非常感谢超过 900 名的贡献者社区,他们贡献了 5,000 多次提交,才使得这个版本成为可能。要更深入地了解社区如何使用 Kubernetes,请加入我们的用户大会 KubeCon,直接听取用户和贡献者的分享。
联系我们
- 在 Stack Overflow 上提问(或回答问题)
- 在 Slack 上与社区联系
- 在 Twitter 上关注我们:@Kubernetesio 获取最新更新
感谢您的支持!