我们迎来了Kubernetes1.19,这是2020年发布的第二个版本,也是迄今为止最长的发布周期,总共持续了20周。它包括33个增强功能:12个增强功能达到稳定版,18个增强处在beta版,还有13个是alpha版。

由于COVID-19、George Floyd抗议事件,以及我们作为发布团队经历的其他一些全球事件,1.19的发布与常规版本有很大不同。由于上述原因,我们决定调整时间表,让SIG、工作组和贡献者能够有更多时间来完成工作。同时,也让大家有时间关注Kubernetes(http://www.alauda.cn)项目之外的生活,并确保他们良好的精神健康状态。

贡献者是Kubernetes的核心,而并非相反。Kubernetes的行为准则要求善待彼此、成就彼此,尽管我们的世界动荡不安,我们看到的依然是一个伟大且充满谦逊的社区。

1Kubernetes支持窗口增加到一年

长期支持(LTS)工作组在2019年初进行的一项调查显示,Kubernetes终端用户中有相当一部分未能在当前9个月的支持期内升级。该调查的其他结论还包括,如果补丁支持期限延长到12-14个月,30%的用户将能够跟上新版本的部署。这似乎是正确的,无论用户使用的是自建,还是商业销售的发行版。

因此,将支持期延长将有超过80%的用户享受到支持版本,而现在只有50-60%。一年的支持期为最终用户提供了必要的缓冲,并且与熟悉的年度规划周期更加协调。因此,从Kubernetes 1.19版本开始,支持窗口将延长到一年。

2存储容量跟踪

传统上,Kubernetes调度器基于这样的假设:集群中的任何地方都有额外的持久性存储,并且具有无限的容量。拓扑约束解决了第一点,但是到目前为止,pod调度仍然没有考虑到剩余的存储容量可能不足以启动新的pod。存储容量跟踪是一个新的alpha特性,通过为CSI驱动程序添加API来报告存储容量,并在为pod选择节点时在Kubernetes调度器中使用该信息。此功能可作为支持本地卷和其他容量受限的卷类型的动态资源调配的基础。

3临时通用卷

Kubernetes提供的卷插件的生命周期与pod相关,可以用作临时空间(例如,内置的emptydir卷类型)或将一些数据加载到pod中(例如,内置的configmap和secret卷类型,或“CSI inline volumes”)。新的通用临时卷alpha功能允许任何支持动态资源调配的现有存储驱动程序用作临时卷,并将卷的生命周期绑定到Pod。它可以用来提供与根磁盘不同的临时存储,例如持久内存,或者该节点上的一个单独的本地磁盘。支持卷配置的所有Storage Class参数。支持Persistent Volume Claims支持的所有功能,例如存储容量跟踪、快照和恢复以及卷大小调整

4CSI卷运行状况监控

本次Kubernetes 1.19发布了CSI运行状况监测的alpha版本。这个特性使CSI驱动程序能够与Kubernetes(https://www.alauda.cn)共享来自底层存储系统的异常卷情况,从而能够将它们作为事件报告到PVC或Pod上。该特性可以作为Kubernetes程序化检测和解决单卷运行状况问题的基础。

5Ingress正式迎来 GA

在将Ingress API推向GA方面,API本身已经在beta版中可用了很长时间,由于不断被用户和负载均衡/Ingress Controller提供商等所使用和采用,它已经获得了事实上的GA状态。在没有完全替代的情况下放弃它是不可行的做法。它是一个重要的API,并捕获了一系列重要的用例。在这一点上,更谨慎的做法是将当前的API声明作为社区支持的V1版,并对其状态进行编码,同时开发 Ingress API V2版本,或具有超集特性的新的API。

6结构化日志

在v1.19之前,在Kubernetes控制平面进行日志记录无法保证日志消息和对Kubernetes对象的引用保持统一的结构。这使得解析、处理、存储、查询和分析日志变得困难,并且迫使管理员和开发人员在大多数情况下依赖基于一些正则表达式的临时解决方案。由于这些问题的存在,任何基于这些日志的分析解决方案都很难实现和维护。

7新的klog方法

Kubernetes 1.19版本引入了klog库的新方法,这些方法为格式化日志消息提供了一个更结构化的接口。每个现有的格式化日志方法(Infof、Errorf)都与结构化方法(InfoS、ErrorS)相匹配。新的日志记录方法接受日志消息作为第一参数,并将键值对列表作为第二变量参数。这种方法允许渐进地采用结构化日志记录,而不需要一次将所有Kubernetes指向新的API。

8kubelet的客户端TLS证书轮换

kubelet使用私钥和证书向kube-apiserver验证kubelet。当kubelet第一次启动时,通过集群外机制将证书提供给kubelet。自从kubernetes v1.8以来,集群开始引入一个beta过程,用于获取初始证书/密钥对,并在证书到期时对其进行轮替。在Kubernetes v1.19中,这一功能进入稳定版本。

在kubelet启动期间,将扫描文件系统,以查找由证书管理器管理的现有证书/密钥对。如果有可用的证书/密钥,则将加载该证书/密钥。如果没有,kubelet将检查其配置文件中的编码证书值或文件引用。如果证书是引导证书,那么它将用于生成密钥、创建证书签名请求并从API服务器请求签名证书。

在证书到期后,证书管理器负责提供正确的证书,生成新的私钥并请求新的证书。由于kubelet请求将证书签名作为其引导序列的一部分,并且不断对来自kubelet的证书签名请求进行自动批准,因此整个集群的可管理性将大幅提升。

9其他更新

以下功能迎来稳定版:

  • Seccomp

  • Kubelet客户端TLS证书轮换

  • 限制节点对API的访问

  • 重新设计Event API

  • Ingress进入V1稳定版

  • Certificate Signing Request API

  • 无需Docker构建 Kubelet

重大变化:

  • 节点拓扑管理器

  • 新的端点API

  • 将Kubernetes支持窗口延长到一年

其他重要特性:

  • 运行多个Scheduling Profiles

  • Certificate Signing Request API

  • 不可变Secrets 和ConfigMaps

10Kubernetes 1.19版本logo

是你们激发了Kubernetes 1.19发布标识的灵感!这个版本更像是一场马拉松,它证明了当这个世界是一个荒芜之地时,我们可以走到一起,做一些不可思议的事情。

原文链接:

https://kubernetes.io/blog/2020/08/26/kubernetes-release-1.19-accentuate-the-paw-sitive/

历时5月,Kubernetes1.19正式发布 !Ingress迎来GA,存储容量跟踪新特性的更多相关文章

  1. Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码

    美国时间 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本. 为什么说是长期版本,看下面的官方发布的支持路线图表. 可以看出 Java 8 扩 ...

  2. Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码

    就在前段时间,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用! 这无疑对我们来说是一大好的消息.作为一名java开发者来说,虽然又要去学习和了解java11 ...

  3. JDK 16 正式发布,一次性发布 17 个新特性…不服不行!

    上一篇:Java 15 正式发布, 14 个新特性 JDK 16 正式发布 牛逼啊,JDK 15 刚发布半年(2020/09/15),JDK 16 又如期而至(2021/03/16),老铁们,跟上. ...

  4. kubernetes1.7正式发布

    Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 K ...

  5. Kubernetes1.4正式发布

    Kubernetes1.4正式发布. 昨天刚预测1.4即将正式发布,结果晚上Kubernetes1.4就正式发布了. 先看看Kubernetes发布历史: Kubernetes 1.0 - 2015年 ...

  6. Kubernetes1.5正式发布

    Kubernetes1.5正式发布 修复了很多已知问题 进一步增强federation相关特性 将PetSet改名为StatefulSet 将ScheduledJobs改名为CronJobs 新增了命 ...

  7. vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松

    vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...

  8. kubernetes1.5新特性跟踪(续)

    Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 K ...

  9. kubernetes1.5新特性跟踪

    Kubernetes发布历史回顾 Kubernetes 1.0 - 2015年7月发布 Kubernetes 1.1 - 2015年11月发布 Kubernetes 1.2 - 2016年3月发布 K ...

随机推荐

  1. Mysql资料 数据类型

    目录 一.类型 整型 浮点型 定点数 字符串 二进制数据 时间日期类型 二.长度和范围 三.使用建议 原则 存储引擎 text和blob 浮点数和定点数 四.属性 一.类型 整型 取值范围如果加了un ...

  2. CentOS6设置开机自启动

    1.把开机启动脚本(mysqld)copy到文件夹/etc/init.d 或 /etc/rc.d/init.d 中 2.将启动程序的命令添加到 /etc/rc.d/rc.local 文件中,比如: # ...

  3. box-shadow(盒子阴影)

    box-shadow 属性可以设置一个或多个下拉阴影的框 可以在同一个元素上设置多个阴影效果,并用逗号将他们分隔开.该属性可设置的值包括阴影的X轴偏移量.Y轴偏移量.模糊半径.扩散半径和颜色. 语法: ...

  4. 学习型的“文山表海无限发展公司”——《Office妖精是怎样炼成的》续1

    本篇无故事情节版:https://www.cnblogs.com/officeplayer/p/14841590.html <Office妖精是怎样炼成的>http://blog.sina ...

  5. 2. Go中defer使用注意事项

    1. 简介 defer 会在当前函数返回前执行传入的函数,它会经常被用于关闭文件描述符.关闭数据库连接以及解锁资源. 理解这句话主要在三个方面: 当前函数 返回前执行,当然函数可能没有返回值 传入的函 ...

  6. java 编程基础 Class对象 反射 :获取类的构造方法,方法,成员变量,内部类,外部类,父类,实现的接口,修饰符等...

    类 Class  每个类被加载之后,系统就会为该类生成一个对应的Class对象,通过该Class对象就可以访问到JVM中的这个类. 我们在Java中获取Class对象一般有三种方式: (1), 使用C ...

  7. log4j添加日志一定记住在工程的web.xml文件下加一些内容

    log4j添加日志一定记住在工程的web.xml文件下加如下内容:

  8. JavaWebServle执行流程解析

    Servlet Servlet 1.定义: 注:servlet版本2.5 Servlet是Java的一个类.既然是一个类.那必然要遵循一定的规范.如下所示. a.必须继承 javax.servlet. ...

  9. GoLang设计模式18 - 适配器模式

    说明 适配器模式是一种结构型设计模式.我们用常用的两种笔记本电脑来说明一下这种设计模式. 我们常用的笔记本无非是这两大类: Macbook Pro Windows Laptop 当前这两类笔记本常见的 ...

  10. 另一个角度看元宇宙与RPA:人工世界、平行员工与RPA

    另一个角度看元宇宙与RPA:人工世界.平行员工与RPA 从元宇宙到平行员工,人工世界推动的虚实分工利好RPA 机器人是铁打营盘人类是流水兵,未来元宇宙的虚实分工RPA机会巨大 文/王吉伟 元宇宙是平行 ...