K3s环境下Helm安装Envoy失败:提示需先安装CRDs
K3s部署Envoy Helm Chart遇到PodDisruptionBudget问题的解决办法
错误原因
你遇到的问题并非K3s缺少CRD,而是Envoy 1.5.0版本的Helm Chart使用了已被废弃的policy/v1beta1版本PodDisruptionBudget(PDB)资源。较新版本的K3s(对应Kubernetes 1.25+)已移除对policy/v1beta1 PDB的支持,仅保留稳定版的policy/v1 API。
解决方法
1. 升级Envoy Helm Chart版本
查找cloudnativeapp/envoy仓库中使用policy/v1版本PDB的Chart版本,直接安装该兼容版本:
helm install my-envoy cloudnativeapp/envoy --version <兼容版本号>
可通过helm search repo cloudnativeapp/envoy --versions查看所有可用版本,选择1.5.0之后的版本尝试。
2. 修改现有Chart模板(需保留1.5.0版本时使用)
如果必须使用1.5.0版本,可手动修改Chart的PDB模板文件:
- 下载并解压Chart包:
helm pull cloudnativeapp/envoy --version 1.5.0 --untar - 编辑
envoy/templates/poddisruptionbudget.yaml文件,将apiVersion字段从policy/v1beta1替换为policy/v1 - 本地安装修改后的Chart:
helm install my-envoy ./envoy
3. 排查K3s API组启用状态(可选)
默认K3s不会禁用policy API组,但如果你的K3s配置中手动禁用了该组,需要修改K3s启动参数:
- 检查kube-apiserver的启动参数,移除
--disable-api-groups=policy配置 - 重启K3s服务使配置生效
内容的提问来源于stack exchange,提问作者arimbun
相关产品推荐
相关产品推荐

