本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
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及其依赖项打包,适用于包括Red Hat和Ubuntu Xenial在内的大多数主要Linux发行版,安装也得到了简化。这意味着用户现在可以使用apt-get和yum等熟悉的工具安装Kubernetes。
- 附加组件部署(例如用于覆盖网络)可以通过使用DaemonSet简化为一条命令。
- 实现这种简单性的是新的证书API及其用于kubelet TLS引导,以及新的发现API。
扩展的有状态应用支持 - 尽管云原生应用旨在运行在容器中,但许多现有应用需要额外功能才能轻松采用容器。最常见的是有状态应用,例如批处理、数据库和键值存储。在Kubernetes 1.4中,我们引入了多项功能,简化了此类应用的部署,其中包括:
- 引入ScheduledJob作为Alpha版本,以便用户可以定期运行批处理作业。
- Init-containers(初始化容器)已升级到Beta版本,解决了在启动主应用程序之前运行一个或多个容器的需求,例如在启动数据库或多层应用程序时按顺序处理依赖关系。
- 动态PVC配置已升级到Beta版本。此功能现在允许集群管理员公开多个存储提供程序,并允许用户使用新的存储类API对象选择它们。
- 针对MariaDB、MySQL和Jenkins等常见有状态应用程序的精选和预测试Helm charts将可通过Helm包管理器版本2实现一键启动。
集群联合API新增功能 - 全球客户最常请求的功能之一是能够构建跨区域和跨云集群的应用程序。
- 联邦副本集 Beta版 - 副本现在可以跨越部分或所有集群,实现跨区域或跨云复制。联邦副本集控制器持续协调总联邦副本计数和相对集群权重/副本计数,以确保您在每个区域/云中拥有所需的Pod。
- 联邦服务现已成为 Beta 版,并且 secrets、events 和 namespaces 也已添加到联邦 API 中。
- 联邦Ingress Alpha 版本 - 从Google Cloud Platform(GCP)开始,用户可以创建一个跨越GCP内集群联邦部署的服务,实现单个L7全球负载均衡的VIP。借助GCP中的联邦Ingress,外部客户端指向一个IP地址,并被发送到联邦在GCP中任何区域或区域中具有可用容量的最近集群。
容器安全支持 - 多租户集群的管理员需要能够在租户、基础设施组件和系统最终用户之间提供不同权限集的能力。
- Pod 安全策略是一个新对象,允许集群管理员控制Pod/容器安全上下文的创建和验证。管理员可以将服务帐户、组和用户与一组约束关联起来,以定义安全上下文。
- 增加了 AppArmor 支持,使管理员能够运行更安全的部署,并提供更好的系统审计和监控。用户可以通过设置一个字段来配置容器在 AppArmor 配置文件中运行。
基础设施增强功能 - 我们根据用户和生态系统的需求,继续增强Kubernetes中的调度器、存储和客户端功能。
- 调度器 - 引入了 Pod 间亲和性与反亲和性 Alpha 版本,适用于希望自定义 Kubernetes 如何共同定位或分散其 Pod 的用户。还提供了 集群附加组件(如 DNS、Heapster 和 Kube Dashboard)的优先级调度功能。
- 中断SLA - 引入了Pod中断预算,以限制集群管理操作(如节点升级)在任何时候删除Pod所造成的影响。
- 存储 - 已添加Quobyte和Azure数据盘的新卷插件。
- 客户端 - 添加了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 应用。
要参与该项目,请加入每周社区会议或在此处(标记为帮助)开始为项目做贡献。
用户和案例研究
自Kubernetes 1.0全面发布以来,在过去的15个月里,这个项目的采用和热情超出了所有人的想象。Kubernetes在数百个组织中投入生产,还有数千个项目正在开发中。以下是几家运行Kubernetes的独特公司的亮点:
- Box -- 将服务发布时间从六个月缩短到不到一周。阅读更多关于Box如何在其Kubernetes上运行关键生产服务的信息:阅读更多。
- 培生 -- 最大限度地降低了复杂性,提高了工程师的生产力。阅读培生如何利用Kubernetes重塑全球最大的教育公司。
- OpenAI -- 一家非营利性人工智能研究公司,利用Kubernetes构建深度学习基础设施,最大限度地提高研究人员的生产力,使他们能够专注于科学研究。
我们非常感谢我们拥有900多名贡献者的社区,他们贡献了5000多次提交,才使这个版本得以发布。要更深入地了解社区如何使用Kubernetes,请加入我们的用户大会KubeCon,直接听取用户和贡献者的意见。
联系我们
- 在 Stack Overflow 上提问(或回答问题)
- 在 Slack 上与社区联系
- 在 Twitter 上关注我们 @Kubernetesio 获取最新更新
感谢您的支持!