K8S 生态周报| Kubernetes 旧的 registry 将被冻结

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

大家好,我是张晋涛。

docker compose v2.16.0 正式发布

Docker Compose 自 v2 开始使用 Go 替换了原先的 Python 实现,并在其中添加了很多新的特性。同时,也支持通过 Docker Plugin 的方式进行配置,所以用户可以直接使用 docker compose 来进行调用。

另外,Docker Compose 尽管在默认情况下只能进行单机服务编排,但它仍然也是一个非常方便的工具,有很多的用户在使用它,Docker Compose 的更新节奏也比较快。

这次的版本中它带来了一些主要的功能:

  • compose createcompose run 中增加了一个 --remove-orphans 参数, 移除未在 Compose 文件中定义的 service 的容器;
  • 实验性的增加了一个 watch 命令,可以实时查看 build context 的变化。不过这里需要说下,compose 的 alpha 命令没有直接暴露出来,所以很多人可能都没发现。
➜  ~ docker compose alpha

Usage:  docker compose alpha COMMAND

Experimental commands

EXPERIMENTAL:
  docker compose alpha is an experimental feature.
  Experimental features provide early access to product functionality. These
  features may change between releases without warning, or can be removed from a
  future release. Learn more about experimental features in our documentation:
  https://docs.docker.com/go/experimental/

Commands:
  dry-run     EXPERIMENTAL - Dry run command allow you to test a command without applying changes
  watch       EXPERIMENTAL - Watch build context for service and rebuild/refresh containers when files are updated

Run 'docker compose alpha COMMAND --help' for more information on a command.
  • 实验性的 dry-run 命令也是这次新增的;
  • 增加了 docker compose build --push 这样在构建后就可以同时把镜像 push 到 registry 中了;
  • 修复了 goroutine 泄漏的问题,不过这个对服务无影响,是在终端输出格式化的部分的代码;

更多关于此版本的详细信息请查看其 ReleaseNote

Kubernetes 旧的 registry 将被冻结

Kubernetes 社区所使用的容器 registry 一开始是由 Google 提供的 k8s.gcr.io ,后来社区在逐步的进行迁移, 拥有了最新的 registry.k8s.io

现在 registry.k8s.io 已经基本稳定,所以社区决定将旧的 registry 进行冻结,从 4 月份开始生效。

未来新的镜像都将直接推送到新的 registry 中,不再往旧的 registry 中推送镜像。

所以如果有在使用旧 registry ,或者在进行镜像同步的小伙伴请注意,是时候更新你的配置了。 另外也可以参考我之前文章 突破 DockerHub 限制,全镜像加速服务 | MoeLove 中的思路,进行镜像的加速。

Helm v3.11.1 发布

这是一个 CVE patch 版本,主要是为了解决 CVE-2023-25165 getHostByName Function Information Disclosure · Advisory · helm/helm 漏洞。

getHostByName 是 Helm v3 中引入的一个模板函数。该函数能够接受主机名,并返回该主机名的 IP 地址。 为了获取 IP 地址,该函数执行 DNS 查询。DNS 查询在使用 helm install|upgrade|template 或 Helm SDK 渲染 chart 时发生。

传递到 chart 中的信息可能会被用于查询 IP 地址的 DNS 服务器披露。 例如,恶意图表可能会在 chart 中注入 getHostByName,以便向恶意 DNS 服务器披露一些具体信息。

本次修复中是增加了一个 --enable-dns 的参数,默认是 false, 如果用户需要该能力的话,可以自行打开,否则会自动跳过 DNS 查询的过程。

更多关于此版本的详细信息请查看其 ReleaseNote

cert-manager v1.12.0-alpha.0 发布

cert-manager 我在之前的文章中已经介绍过多次了,这里不再赘述。

在这个版本中,主要变更如下:

允许通过 Helm chart 为所有 Pod 注入 volumes 和 volumeMounts;

简单来说,在这个 PR 中增加了一个 serviceAccountRef 的配置项,允许 Vault issuer 通过该配置项直接引用一个 serviceAccount。在之前的版本中这里有个类似的配置项是 secretRef

这样比之前使用 secretRef 的好处在于,可以不用再依赖 secretRef 中配置的静态 token 了,可以更加安全。

  • 在 Helm chart 中增加了 --dns01-recursive-nameservers, --enable-certificate-owner-ref, 和 --dns01-recursive-nameservers-only 的配置项;

更多关于此版本的详细信息请查看其 ReleaseNote

Trivy v0.37.2 发布

这里有一个破坏性变更需要注意。 在使用 v0.37 或 0.37.1 版本的用户,如果在使用 Trivy 扫描 Java 的话,需要删除本地的 Java DB cache,可以执行 trivy image --reset 并升级到 v0.37.2 。

更多关于此版本的详细信息请查看其 ReleaseNote

上游进展

这个 PR 让 CEL admission controller 的代码可以被非 API server client 使用,包括:

  • 将验证查询返回的类型公开,以便调用者访问策略检查的结果;
  • 将版本转换与验证分开,无需在 API 服务器特定功能不可用时模拟 API 服务器特定功能;

其他

主要都是一些常规更新,升级依赖等。


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

TheMoeLove

加载评论