4

K8S 生态周报| 是时候从 k8s v1.16 升级了

 3 years ago
source link: https://zhuanlan.zhihu.com/p/221752185
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

K8S 生态周报| 是时候从 k8s v1.16 升级了

网易有道 资深运维开发

“ 「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。

Kubernetes v1.16.15 发布

Kubernetes v1.16.15 是 v1.16 系列的最后一个更新,我在之前的周报中也有介绍过。

是时候考虑将 v1.16 升级至更高版本了!

以下介绍从 v1.16 升级至 v1.17 需要关注的一些重点。

etcd

就外部依赖而言,最主要的变化是 etcd 从 v3.3.13 升级到了 v3.4.3

在升级 etcd 前,我建议你先阅读下 etcd 的升级文档[2]。 我从中说几个重点内容:

“ In the general case, upgrading from etcd 3.3 to 3.4 can be a zero-downtime, rolling upgrade:

one by one, stop the etcd v3.3 processes and replace them with etcd v3.4 processes

after running all v3.4 processes, new features in v3.4 are available to the cluster

这是 etcd 文档中的内容,看起来是很安全的。

但也有一些非常关键的信息值得注意, 主要是破坏性变更:

  • ETCDCTL_API=3 etcdctl 成为默认;
  • etcd --enable-v2=false 默认关掉了 v2 支持;
  • etcd --ca-fileetcd --peer-ca-file 已过期;

整体而言涉及到的内容就是 etcd v2 API 了。

假如你使用的 CNI 是 Flannel 的话,你需要注意 Flannel 目前还不支持使用 etcd v3 API[3] , 需要自行设置 --enable-v2

kube-apiserver

默认的 service IP CIDR 10.0.0.0/24 已经过期,并将在之后版本删除,所以需要注意给 kube-apiserver 设置 --service-cluster-ip-range 选项,以免在之后升级时发生问题。

kubelet & CSI

如果你的某个节点使用了 CSI raw block volume ,那么在升级 kubelet 前, 必须 kubectl drain node-x 以避免遇到问题[4]

最值得关注的问题主要就这些,祝你升级顺利 :)

Rook v1.4.2 发布

Rook 本次发布的 v1.4.2 版本,主要集中在对 Ceph 相关内容的改进。我们来看看有哪些值得关注的内容吧:

  • #6118 为 OSD prepare 做了资源限制;
  • #6170 为所有对象存储的 debug 信息增加了完整的 DNS 后缀,比如(.svc.cluster.local);

更多关于此版本的变更请参考其 ReleaseNote

Cilium v1.8.3 发布

关于 Cilium 的介绍可参考我的上一篇文章 Cilium 上手实践 ,这里就不再赘述了。

本周 Cilium 发布了 v1.8.3 版本,我们来看看有哪些值得注意的变更吧:

  • 为 Cilium operator 增加了 HA 模式[5] , 但是要注意的是 HA 模式由于使用了 http://coordination.k8s.io/v1 API 所以不支持 Kubernetes v1.14 之前版本的 K8S
  • Hubble/relay: 在 ServerStatus 会报告 Node 连接状态了;

更多关于此版本的变更,请参考其 ReleaseNote[6]

上游进展

  • #93548 kubectl path 增加了一个 --patch-file 的选项,允许使用 patch 文件;
  • #94309 kubectl get ingress 默认将使用 networking.k8s.io/v1 API 而不是之前的 extensions/v1beta1

欢迎订阅我的文章公众号【MoeLove】

参考资料

k8s生态: https://zhuanlan.zhihu.com/container

etcd 升级文档: https://github.com/etcd-io/etcd/blob/master/Documentation/upgrades/upgrade_3_4.md

Flannel 不支持 etcd v3 API: https://github.com/coreos/flannel/issues/1191

kubelet & CSI v1.17: https://github.com/kubernetes/kubernetes/pull/74026

Cilium operator HA mode: https://github.com/cilium/cilium/pull/12409

Cilium v1.8.3 ReleaseNote: https://github.com/cilium/cilium/releases/tag/v1.8.3


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK