写点什么

即将发布的 Kubernetes 1.13 有哪些新功能?

  • 2018-12-03
  • 本文字数:3129 字

    阅读完需:约 10 分钟

即将发布的Kubernetes 1.13有哪些新功能?

Kubernetes 配置管理

动态审计配置(alpha)

https://github.com/kubernetes/enhancements/issues/600


Kubernetes 审计配置功能允许使用 webhook 将审计事件转发到远程 API。 从 Kubernetes 1.13 版本开始,用户可以设置动态审计后端,以支持在运行时推送 AuditSink API 对象(远程端点)。可以使用 Falco 检查 Kubernetes 审核事件。

支持自定义资源的 webhook 转换(alpha)

https://github.com/kubernetes/enhancements/issues/598


在版本 1.13 之前,可为 Resource Custome Define(RCD) 定义多个版本,只要所有版本使用相同的模式(即,如果添加了新字段,则需要在所有版本中添加)。 现在,不同的 CRD 版本可以有不同的模式,可以定义转换 webhook 来处理更新。

API 服务器 dry-run(alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/576


dry-run 模式可以模拟真实的 API 请求,在不修改实际状态的情况下查看请求是否成功(准入控制器链,验证,合并冲突…),或者会发生什么。请求响应的主体应尽可能接近非 dry-run 模式。此模式的核心功能是启用其他用户级功能,如kubectl diff子命令。

kubectl diff命令(alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/491


使用 kubectl diff 命令可以预览 kubectl apply`命令对群集所做的变更。 这个命令的功能在于方便查看,这为集群的 operator 的日常工作提供了很方便的操作。需要的是注意,该命令要在 API 服务器上启用 dry-run 功能时才能生效。

简化 Kubernetes 集群创建(beta 到稳定)

https://github.com/kubernetes/enhancements/issues/11


此功能涵盖了kubeadm的总体用例,并简化了 Kubernetes 集群的创建流程。该功能不是 Kubernetes 1.13 版本独有的,但是在此版本中将有一些文档上的改进,改进的地方包括kubeadm init使用中的不同阶段,kubeadm alpha的新子命令或者是在部署示例中包含的 CoreDNS 等。

Kubernetes 核心组件

基于 taint 的驱逐 (alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/166


基于 taint 的驱逐在 Kubernetes 1.13 中将从α状态转变为β状态。 当启用此功能时(在-feature-gates 中,设置 TaintBasedEvictions = true,),NodeController(或 kubelet)会自动添加 taint,并且禁用基于 Ready NodeCondition 从 Node 中驱逐 pod 的前一逻辑。

配置调度器对集群节点的子集进行评分(alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/593


在 Kubernetes 1.12 之前,kube-scheduler 需要检查集群中所有节点的可行性,然后对可行节点进行评分,选择评分最高的节点来运行 pod。现在,可以对 Kubernetes 调度器进行配置,仅考虑一定百分比的节点,只要在配置的集合中能找到足够的可行节点即可。 这提高了调度器在大规模集群中的性能。

更新 kubectl 的插件机制(alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/579


kubectl支持扩展添加新的子命令或覆盖现有的子命令,支持kubectl主要发行版中未包含的新功能和自定义功能。此存储库提供了一个很好的扩展示例。

将频繁的 Kubelet 心跳移至 Lease API(alpha)

https://github.com/kubernetes/enhancements/issues/589


在 1.13 之前的 Kubernetes 版本中,NodeStatus 是 Node 的心跳。 此版本引入了节点租约 (node-lease),这是一种更轻量,可扩展性更好的心跳指示器。节点租约经常更新,而 NodeStatus 仅在出现变更或一定时间段以后才从节点报告到主节点。

硬件支持

支持第三方设备监控插件(alpha)

https://github.com/kubernetes/enhancements/issues/606


为了监控设备插件提供的资源,监控代理需要能够发现节点上正在使用的设备集,并获取元数据以描述该指标应该与哪个容器相关联。 kubelet 现在提供 gRPC 服务(PodResources)来启用此功能。 对“PodResources 服务”的支持仍处于 alpha 状态。

存储

通过持久化卷源使用原始块设备(alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/351


默认情况下,在 Kubernetes 1.13 上启用 BlockVolume,只需将 volumeMode 的值设置为 block 即可访问原始块设备。在没有文件系统抽象的情况下使用原始块设备可允许 Kubernetes 为需要高 I / O 性能和低延迟的高性能应用程序(如数据库)提供更好的支持。

为 FlexVolume 添加调整大小的调用支持,以支持类似 LVM 扩展的卷大小调整(alpha)

https://github.com/kubernetes/enhancements/issues/304


PVC 大小调整最初是在 Kubernetes 1.8 中引入的。 此后,一些卷插件已经能支持此功能。1.13 版本能支持 FlexVolumes。如果你正在使用 FlexVolume 并且底层驱动程序支持该操作,现在只需更新 Kubernetes 中的 PVC 即可扩展 PV。

添加对 Kubernetes 树外 CSI 卷插件的支持(beta 到稳定版)

https://github.com/kubernetes/enhancements/issues/178


容器存储接口 (Container Storage Interface)是将任意存储系统暴露给 Kubernetes 容器化工作负载的规范。目前,Kubernetes 卷插件在树内,这意味着它们与核心 Kubernetes 二进制文件进行链接,编译,构建和一起发布。在 1.13 版本中,该功能已经稳定,并允许第三方供应商创建和分发(Kubernetes 树外)CSI 卷插件。

使调度器能感知 pod 内卷的拓扑约束(beta 到稳定)

https://github.com/kubernetes/enhancements/issues/490


此功能允许设置控制卷的调度位置,可以启用本地卷绑定,还可用于将卷与特定拓扑区域耦合。该功能在之前的 Kubernetes 版本中有所体现,但在 1.13 版本中已逐渐稳定。

Kubernetes 与云端集成

AWS ALB ingress 控制器(alpha)

https://github.com/kubernetes/enhancements/issues/629


这是一项备受欢迎的功能,只要为集群配置了 AWS 集成凭证,就可以通过按需配置 AWS ALB 来满足 Kubernetes ingress 资源。

亚马逊弹性块存储 CSI 驱动程序(alpha)

https://github.com/kubernetes/enhancements/issues/630


亚马逊弹性块存储(Amazon Elastic Block Store) CSI 驱动提供 CSI 接口来管理 EBS 卷的生命周期。驱动程序仍处于 alpha 状态,1.12 之前的版本不支持该功能。 可以使用的基本卷操作包括:CreateVolume / DeleteVolume,ControllerPublishVolume / ControllerUnpublishVolume,NodeStageVolume / NodeUnstageVolume,NodePublishVolume / NodeUnpublishVolume 和 Volume Scheduling。

外部 AWS CCM(alpha)

https://github.com/kubernetes/enhancements/issues/631


cloud-controller-manager (云控制器管理器,CCM)是嵌入云控制循环的守护进程。云供应商和 Kubernetes 的开发和发布速度不同,将特定于云供应商的代码抽象为云控制器管理器二进制文件能够让云供应商独立发展。AWS 云控制器管理器在 Kubernetes 1.13 版本中首次亮相。

Azure 可用区(alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/586


Kubernetes 1.12 版本增加了对 Azure 可用区(AZ)的支持。 可用区中的节点可通过failure-domain.beta.kubernetes.io/zone=<region> - <AZ>标签添加,并为 Azure 托管的磁盘存储类添加拓扑感知配置。此版本中对 Azure 可用区的支持已经从 alpha 阶段到了 beta 阶段。

支持 Azure 跨资源组节点(alpha 到 beta)

https://github.com/kubernetes/enhancements/issues/604


Kubernetes 1.12 版本增加了对 Azure 序中的跨资源组(resource group)节点和非托管(例如本地)节点的支持。该版本中对跨越资源组节点的支持已经从 alpha 阶段到了 beta 阶段。

弃用

删除对 etcd2 的支持

https://github.com/kubernetes/enhancements/issues/622


此版本中删除了所有对 etcd2 的文档引用和支持。


参考链接:


https://sysdig.com/blog/whats-new-in-kubernetes-1-13/


2018-12-03 20:273072
用户头像
张婵 InfoQ 技术编辑

发布了 87 篇内容, 共 53.0 次阅读, 收获喜欢 218 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

食堂就餐卡管理系统设计

eric

架构师训练营 - 第一周作业一

teslə

架构

极客李

极客大学第一周作业

方堃

极客大学架构师训练营

架构师训练营 第一周 学习心得

LiJun

学习 极客大学架构师训练营

食堂就餐卡系统设计

allen

食堂就餐卡系统设计

Geek_zhangjian

第 1 周作业 - 学习总结

WW

200行代码理解 RxJS 的核心概念

局外人

Java 大前端

架构师训练营第一周总结

olderwei

极客大学架构师训练营

食堂就餐卡系统设计文档

15359861984

「架构师训练营」第1周命题作业

牛牛

极客大学架构师训练营 第一周命题作业

架构的理解-不只是技术问题

旭东(Frank)

学习 极客大学架构师训练营

【架构师训练营】第一周课程总结

张明森

就餐系统

远方

架构师训练营第一周总结

allen

架构师0期第一周作业

我在终点等你

从零搭建一个Electron应用

局外人

Java 大前端 Electron

食堂就餐卡系统设计

Dennis

第 1 周作业 - 食堂就餐卡系统设计

WW

枚举

小王同学

架构师训练营week1

devfan

UML示例

Geek_196d0f

第一周学习笔记

方堃

学习 极客大学架构师训练营

本周总结

Geek_zhangjian

第一周学习笔记

远方

架构师训练营第一周 个人心得

yanghao

架构师训练营0期第一周学习总结

小高

一行代码引来的安全漏洞就让我们丢失了整个服务器的控制权

程序猿石头

Spring Boot 网络安全 后端 前后端分离

week01 学习总结-架构设计文档

Z冰红茶

【第一周】命题作业——食堂就餐卡系统设计

三尾鱼

学习 极客大学架构师训练营

即将发布的Kubernetes 1.13有哪些新功能?_云原生_张婵_InfoQ精选文章