Kubernetes 版本选择

我曾自学过Kubernetes 1.11 和Kubernetes 1.13.3 得到的感受是:版本之间的变动太大了!!!

每一次版本的更新都意味着有相当多的内容更新,然后就要从头再学一遍,没办法谁让Kubernetes还在快速迭代呢。

在2019年6月中旬,Kubernetes 1.15正式发布,也就是今年的第二个大版本已经发布了。所以我这遍的学习将基于Kubernetes 1.15, 进行系统而全面的学习。

下面简单的总结一下kubernetes的一些新特性

正式发布Kubernetes 1.15版本,这也是我们在2019年发布的第二个版本!Kubernetes 1.15包含25项增强功能,其中2项为稳定版、13项为beta测试版,另有10项为alpha测试版。本次版本的主题为:
持续性改进。项目的可持续性水平并不仅仅取决于功能。因此,我们通过多项SIG致力于提升测试覆盖率、确保各基础要素的稳定性、改善核心功能集的稳定水平,并努力在完善现有功能的同时处理尚未解决的积压性问题。
可扩展性。社区一直在要求我们进一步提升可扩展性水平,因此本次版本中包含更多与CRD以及API Machinery相关的开发成本。本次升级周期中的大多数增强功能来自SIG API Machinery及其相关领域。
下面让我们深入探讨1.15版本的主要功能。
关于核心Kubernetes API的可扩展性
与CustomResourceDefinitions紧密相关的数据一致性与原生行为无疑是本轮开发工作中的关注重点。我们希望帮助用户顺畅完成交互,而无需考虑具体使用CustomResource抑或是Golang原生资源。通过一系列重大步骤,我们正努力在下一版本周期中发布CRD与admission webhook的通用版本。
以此为指导,我们重新审视了CRD当中基于OpenAPI的验证模式。而且从1.15版本开始,我们将基于所谓“结构模式”对每一种模式进行限制性检查。具体来讲,我们将强制要求CustomResource中的各个字段皆符合非多态及完整性要求。未来,我们将要求所有结构模式——特别是以下列出的各项新功能——皆以NonStructural状态的形式列出。非结构模式将在v1beta1 API组当中暂时继续起效,但在可预见的未来,我们将要求一切严肃的CRD应用皆迁移至新的结构模式。
更多关于结构模式的细节信息,请参阅我们将在本周晚些时候发布在kubernetes.io网站上的博文。当然,大家也可以点击此处[1]参考Kuberntes说明文档。
beta:CustomResourceDefinition Webhook转换
自1.14版本开始,CustomResourceDefinitions已经能够支持多个beta形式的版本。而在Kubernetes 1.15当中,其能够进一步在不同版本之间实现即时转换,且具体方式与用户所熟悉的原生资源一样。CRD的转换通过集群管理员部署在集群之内的webhook实现。此项功能已经在Kubernetes 1.15版本中被提升为beta版,这意味着CRD将在各类严肃CRD应用当中得到进一步推广。
beta:CustomResourceDefinition OpenAPI发布
长久以来,OpenAPI中的原生类型范式一直通过/openapi/v2交付,很多组件都在使用这些范式,特别是在kubectl实施意见验证、kubectl解释以及基于OpenAPI的客户端生成器当中。
用于CRD的OpenAPI发布机制将在Kubernetes 1.15版本中以beta测试形式亮相,但目前仅适用于结构模式。
beta:CustomResourceDefinitions删减
删减功能,是指对发送至Kubernetes API的对象当中的未知字段进行移除的操作。如果未在OpenAPI验证模式当中指定字段,则该字段即被视为未知。这项功能既关乎数据一致性,又与安全相关联。其强制要求将CRD开发者所指定的数据结构永久保存至etcd当中。这是一种原生资源行为,并将从Kubernetes 1.15版本的beta测试版开始适用于CRD。
删减可通过CustomResourceDefinition中的spec.preserveUnknownFields: false被激活。未来即将发布的CRD apiextensions.k8s.io/v1变种将强制执行删减操作(但允许用户明确关闭此项功能)。
删减还要求CRD开发者提供完整的结构验证模式,包括顶级以及其它一切CRD版本。
alpha:CustomResourceDefinition默认设置
CustomResourceDefinitions获得了默认设置支持能力。所谓默认设置,是指在OpenAPI验证模式当中利用default关键字指定的选项。对于被发送至API的对象,默认设置将在系统从etcd读取这些对象时为未指定的字段提供默认选项。
默认设置在Kubernetes 1.15版本中以alpha测试形式支持结构模式。
beta:Admission Webhook重新定位与改进
对于需要对Kubernetes API进行扩展的项目而言,对admission webhook的变异与验证正成为一种愈发主流的处理方式。截至目前,webhook变异只需要以字母排序方式进行一次调用。这意味着较早运行的webhook无法根据稍后调用的webhook的输出结果做出反应。在Kubernetes 1.15版本当中,这一情况将有所改善:
用户可以通过指定reinvocationPolicy: IfNeeded确保webhook变异至少进行一次重新调用。如果后续的webhook变异对对象做出修改,那么较早的webhook将能够对变更做出反应。
这就要求webhook具有类似于idem-potent的行为,从而应对二次调用。
目前我们还没有计划添加更多调用轮,因此webhook编写者仍然需要谨慎地思考已提交对象是否发生了变更。最后,webhook验证将通过调用验证承诺不变量是否仍然不变。
我们还对admission webhook做出了一点小小调整,特别是objectSelector 将排除某些来自admission(即webhook服务器的任意端口,而不只是端口443)且包含特定标签的对象。
集群生命周期的稳定性与可用性改进
对Kubernetes的安装、升级与配置流程进行强化,一直是SIG集群生命周期在本轮升级周期中的关注重点。我们针对裸机工具与生产就绪用户故事进行了bug修复,例如在1.15版本当中为高可用性用例提供更高优先级。
kubeadm为集群生命周期的基本构建块,其将继续获得有效引导生产集群所必需的功能与稳定性提升。Kubeadm已经进入beta测试阶段,实现了高可用性提升,允许用户利用已经非常熟悉的kubeadm init与kubeadm join命令对高可用性控制面板进行配置与部署。我们还专门设计出一款全新测试套件,用以确保这些功能随时间推移而始终保持稳定。
证书管理在1.15版本中也将变得更加强大,kubeadm现在可以在证书(升级时)到期之前对其进行无缝轮换。大家可以点击此处[2]查看kubeadm文档以了解与证书管理相关的细节信息。
在1.15版本当中,kubeadm配置文件API也将由v1beta1升级为v1beta2。
最后,让我们庆祝kubeadm终于拥有了自己的徽标!
CSI的持续改进
在Kubernetes 1.15版本当中,SIG存储将继续致力于将树内存储卷插件迁移至容器存储接口(简称CSI)。SIG存储亦努力将CSI与树内结构之间的功能对应起来,包括大小调整以及内联存储卷等功能。SIG存储还引入了一些原本Kuebernetes存储子系统中所不存在的全新alpha功能,例如存储卷克隆。
存储卷克隆允许用户在配置新存储卷时,将另一PVC指定为“DataSource”。如果底层存储系统支持此项功能并在其CSI驱动程序当中启用了“CLONE_VOLUME”功能,则新存储卷将成为源存储卷的克隆。
其它值得关注的功能更新
在Kubernetes Core中支持Go模块。
继续为云供应商的提取与代码组织需求做好准备。云服务供应商的代码已经被移动至kubernetes/legacy-cloud-providers,旨在降低后续删除与外部使用难度。
Kubectl的get与describe现可与各扩展成功协作。
节点现可支持第三方监控插件。
发布新的alpha测试版本调度框架,用于管理各调度插件。
用于在不同容器用例当中触发hook命令的ExecutionHook API现在进入alpha测试阶段。
继续弃用extensions/v1beta1、apps/v1beta1以及apps/v1beta2 APIs;这些扩展将在1.16版本中被彻底淘汰!
最后,大家可以点击此处[3]获取此次更新与修复的完整列表。
发布时间
Kubernetes 1.15目前已经可在GitHub上直接下载[4]。要开始使用Kubernetes,我们建议您点击此处[5]参阅交互式教程。您也可以利用kubeadm命令轻松安装最新的1.15版本。
原文链接:https://kubernetes.io/blog/2019/06/19/kubernetes-1-15-release-announcement/

原文地址:https://www.cnblogs.com/zisefeizhu/p/11154243.html

时间: 2024-10-09 10:41:21

Kubernetes 版本选择的相关文章

网站后端_Python-网站开发.Python网站开发之版本选择与框架选择?

简单说明: 1. 由于Python具有快速开发,多人协作,库丰富,社区成熟等优点,国内豆瓣/知乎/搜狐/果壳/饿了吗,国外YouTube/Reddit/Instagram/Pinterest/Bitbucket/Disqus/Dropbox等都相继将其作为主力开发语言,所以完全不用担心它的可靠性与性能问题,因为它已受了时间和大规模用户并发访问的考验 2. 很多人以为只要学会某个Web框架,能写代码查查数据库,能写模版渲染出HTML,最多再学习一下配个WebServer把服务跑起来就完事儿,然而并

Eclipse 版本选择

查看Eclipse的版本号: 1. 找到eclipse安装目录 2. 进入readme文件夹,打开readme_eclipse.html 3. readme_eclipse.html呈现的第二行即数字版本号,如: Eclipse 版本选择: Java IDE for Java 开发者 JAVA EE for Jave EE 开发者 C/C++ forC/C++ 开发者 PHP for PHP 开发者 可以在下面地址下载自己希望的版本 https://www.eclipse.org/downloa

第三天-linux版本选择及安装

linux有很多发行版本,那么我么学习哪一个呢?老男孩老师为我们分析: linux桌面,首选ubuntu 服务器端,首选RHEL或者CentOS,这两者首选后者CentOS,因为它自由免费,无版权 如果对安全要求很高,可以选Debian或FreeBSD 需要使用数据库高级服务和电子邮件网络应用可以选SUSE(德国用的较多) 如果想尝试新技术.新功能Fedora,是RHEL和CentOS测试版,预发布版 如果喜爱国货,更好的中文环境,可以选红旗linux 简述vmware 的三种网络连接方式: 桥

Docker 性质及版本选择 [二]

Docker 性质及版本选择 [二] Docker 时间:2016年11月8日 本文由李磊提供--->QQ:550376681 Docker的性质 Docker的组成其实很简单.你需要搭建registry,专属于你自己的私有仓库,然后就是docker的镜像和docker的容器.Docker的镜像,就类似与windos的系统盘,你只有有了它,你才能够跑起来容器. Docker的容器,很多人下载一个镜像,然后跑起来一个容器,就想进容器里看一看究竟.各位看官,很明确的告诉你们,你这个想法本身就是错误的

转:Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

原文来自于:http://www.ituring.com.cn/article/128439 Windows下的PHP开发环境搭建——PHP线程安全与非线程安全.Apache版本选择,及详解五种运行模式. 今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时间查阅了大量资料,并做了一番实验后,终于把这些困惑全都搞得清清楚楚了. 说实话,之所以花了这么

jQuery 版本选择与常见插件库总结

在日常的开发中jQuery作为一个流行多年的轻量级 JavaScript 库,使用十分的普遍,主要源于它的便捷性和实用性非常高. 在此总结一些关于jQuery版本的区别和选择的建议,以及一些常见插件库的网站,方便大家的日常开发需求. 如有不足的地方还望在评论区提出来,只有不断的学习改进才能进步嘛. jQuery常见的文档资源: W3C文档 http://www.w3school.com.cn/jquery/ JQuery中文手册 http://jquery.cuishifeng.cn/ jQue

hadoop最新发行稳定版:DKHadoop版本选择详解

hadoop最新发行稳定版:DKHadoop版本选择详解 Hadoop对于从事互联网工作的朋友来说已经非常熟悉了,相信在我们身边有很多人正在转行从事hadoop开发的工作,理所当然也会有很多hadoop入门新手.Hadoop开发太过底层,技术难度远比我们想象的要大,对新手而言选择一个合适的hadoop版本就意味着上手更快! Hadoop是由Apache基金会所开发的分布式系统基础架构,它最核心的设计就是HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据

微服务与Spring Cloud基本概念、Spring Cloud版本命名方式与版本选择

微服务是什么?Spring Cloud是什么?Spring Cloud版本命名方式?Spring Cloud版本选择? 一.微服务是什么 微服务是一种架构风格,是一种将单体应用开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API).这些服务围绕业务能力构建并且可通过全自动部署机制独立部署.这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术. 二.Spring Cloud是什么 Spring Cloud并不是

kubernetes版本apiversion简单说明

在使用yaml文件部署Deployment项目时,出现过 error: error validating "xx-Deployment.yaml": error validating data: found invalid field Ports for v1.Container; if you choose to ignore these errors, turn validation off with --validate=false 的错误,对于kubernetes中的apive