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中文社区微信公众号

评论 抢沙发

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