前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >K8S 生态周报| Helm v3.5 正式发布,带来完备的 OCI 支持

K8S 生态周报| Helm v3.5 正式发布,带来完备的 OCI 支持

作者头像
Jintao Zhang
发布2021-03-16 15:54:55
5080
发布2021-03-16 15:54:55
举报
文章被收录于专栏:MoeLove

KIND v0.10 正式发布

KIND (Kubernetes In Docker )是我很喜欢也一直在参与贡献的 Kubernetes SIG 子项目,本周 KIND 发布了 v0.10 版本,距离上次 v0.9 版本已过去了 4 个多月,在此期间,我们做了很多的优化和改进。下面我来具体介绍下:

破坏性变更

这个部分显然是大家最为关心的,这里有三个需要注意的点:

  • 默认的 Node 镜像版本已经更新为了 Kubernetes v1.20.2 版本,所以个别有关 Kubernetes 自身特性变更的方面需要注意下;
  • IPv6 Pod 子网默认从 /64 修改成了 /56 ,这里的修改参考了 RIPE 的一篇关于 IPv6 子网规划的最佳实践[2],有兴趣的朋友可以了解下;
  • 我们目前能保障 KIND 与 v1.14.0+ 的 Kubernetes 完备的兼容,但对于 v1.13.x 版本我们只能尽量做到最好;

新特性

  • 当构建 v1.19+ 版本的 Kubernetes 镜像时,可以不构建 dockershim 组件,以便减小镜像的体积;
  • 通过优化编译参数,显著的减少了 KIND 二进制文件的体积(~7MB);
  • kind export logs 导出的 log 中将包含 KIND 的版本信息,以便于更好的定位问题;
  • 实验性使用 GitHub Action CI 提供 docker/podman/cgroup v2 等环境的支持;
  • 文档内容的优化和完善,包括 WSL2,负载均衡等方面;

修正

  • 优化了 cgroups 相关的处理逻辑;
  • 优化了一些错误信息的内容;

大家可以直接在 KIND v0.10.0 版本的 Release 页面[3]下载预编译好的二进制文件进行体验,有任何问题欢迎随时反馈。

Helm v3.5 正式发布

Helm v3.5 是 Helm 的一个特性版本,此版本的特性主要集中在 OCI 支持和模板函数,以下是我认为值得关注的一些变更:

#9126 Helm 的 template 中新增加了超过 20 个的函数支持,具体函数列表可参考 sprig 的列表[4];

#8843 允许在设置了 HELM_EXPERIMENTAL_OCI 环境变量的前提下,通过 helm pull oci:// 的方式来下载 OCI 仓库中下载 Chart 和更新依赖;

#8886 为 helm dep build 增加了一个 --skip-refresh 的参数,这样就不会刷新本地仓库中的 cache 了;

#8363 添加了一个 wait-for-jobs 的参数,当同时设置了 --wait 时候,helm install 等命令将会等待所有的 Job 都执行完成后,才会认为本次操作完成。当然,它也会受到 --timeout 参数的影响,最多等待时间不会超过 timeout 设置的时间;

#8958 添加了 --kube-cafile 的参数和等价的 HELM_KUBECAFILE 环境变量,用来指定连接 Kubernetes 时的 CA 。在此变更之前,如果 Kubernetes 集群的证书未在系统层信任的话,就会出现失败的情况,提示 x509: certificate signed by unknown authority 之类的。以下是三种可用的解决方案:

代码语言:javascript
复制
KUBECONFIG=~/.mycustomkubeconfig
kubectl config set-cluster internal.company --server=https://internal.company:443 --certificate-authority=/tmp/ca.crt
kubectl config set-context some-context --cluster=internal.company --namespace=myns
kubectl config use-context some-context
HELM_NAMESPACE=myns HELM_KUBEAPISERVER=https://internal.company:443 helm install --kubeconfig="${KUBECONFIG}" some-app company/some-app
代码语言:javascript
复制
HELM_NAMESPACE=myns HELM_KUBEAPISERVER=https://internal.company:443 HELM_KUBECAFILE=/tmp/ca.crt helm install some-app company/some-app

可以看到,方便了很多。

  • 通过此处提供的 HELM_KUBECAFILE 的环境变量:
  • Kubeconfig 增加 certificate-authority:

#8626 用 Artifact Hub 替代了 Helm Hub 。我在去年的 K8S 生态周报| Helm 五周岁啦![5] 中曾具体介绍过此事,感兴趣的小伙伴可以看看具体内容;

更多关于此版本的变更,请参考其 ReleaseNote[6]

事件

  • Docker 把 Distribution 捐给了 CNCF[7],Docker Distribution 是 Docker Hub 及众多镜像仓库的底层实现,捐给 CNCF 有望为其带来更强大的生命力;
  • Docker Hub Tool 开源啦 可以在我之前的Docker Hub Tool 文章中了解其具体特性;

上游进展

  • #96021 当往 CSI 卷上创建卷数据文件期间如果发生异常,不会再自动删除全部数据了,现在仅删除数据文件和卷路径;
  • #98678 TTLAfterFinished 特性将默认启用,并且升级至 beta 。此特性是用于控制 Job 和 Pod 完成后的清理时间,通过 .spec.ttlSecondsAfterFinished 进行设置,在资源创建或完成后都可以修改这个值,但是一旦超过 TTL,并且 K8S 认为可删除资源的时候,再修改这个 TTL 也没有效果了;

TheMoeLove

参考资料

[1]

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

[2]

终端用户的 IPv6 子网划分最佳实践: https://www.ripe.net/publications/docs/ripe-690#4--size-of-end-user-prefix-assignment---48---56-or-something-else-

[3]

KIND v0.10.0 Release: https://github.com/kubernetes-sigs/kind/releases/tag/v0.10.0

[4]

Helm v3.5 新增函数说明: https://github.com/Masterminds/sprig/releases/tag/v3.2.0

[5]

Helm Hub 迁移到 Artifact Hub: https://zhuanlan.zhihu.com/p/267670759

[6]

Helm v3.5 Release: https://github.com/helm/helm/releases/tag/v3.5.0

[7]

Docker 把 Distribution 捐给了 CNCF: https://www.docker.com/blog/donating-docker-distribution-to-the-cncf/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MoeLove 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 破坏性变更
  • 新特性
  • 修正
  • Helm v3.5 正式发布
  • 事件
  • 上游进展
    • 参考资料
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档