「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」。
containerd v1.6.0 正式发布
containerd v1.6 在本周也正式发布了,这是 containerd 的第 7 个大版本。距离上一个大的正式版 v1.5.0 已经过了将近 9 个月的时间(v1.5.0 是 2021 年 5 月发布的),关于 containerd v1.5.0 的主要变更,可参考我去年写的 K8S 生态周报| containerd v1.5.0-rc.0 发布。我们一起来看看 containerd v1.6.0 中有哪些值得关注的变更吧!
Runtime
- #5744 在 containerd 的 metrics 接口中增加了
runtime
的 label; - #6375 将 runc 的依赖升级到了 v1.1.0 版本;
- #5871 增加了 shim plugin 的支持,重构了 shim v2 来加载和注册 plugin;
CRI
- #5619 当前会同时支持 CRI v1 和 v1alpha2 ;
- #6113 实现了新的 Kubernetes CRI pod sandbox stats API,这其实是为了遵守 Kubernetes 中 CRI 的变更。其根本原因实际上是在 Kubernetes 中希望能够增强 CRI 的能力,减少对 cAdvisor 的依赖。更深层次的则是由于 cAdvisor 仅支持 Linux 容器,和一般的容器运行时,无法支持类似 Kata Containers 这类 VM 运行时,以及不支持 Windows 容器。由此其实我们也可以看出来 Kubernetes & containerd 的一些目标,做的更通用,更标准化;
- #6111 添加了 sandbox 和 container 延迟的 metrics,以便用户可以更简单的了解 containerd 内部的运行情况;
其他
毕竟是个大版本更新,还有很多其他的内容,具体的可参考其 ReleaseNote
Podman v4.0.0 正式发布
距离上一个完整的大版本 v3.0.0 已经过了整整一年了,我们来看看 Podman 这个大版本中比较值得关注的内容吧:
podman run
和podman create
等命令现在增加了一个--ip6
的选项用于支持 IPv6;- 如果是使用 CNI network 的话,现在可以增加了一个
ipvlan
驱动; - 所有删除 container 的命令,现在都支持了
--time
参数来控制超时时间。其实这个选项 Docker 很久之前就已经有了,我通常会加个-t 1
; - 有一些为了增加 Docker 兼容性的破坏性变更,可以通过在配置文件中增加
compat_api_enforce_docker_hub
来进行控制;
此外,更多的就是一些功能增加和 bugfix 了,具体内容请参考其 ReleaseNote
kube-state-metrics v2.4.0 发布
如果大家用过 kubectl top
来查看 Node/Pod 的资源情况,或者有在用 HPA/VPA 等,应该都会比较熟悉 Kubernetes Metrics Server。
而 kube-state-metrics (KSM) 与它的定位以及做法是不一样的,KSM 会在内存中保存 Kubernetes 中各种资源/状态的完整快照,并根据这些数据生成完整的指标。
如果你使用 Prometheus Operator/kube-prometheus 来进行 Kubernetes 集群的监控,它会默认把 kube-state-metrics 作为一个组件进行安装。
这个版本中新增了几个功能:
- #1652 在 Ingress 的指标
kube_ingress_info
中增加了 IngressClass 的支持; - #1644 扩展 KSM 来支持自定义资源的 metrics;
- #1491 将
PodDisruptionBudget
和CronJob
资源的 API version 切换到了 v1; - #1676 这个 PR 主要是优化 Slice 分配的性能;
不过当前这个版本标记的是预发布,需要注意下。
其他
- Chaos Mesh 正式进入 CNCF incubator 阶段 算起来 Chaos Mesh 的孵化过程还算是比较顺利的,进度也比较快。恭喜!
- Kubernetes 项目中正在进行一些移除 dockershim 的后续操作,比如文档更新之类的。如果大家想要体验由 Mirantis 维护的 cri-dockerd ,将 Docker 继续用作 Kubernetes 的容器运行时的话,可以尝试下 minikube。启动时增加
--runtime=docker
即可; - CVE-2022-23649 Cosign 中包含了一个 CVE 漏洞。关于 Cosign 我在之前的文章中由介绍过,它是用于去校验镜像的,算作是供应链安全中的一个组件。这个事情说明,做供应链安全的时候,得把自己所用的工具也考虑在内。(思考:用不安全的工具是否可以保证最终的安全性?)
欢迎订阅我的文章公众号【MoeLove】