K8S 1.10 重磅发布| 技术角度解读 10 大模块更新
技术
作者:CPH,任我行
译者:夏天
2018-03-27 07:03

2018 年 Kubernetes 第一个版本 1.10 已经发布。新版本持续增强了 Kubernetes 的成熟性、可扩展性以及可插拔性。

最新的版本在 3 个关键功能(存储、安全和网络)增加了其稳定性。像往常一样,本次 Kubernetes 1.10 版本发布依然存在处于不同阶段(alpha,beta 和 GA)的功能,其中一些功能在此版本中值得特别关注。那么哪些功能的变动会对我们的应用产生影响呢?

接下来就请你跟我们一起从技术专业角度,听一线工程师解读 Kubernetes 1.10 新功能,看最权威的上游 GitHub release notes 怎么说!

新发布的 Kubernetes 1.10 版本有几个值得注意的新增特性,包括引入了 kubectl 外部证书提供者(alpha 版本)、在安装的时候可以从 DNS service 切换到 CoreDNS(beta 版本)、容器存储接口(CSI)以及本地持久数据卷到了 beta 版本。

主要更新 10 个模块

1.Node

Node 方面的更新大多围绕控制层面:

  • Kubelet 动态配置(Dynamic Kubelet Configuration beta 版本):可以在 Node 不下线的情况下改变 Kubelet 的配置;
  • 可配置 Pod 中的容器是否共享一个 namespace(alpha 版本);
  • CRI 方面也做了一些改进,并升级到 v1alpha2 版本:支持 Windows 容器的配置; CRI 验证测试的 beta 版本。

此外,资源管理 Working Group 在 1.10 版本中将 3 个功能升级到了 beta 版本:

  • CPU Manager
  • 允许用户请求独有的 CPU 核,这将带来几个方面的性能提升;
  • 对网络延时敏感的应用;
  • 对 CPU 缓存敏感的应用。
  • Huge Pages
  • 允许 Pod 请求 2Mi 或者 1Gi 的 Huge Pages;
  • 这将对内存有很大需求的应用带来好处。
  • Device Plugin
  • 提供了第三方设备资源发现的机制;
  • 包括 GPU,FPGA,高性能 NIC,InfiniBand;
  • 以及其他相似的需要特定设置的计算资源。

2.Sig-storage

Kubernetes 1.10 版本对本地存储和持久化存储都进行了增强:

  • Mount namespace propagation允许容器以 rslave 的方式挂载存储卷,这样主机的挂载就可以在容器里面可见,或者以 rshared 的方式挂载,这样容器里面的挂载,主机也可以看到。
  • Local Ephemeral Storage Capacity Isolation允许设置本地临时存储的 requests 和 limits 。 另外,你也可以创建本地持久化存储,也就是说可以利用 attach 到本地的磁盘来创建 PV, 而不像以前那样,只能基于网络存储卷创建 PV。
  • PV方面,1.10 版本包含 PV/PVC 保护, 如果PVC/PV正在被 Pod/PVC 使用,那么就不能直接删除 PVC/PV。
  • 这个版本还包括本地持久化存储的 Topology Aware Volume Scheduling ,稳定版本的 Detailed storage metrics of internal state 以及 beta 版本的 Out-of-tree CSI Volume Plugins.

3.Windows1.10 版本继续对 Windows 进行现有 feature 增强,包括容器 CPU 资源,镜像文件系统数据,和 flexvolumes。 还增加了 Windows 服务控制管理器(Windows service control manager)支持,对单容器 Pod 进行 Hyper-V 隔离实验性支持。

4.OpenStack

SIG-OpenStack 更新 OpenStack provider 。可以使用更新的 APIs,合并代码到一个库,和 Cloud Provider Working Group 合作制定长久计划,把 provider 相关的代码移动到一个单独的代码库里面,改善代码测试,增强与 OpenStack 开发社区的联系。

5.API-machinery

API Aggregation 在 1.10 中升级为稳定版本,可以用于生产。 Webhooks 也有了许多改进,包括对 alpha 版本 self-hosting authorizer webhooks 的支持。

6.Auth

Kubernetes 1.10 版本为新的 authentication 方法添加奠定了基础,包括 alpha 版本的 External client-go credential providers 和 TokenRequest API。另外,Pod Security Policy 允许管理员决定 Pods 可以跑在什么样的 contexts 中,还允许管理员限制 node 对 API 的访问。

7.Azure

Kubernetes 1.10 包含 alpha 版本的 Azure support for cluster-autoscaler, 还有 support for Azure Virtual Machine Scale Sets。

8.CLI

新版本包含了对 kubectl get and describe 的改进,以便更好地与 extensions 结合。为了更好的用户体验,server 端将会返回这些信息。

9.Cluster Lifecycle

这个版本包括对 beta 版本 out-of-process and out-of-tree cloud providers 的支持。

10.NetworkKubernetes 

1.10 关于网络的变化集中在控制层面。用户现在可以对 Pod 的 resolv.conf 进行配置,而不是依赖 cluster DNS,这个是 beta 版本,用户还可以配置 NodePort IP 地址,也可以把默认的 DNS 插件改为 CoreDNS (beta 版本)。

工程师技术评论

「K8sMeetup 中国社区」此次邀请到两位 Caicloud(才云科技) 工程师,为 Kubernetes 1.10 做了一个简短评论:

  • 1.10 版本中将 Device Plugin 升级到了 beta 版本,这将对 GPU 设备的发现、调度和管理带来更好的支持,包括深度学习在内的应用也可以更好地运行在 Kubernetes 平台上。才云科技和 Google 等公司共同发起的 Kubeflow 项目也将在第一时间使用这个新的特性,来验证在真实的用户场景下的性能。
  • alpha 版本的 GPU 功能(ResourceName 是 alpha.kubernetes.io/nvidia-gpu)将在 1.11 版本中逐渐被废除,请大家及时切换到 Device Plugin 这个新的功能。
  • 对存储部分来说,主要是对一些 alpha 版本 feature 的升级增强。这次更改主要集中在 CSI、 Local Storage(Ephemeral and Persistent)、Storage Object In Use Protection 以及 PV 和 Scheduling 的结合等。这些 features 都升级成了 beta 版本,功能更加稳定。

蒸蒸日上

用户亮点根据 CNCF 最近的一项调查显示,超 49% 的亚洲受访者正在使用 Kubernetes 进行生产;另有 49% 的受访者正在评估其用于生产的可能性。目前,全球范围内已有众多组织正在大规模地使用 Kubernetes 进行生产。以下是几个颇具特色的用户案例:

  • 全球最大的电信设备制造商华为公司,将其内部 IT 部门的应用迁移到 Kubernetes 上运行。这使得全球部署周期从本来的一周时间缩减到几分钟,应用交付的效率提高了 10 倍。
  • 全球五大在线旅行社及酒店集团之一的锦江之星,使用 Kubernetes 将其软件发布速度从几小时缩减至几分钟。此外,他们还利用 Kubernetes 来提高其在线 workload 的可扩展性和可用性。
  • 来自德国的媒体和软件公司 Haufe Group,利用 Kubernetes 将发布新版本的时间控制在半小时内。该公司实现了将夜间容量缩减至一半,硬件成本节省 30% 的应用效果。
  • 全球最大的资产管理公司 BlackRock,使用 Kubernetes 进行快速迁移,并在 100 天内完成了一款投资者研究网络应用程序的开发与交付。

CNCF:Kubernetes 新生态

  • CNCF 正在扩展其认证产品,包括认证 Kubernetes 应用程序开发人员考试(Certified Kubernetes Application Developer exam)。CKAD 考试可以证明开发人员在使用 Kubernetes 设计、构建、配置以及公开云原生应用程序方面的能力。目前,CNCF 正在为这个新计划寻找 beta 版本的测试者。
  • 现在,Kubernetes 文档提供用户旅程,这个旅程基于学习者的学习情况以及学习目标,为他们制定学习计划。对于初学者来说,在用户旅程上学习 Kubernetes 比以往任何时候都容易。而有经验的用户可以更容易地在上面找到针对管理员和应用程序开发者的高阶教程。
  • CNCF 还提供在线培训,教授创建及配置 Kubernetes 集群所需的技能。

最后让我们对整个 Kubernetes 社区努力工作表示感谢,是他们的努力工作让 Kubernetes 1.10 成为功能最丰富的版本之一。作为一个快速发展的开源项目,Kubernetes 逐渐走向成熟并积极适应用户的需求,所有这一切都归功于整个 Kubernetes 生态系统的众多贡献者。

线上课堂预告

本周三 Kubernetes 线上课堂报名开始,添加小助手微信号:kubernetes-china 进群!


825 comCount 0