我们迎来了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. pipeline 结构设计

    目录 一.pipeline步骤 二.案例 pipeline详解 只生成一次制品 不同环境部署 系统集成测试 指定版本部署 一.pipeline步骤 当团队开始设计第一个pipeline时,该如何下手呢 ...

  2. Python语法之基本数据类型

    一.数据类型之字符串str 作用:主要用于记录描述性性质的数据,如姓名.地址.邮箱: 定义: 方式1 # 单引号 name = 'jason' 方式2 # 双引号 name = "jason ...

  3. [BUUCTF]PWN——[V&N2020 公开赛]easyTHeap

    [V&N2020 公开赛]easyTHeap 附件 步骤: 例行检查,64位程序,保护全开 本地试运行一下,看看大概的情况,常见的堆的菜单 64位ida载入,main函数 最多只能申请7个ch ...

  4. [BUUCTF]REVERSE——helloword

    helloword 题目是安卓逆向.安卓逆向工具下载地址 用APKIDE打开附件,ctf+f调出检索版,检索main函数,能看到flag字符串 flag{7631a988259a00816deda84 ...

  5. TPT Fusion平台升级,AUTOSAR及ViL测试功能重装上线

    TPT简介 TPT是针对嵌入式系统基于模型的测试工具,特别是针对控制系统的软件功能测试.TPT支持众多业内主流的工具平台和测试环境,可以完成V模式要求所有阶段(MiL-SiL-PiL-HiL-ViL) ...

  6. JAVA把InputStream 转 字节数组(byte[])

    import org.apache.commons.io.IOUtils; byte[] bytes = IOUtils.toByteArray(inputStream); 如果没有这个包 就加下依赖 ...

  7. JAVA将Object对象转byte数组

    /** * 将Object对象转byte数组 * @param obj byte数组的object对象 * @return */ public static byte[] toByteArray(Ob ...

  8. Centos使用kafka自带zookeeper安装kafka

    首先要安装jdk环境 可以参考:https://www.cnblogs.com/pxblog/p/10512886.html 下载kafka 地址:http://kafka.apache.org/do ...

  9. TKE用户故事 | 作业帮检索服务基于Fluid的计算存储分离实践

    作者 吕亚霖,2019年加入作业帮,作业帮基础架构-架构研发团队负责人,在作业帮期间主导了云原生架构演进.推动实施容器化改造.服务治理.GO微服务框架.DevOps的落地实践. 张浩然,2019年加入 ...

  10. MyBatis 流式查询

    流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果.流式查询的好处是能够降低内存使用. 流式查询的过程当中,数据库连接是保持打开状态的,因此要注意的是:执行一个 ...