「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」。
Helm v3.3.4 发布
本周 Helm v3.3.4 发布了, 这个版本是一个 bugfix 版本, 修复了自 Helm v3.3.2 中引入的一些问题。
- #8779 确保 warning 信息输出到 stderr 而不是 stdout ;
- #8791 修复了自 #8779 中引入的,在 windows 上 build 的异常。主要是在 PR CI 中没有测试 Windows 平台;
- #8777 修复了自 v3.3.2 中带来的 break change 。在 v3.3.1 及之前版本中,
helm repo add
是一个幂等操作,但自 v3.3.2 中为了修复安全问题,引入了一个 break change ,如果要添加同名的 repo ,需要增加--force-update
参数才可以。这导致了很多自动化工具的失败,所以在 v3.3.4 版本中对此进行了修复。即:如果添加的 repo 完全相同,则此操作还是幂等的,如果 repo 仅是 name 相同,但是 url 或者 repo 的信息不同,则需要增加--force-update
参数才可以。
Docker v19.03.13 发布
Docker v19.03.13 发布了, 虽然这个版本的变更看起来不多,在 ReleaseNote 中没有做太多的说明,但 这个版本其实需要格外注意。
修复了 rootless 模式下,端口转发造成的资源泄漏问题,主要是 rootless 模式下依赖的组件的泄漏导致的;
修复了 network sandbox 未被完全回收的问题,主要是代码中的用来清理的
defer
函数检查的变量有误;将 containerd 升级至 v1.3.7 在此版本之前,Docker v19.03 系列一直在使用 containerd v1.2.x 版本。在 Docker v19.03.12 版本中,使用的是 containerd v1.2.13 。
containerd v1.2 系列原定于 2020 年 9 月 26 日终止维护(EOL),现在经过维护者们讨论,决定将此时间延长至 10 月 15 日,以便用于迁移至 v1.3 版本中去。
也就是说, 如果你在负责 Docker / 相关容器基础环境的话,我建议你将 Docker 版本升级至 v19.03.13 ,或者直接将 containerd 从 v1.2 系列升级至 v1.3.7 版本。
至于 containerd v1.3 版本与 v1.2 之间的变化,我建议你阅读我往期的 「K8S 生态周报」,自去年 9 月 containerd v1.3.0 发布开始,几乎每个版本我都有详细介绍过。
Podman v2.1 发布
Podman 在 v2.1 带来了很多新的特性,我们一起来看看吧:
新增
podman save
和podman load
现在也可以像 docker 那样,创建或者加载包含多个镜像的归档文件了;现在的配置文件默认使用
$HOME/.config/containers/containers.conf
了,如果从旧版本升级可能会遇到如下提示:
WARN[0000] Found deprecated file /home/tao/.config/containers/libpod.conf, please remove. Use /home/tao/.config/containers/containers.conf to override defaults.
WARN[0000] Ignoring libpod.conf EventsLogger setting "journald". Use "/home/tao/.config/containers/containers.conf" if you want to change this setting and remove libpod.conf files.
WARN[0000] Found deprecated file /home/tao/.config/containers/libpod.conf, please remove. Use /home/tao/.config/containers/containers.conf to override defaults.
WARN[0000] Ignoring libpod.conf EventsLogger setting "journald". Use "/home/tao/.config/containers/containers.conf" if you want to change this setting and remove libpod.conf files.
- rootless 模式下,现在完全支持
podman network
相关功能,并且 rootless 容器可加入网络; podman run
和podman create
为--cgroups
模式增加了一个新的选项--cgroups=split
,这对于将 podman 容器作为 systemd unit 运行时比较有用;podman play kube
做了很多改进,比如支持read-only
挂载,可以处理HostAlias
等;podman run
和podman create
可以增加--tz
参数,用来直接设置容器的时区,算是个比较有用的功能。
安全漏洞 CVE-2020-14386
CVE-2020-14386 这个漏洞我在 9 月初就看到了邮件组的消息,当时做了下大概的测试,不过没有写相关内容出来。
今天正好有朋友又讨论到这个漏洞,这里简单的聊一下好了。
这是一个影响面很广泛的漏洞,因为是内核漏洞而非应用层漏洞,并且 内核版本是 v4.6-rc1
到 v5.9-rc4
之间的,全部会受此漏洞影响。
我在 CentOS 8 的系统上,直接下载 https://seclists.org/oss-sec/2020/q3/att-146/trigger_bug_c.bin 使用 gcc
编译后,执行会立即使系统 crash 并重启。
ReaHat 对此漏洞有一篇介绍, 其中介绍了触发此漏洞的条件是,具备 CAP_NET_RAW
权限的本地用户才能触发此漏洞。
对于云原生从业者而言,如果你在用 Kubernetes ,那我建议你如果没有啥特殊原因,可以直接设置 PSP ,禁止 CAP_NET_RAW
权限。
或者跳过受影响版本的内核。 当前在内核 5.4.64 和 5.8.8 均已修复。我已经将自己的环境升级到了 5.8.11 版本的内核。
上游进展
- #94728
kubectl portforward
可以继续转发 TCP 和 UDP 了。
欢迎订阅我的文章公众号【MoeLove】