K8S 生态周报| Helm v3.3.4 发布
「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。
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[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 版本的内核。
上游进展
- #94728
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
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法