在我的umbrella Helm图表中,我定义了一个对Redis的依赖:
apiVersion: v2
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: my-project
version: 0.1.0
dependencies:
- name: redis
version: ~6.2.x
repository: https://charts.bitnami.com/bitnami
在撰写本文时,最新版本是6.2.6(参见https://bitnami.com/stack/redis/helm)。
但是当我执行helm dependency update my-project
时,Helm下载了6.2.0版本而不是6.2.6。当我试图安装我的图表时,它失败了:Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1", unable to recognize "": no matches for kind "StatefulSet" in version "apps/v1beta2"]
不依赖于Redis,我的图表安装得很好。
我也试图在图表中指出特定的Redis版本。但随后helm dependency list
返回:
NAME VERSION REPOSITORY STATUS
redis 6.2.6 https://charts.bitnami.com/bitnami wrong version
我在笔记本电脑上的Docker Desktop中运行Kubernetes。我正在使用的版本:
- Helm version: 3.7.0-rc.2
- K8s server: 1.21.2
- K8s客户端:1.21.4
使用helm install my-release bitnami/redis
独立安装Redis,安装成功
如何用复述,6.2.6依赖在我的图吗?
k8版本1.21部署最新API
Simple ref: https://stackoverflow.com/a/66164857/5525824
如果您使用的是较旧的API,则可能需要进行一些更改或使用最新的图表进行安装。
最新的部署API版本是:apps/v1您可以使用
查看K8s集群支持的APIfor kind in `kubectl api-resources | tail +2 | awk '{ print $1 }'`; do kubectl explain $kind; done | grep -e "KIND:" -e "VERSION:"
输出KIND: deployment
VERSION: v1
KIND: statefulset
VERSION: v1
或者使用简单的命令:kubectl api-versions
你应该checkout这个Bitnami Redis文档:https://artifacthub.io/packages/helm/bitnami/redis
几天前更新了,可以使用API的微小更改。
如果你查看Redis的稳定版本:https://github.com/helm/charts/blob/master/stable/redis/templates/redis-master-statefulset.yaml
有状态API版本:apiVersion: apps/v1
您可以使用:https://github.com/bitnami/charts/tree/master/bitnami/redis#common-parameters
更改Bitnami helm chart API您可以更改API版本:https://github.com/bitnami/charts/blob/9f9d8aa887608e39aaab4ca1a80677605825b888/bitnami/redis/templates/master/statefulset.yaml#L2
此Helm Chart的先前版本使用apiVersion: v1(可安装)由Helm 2和3),这个Helm图表更新为apiVersion: v2(仅可由Helm 3安装)。在这里你可以找到更多关于apiVersion字段。在Chart.yaml中显示的不同字段文件已按字母顺序排列在一个均匀的方式为所有的Bitnami掌舵图
阅读更多:https://helm.sh/docs/topics/charts/#the-apiversion-field
或:https://github.com/bitnami/charts/tree/master/bitnami/redis#to-1200
你有两个选择
- 你可以用最新的稳定API来修改舵图
- 将K8s集群降级到1.161.18或并使用旧的redis图表,这是给出错误的1.21