「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。
本周 Helm v3.3.4 发布了, 这个版本是一个 bugfix 版本, 修复了自 Helm v3.3.2 中引入的一些问题。
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 发布了, 虽然这个版本的变更看起来不多,在 ReleaseNote 中没有做太多的说明,但 这个版本其实需要格外注意。
defer
函数检查的变量有误;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 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.
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[2] 这个漏洞我在 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 对此漏洞有一篇介绍[3], 其中介绍了触发此漏洞的条件是,具备 CAP_NET_RAW
权限的本地用户才能触发此漏洞。
对于云原生从业者而言,如果你在用 Kubernetes ,那我建议你如果没有啥特殊原因,可以直接设置 PSP ,禁止 CAP_NET_RAW
权限。
或者跳过受影响版本的内核。当前在内核 5.4.64 和 5.8.8 均已修复。我已经将自己的环境升级到了 5.8.11 版本的内核。
kubectl portforward
可以继续转发 TCP 和 UDP 了。欢迎订阅我的文章公众号【MoeLove】
TheMoeLove
[1]
k8s生态: https://zhuanlan.zhihu.com/container
[2]
CVE-2020-14386: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14386
[3]
CVE-2020-14386 RedHat: https://access.redhat.com/security/cve/CVE-2020-14386