K8S 生态周报| Helm v3.8 OCI 支持正式 GA,Docker 新版本修复多个严重 bug

本文主要是介绍K8S 生态周报| Helm v3.8 OCI 支持正式 GA,Docker 新版本修复多个严重 bug,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

KIND v0.12.0 发布

KIND(Kubernetes In Docker)是我很喜欢,也是一直在参与的一个开源项目。在我之前的文章中有过多次介绍,可以参考 使用 Kind 在离线环境创建 K8S 集群 我基本上每天都会用到它,非常的方便。

距离上个大版本,v0.11 已经过了近十个月,我们来看看这个新版本带来哪些值得关注的特性吧:

目前 v0.12.0 默认使用的 Kubernetes 版本为 v1.23.4 版本。如果升级 KIND 的话,会重新拉取最新的镜像,镜像托管在 Docker Hub 上, 可能会比较耗时,建议确保网络顺畅。

在 v0.12.0 中专门优化了对多架构的支持,默认的所有已发布镜像都包含了 amd64 和 arm64 的支持。在镜像中也对相关组件都做了升级:

  • containerd v1.5.10

  • crictl 1.23.0

  • CNI plugin v1.1.0

此外,也修复了 Docker + cgroup2 + rootless 环境下的支持,和 WSL2 环境下的支持。建议大家进行升级。

更多详细信息请参考其 ReleaseNote

Docker v20.10.13 发布

本周 Docker 发布了 v20.10.13 版本,是的,你没有看错,现在发布的版本还是在给 v20.10 打 patch 。实际上当前 Docker 仓库中最新的代码比 v20.10 已经多了很多功能特性,只不过尚未达到发布一个全新的大版本的目标,所以一直没有发布新的大版本。

这个版本中主要是进行了一些 bugfix 和打包相关的变更。其中包括:

  • 将 buildx 升级到了 v0.8.0 版本。

  • #43165 修复了当使用 local 日志驱动时,如果迅速产生大量日志,可能会产生 OOM 的问题。如果有在使用 local 日志驱动的小伙伴,建议进行升级 。

  • #43147 修复了 fluentd 日志驱动配合 fluentd-async-connect=true 使用,并且远端服务不可用时,可能会导致 docker daemon 发生 crash 。

  • #43333 当 pull image 的时候,如果在 image-manifests 时遇到网络连接失败,则进行重试。

所以,如果有使用 localfluentd 等日志驱动的小伙伴,请尽量进行 Docker 的升级。其余场景可自行判断。

更多详细信息请参考其 ReleaseNote

Helm v3.8 发布

Helm v3.8 是一个特性版本,在这个版本中最大的变化就是对 OCI registry 的支持达到 GA。

如果想要登陆一个 OCI registry 的话,可以使用类似 Docker CLI 的用法,使用 helm registry login 镜像仓库 进行操作。

例如,可以使用如下命令登陆 GitHub 的镜像仓库地址:

➜ (MoeLove) ~ helm registry login ghcr.io                     
Username: tao12345666333
Password: 
Login Succeeded

它实际参考了 Docker CLI 的做法,包括配置文件的结构等都与 Docker CLI 保持一致。

如果想要将 Helm chart 提交到 GitHub 镜像仓库的话,可以进行如下操作:

(MoeLove) ➜ helm create foo
Creating foo
(MoeLove) ➜ helm package foo 
Successfully packaged chart and saved it to: /tmp/foo-0.1.0.tgz
(MoeLove) ➜ helm push foo-0.1.0.tgz oci://ghcr.io/tao12345666333/foo-chart
Pushed: ghcr.io/tao12345666333/foo-chart/foo:0.1.0
Digest: sha256:1b0a889b4e0fee5b5679512182fc6c2e802f39bdc5ba9d11fff0affb962b9b49

也可以通过如下命令完成 Chart 的 pull 操作:

# Pull chart
(MoeLove) ➜ helm pull oci://ghcr.io/tao12345666333/foo-chart/foo --version 0.1.0
Pulled: ghcr.io/tao12345666333/foo-chart/foo:0.1.0
Digest: sha256:1b0a889b4e0fee5b5679512182fc6c2e802f39bdc5ba9d11fff0affb962b9b49

或者安装操作:

# Install
(MoeLove) ➜ helm install foo oci://ghcr.io/tao12345666333/foo-chart/foo --version 0.1.0   
NAME: foo
LAST DEPLOYED: Sun Mar 13 16:52:55 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=foo,app.kubernetes.io/instance=foo" -o jsonpath="{.items[0].metadata.name}")export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")echo "Visit http://127.0.0.1:8080 to use your application"kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT

这次 OCI 支持达到 GA 最大的好处就在于,我们不再需要分别维护容器镜像仓库和 Helm chart 的仓库了。可以直接使用同一个,维护成本可以降低。

上游进展

#108309 · kubernetes/kubernetes 这是 KEP-2799: Reduction of Secret-based Service Account Tokens 的实现,主要原因是由于 Kubernetes 默认情况下的 Service Account Token 的机制,如果 Pod 引用了某个 Service Account,则默认会为其挂载对应的 Token。当然,我们也可以通过配置 automountServiceAccountToken: false 来避免此行为。

在这个 PR 中,将 LegacyServiceAccountTokenNoAutoGeneration 特性设置为 beta 级别,并且在 Kubernetes v1.24 版本中将默认启用。届时,所有新创建的 ServiceAccount 默认不会获取到 Token 信息。这是需要额外注意的,当然,这个变更并不会影响到 Pod 使用的。

其他一些变更

  • Thanos v0.25 发布

  • Knative v1.3 发布

  • CNI plugins v1.1.0 发布


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

af2f95bee3efb25d1f1a91903d5a3c9f.png
TheMoeLove

参考资料

[1]

k8s生态: https://zhuanlan.zhihu.com/container

这篇关于K8S 生态周报| Helm v3.8 OCI 支持正式 GA,Docker 新版本修复多个严重 bug的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817212

相关文章

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

电脑提示Winmm.dll缺失怎么办? Winmm.dll文件丢失的多种修复技巧

《电脑提示Winmm.dll缺失怎么办?Winmm.dll文件丢失的多种修复技巧》有时电脑会出现无法启动程序,因为计算机中丢失winmm.dll的情况,其实,winmm.dll丢失是一个比较常见的问... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

查看MySQL数据库版本的四种方法

《查看MySQL数据库版本的四种方法》查看MySQL数据库的版本信息可以通过多种方法实现,包括使用命令行工具、SQL查询语句和图形化管理工具等,以下是详细的步骤和示例代码,需要的朋友可以参考下... 目录方法一:使用命令行工具1. 使用 mysql 命令示例:方法二:使用 mysqladmin 命令示例:方

Java版本不兼容问题详细解决方案步骤

《Java版本不兼容问题详细解决方案步骤》:本文主要介绍Java版本不兼容问题解决的相关资料,详细分析了问题原因,并提供了解决方案,包括统一JDK版本、修改项目配置和清理旧版本残留等步骤,需要的朋... 目录错误原因分析解决方案步骤第一步:统一 JDK 版本第二步:修改项目配置第三步:清理旧版本残留兼容性对

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境