Kubernetes 1.13 正式发布,功能亮点一览!

Kubernetes 1.13 正式GA,这是2018年发布的第四次也是最后一次大版本,1.13也是迄今为止发行最快的版本,仅用10周时间。此版本继续关注Kubernetes的稳定性和可扩展性,其中在存储和群集生命周期领域的三个主要功能实现普遍可用(GA)。Kubeadm简化集群管理、容器存储接口(CSI)和CoreDNS作为默认DNS。

使用kubeadm(GA)简化Kubernetes集群管理

大多数与Kubernetes的工程师,都应该会使用kubeadm。它是管理集群生命周期的重要工具,从创建到配置再到升级;?现在kubeadm正式成为GA。kubeadm处理现有硬件上的生产集群的引导,并以最佳实践方式配置核心Kubernetes组件,以便为新节点提供安全而简单的连接流程并支持轻松升级。这个GA版本值得注意的是现在已经毕业的高级功能,特别是可插拔性和可配置性。kubeadm的范围是管理员和自动化,更高级别系统的工具箱,这个版本是朝这个方向迈出的重要一步。

容器存储接口(CSI)进入GA

容器存储接口(CSI)现在已经GA,在v1.9中作为alpha引入,在v1.10中作为beta引入。通过CSI,Kubernetes卷层变得真正可扩展。这为第三方存储提供商提供了编写与Kubernetes互操作而无需触及核心代码的插件的机会。该规范本身也达到了1.0状态。

CoreDNS现在是Kubernetes的默认DNS服务器

在1.11中,我们宣布CoreDNS已达到基于DNS的服务发现的一般可用性。在1.13中,CoreDNS现在将kube-dns替换为Kubernetes的默认DNS服务器。CoreDNS是一个通用的,权威的DNS服务器,提供与Kubernetes向后兼容但可扩展的集成。CoreDNS比以前的DNS服务器具有更少的移动部件,因为它是单个可执行文件和单个进程,并通过创建自定义DNS条目来支持灵活的用例。它也用Go编写,使其具有内存安全性。

 

CoreDNS现在是Kubernetes?1.13+推荐的DNS解决方案。该项目已将常用测试基础架构切换为默认使用CoreDNS,我们也建议用户进行切换。KubeDNS仍将至少支持一个版本,但现在是时候开始规划迁移了。许多OSS安装工具已经进行了切换,包括1.11中的Kubeadm。如果您使用托管解决方案,请与您的供应商合作,以了解这将如何影响您。

内容安全

CVE-2018-1002105是Kubernetes?API?Server中的一个关键安全问题,在v1.13.0(以及v1.10.11,v1.11.5和v1.12.3)中得到了解决。我们建议运行先前版本的所有群集立即更新到其中一个版本。有关详细信息,请参阅问题#71411

(https://github.com/kubernetes/kubernetes/issues/71411)。

升级说明

在升级到Kubernetes?1.13之前,需要注意以下几点:

kube-apiserver

  • 弃用的Etcd2后端存储已经被删除。在使用–storage-backend?=?etcd2升级kube-apiserver之前,必须将etcd?v2数据迁移到v3存储后端,并将kube-apiserver调用更改为使用–storage-backend?=?etcd3。升级前的备份始终是一种非常明智的做法,但由于etcd2到etcd3的迁移不可逆,因此迁移前的etcd备份至关重要。
  • 已弃用的–etcd-quorum-read??flag标志已被删除。

kube-controller-manager

已弃用的–Usecure-experimental-approve-all-kubelet-csrs-for-group?flag标志已被删除。

kubelet

已弃用的–google-json-key??flag标志已被删除。?在升级之前从kubelet调用中删除–google-json-key标志。(#69354,@yujuhong)

https://github.com/kubernetes/kubernetes/pull/69354

 

使用DaemonSet?pod,现在需要kubelet为1.11或更高的调度功能。?在将kube-controller-manager升级到1.13之前,请确保群集中的所有kubelet都在1.11或更高。

 

alpha?CSINodeInfo?CRD的模式已拆分为spec和status字段,并添加了新字段status.available和status.volumePluginMechanism。?使用先前alpha模式的集群必须使用新模式删除并重新创建CRD。?(#70515,@?davidz627)

https://github.com/kubernetes/kubernetes/pull/70515

 

kube-scheduler使用apiVersion?componentconfig?/?v1alpha1删除了对配置文件的支持。?在升级到1.13之前,确保使用命令行标志或带有apiVersion?kubescheduler.config.k8s.io/v1alpha1的配置文件配置kube-scheduler。

 

Kubectl

已弃用的命令run-container已被删除。?可以使用kubectl?run调用(#70728,@?Pingan2017)

https://github.com/kubernetes/kubernetes/pull/70728

client-go发行版将不再具有bootstrap(k8s.io/client-go/tools/bootstrap)相关代码。?任何对它的引用都会失效。?请将所有引用重定向到k8s.io/bootstrap。?(#67356,@?iyliaog)

https://github.com/kubernetes/kubernetes/pull/67356

Kubernetes无法区分具有相同名称的GCE??Zonal?PDs?或?Regional?PDs。要解决此问题,请使用唯一名称预创建PD。动态配置的PD不受影响。(#70716,@?msau42)

https://github.com/kubernetes/kubernetes/pull/70716

新版本弃用的功能

kube-apiserver

–service-account-api-audiences标志已被弃用,将有利于–api-audiences使用。继续使用旧标志会被接受并带有警告,且在以后的版本中会删除。?(#70105,@?mikedanese)

https://github.com/kubernetes/kubernetes/pull/70105

 

不推荐使用–experimental-encryption-provider-config标志,将有利于–encryption-provider-config。?同样接受旧标志并发出警告,但将在1.14中删除。?(#71206,@?stlaz)

 

作为将etcd加密功能逐渐推向beta的一部分,–encryption-provider-config引用的配置文件现在使用kind:EncryptionConfiguration和apiVersion:apiserver.config.k8s.io/v1。?对类型的支持:EncryptionConfig和apiVersion:v1已弃用,将在以后的版本中删除。?(#67383,@?stlaz)

https://github.com/kubernetes/kubernetes/pull/67383

 

-deserialization-cache-size标志已经弃用,会再以后的版本中删除。?由于删除了etcd2存储后端,因此该标志处于非活动状态。?(#69842,@?liggitt)

https://github.com/kubernetes/kubernetes/pull/69842

 

Node授权模式不再允许kubelet删除其Node?API对象(在1.11之前,在与cloudprovider节点ID更改相关的极少数情况下,kubelet将尝试在启动时删除/重新创建其Node对象)(#71021,@?liggitt)

https://github.com/kubernetes/kubernetes/pull/71021

 

内置系统:csi-external-provisioner和system:csi-external-attacher集群角色已弃用,在将来的版本中不会自动创建。?CSI部署应提供具有所需权限的自己的RBAC角色定义。?(#69868,@?pohly)

https://github.com/kubernetes/kubernetes/pull/69868

 

Kubelet

不推荐使用beta插件注册目录{kubelet_root_dir}?/?plugins?/?通过kubelet插件注册协议注册外部驱动程序,转而使用{kubelet_root_dir}?/?plugins_registry?/。?计划在v1.15中删除对旧目录的支持。?设备插件和CSI存储驱动程序应切换到v1.15之前的新目录。?在旧目录中仅允许支持0.x版本的CSI?API的CSI存储驱动程序。?(@RenaudWasTaken#70494和@?saad-ali#71314)

https://github.com/kubernetes/kubernetes/pull/70494

https://github.com/kubernetes/kubernetes/pull/71314

随着CSI?1.0?API的发布,不推荐使用0.3及更早版本的CSI?API支持CSI驱动程序,并计划在Kubernetes?v1.15中删除。?应该更新CSI驱动程序以支持CSI?1.0?API。(#71020?and?#71314,?both?by?@saad-ali)

https://github.com/kubernetes/kubernetes/pull/71020

https://github.com/kubernetes/kubernetes/pull/71314

使用–node-labels标志在kubernetes.io/和k8s.io/前缀下设置标签将受到未来版本中NodeRestriction??admission插件的限制。?有关允许的标签,请参阅准入插件文档。(#68267,@?liggitt)

https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction

https://github.com/kubernetes/kubernetes/pull/68267

kube-scheduler

不推荐使用alpha?critical?pod?annotation(scheduler.alpha.kubernetes.io/critical-pod)。(#70298,@?bsalamat)

https://github.com/kubernetes/kubernetes/pull/70298

Kubeadm

不推荐使用DynamicKubeletConfig功能。 当然仍然可以使用kubeadm?alpha?kubelet?enable-dynamic命令访问该功能。

 

kubeadm?config?print-defaults已被弃用。(#69617,@?rrosti)

https://github.com/kubernetes/kubernetes/pull/69617

 

不推荐使用对v1alpha3配置文件格式的支持,将在1.14中删除。?使用kubeadm?config?migrate将v1alpha3配置文件迁移到v1beta1,这样可以改进镜像存储库管理、插件配置和其他方面。?v1beta1的文档:

https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1

 

Kubectl

kubectl?convert命令已弃用,将在以后的版本中删除(#70820,@?seans3)

https://github.com/kubernetes/kubernetes/pull/70820

Kubernetes 1.13下载:

https://github.com/kubernetes/kubernetes/releases/tag/v1.13.0

原文:

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.13.md#v1130

https://kubernetes.io/blog/2018/12/03/kubernetes-1-13-release-announcement/

K8S中文社区微信公众号

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址