Flux Kustomize构建失败:资源ID重复及目录配置异常求助
问题:Flux部署失败且无法删除kustomization资源
仓库目录结构
└── clusters └── homelab ├── default │ ├── deployment.yaml └── flux-system ├── gotk-components.yaml ├── gotk-sync.yaml └── kustomization.yaml
错误信息
推送deployment.yaml后执行flux get kustomizations --watch得到如下错误:
NAME REVISION SUSPENDED READY MESSAGE flux-system main@sha1:58009946 False False kustomize build failed: accumulating resources: accumulation err='merging resources from './default/deployment.yaml': may not add resource with an already registered id: Deployment.v1.apps/spring-web.[noNs]': must build at directory: '/tmp/kustomization-308548873/clusters/homelab/default/deployment.yaml': file is not directory
已尝试操作及当前状态
- 执行
flux delete kustomization flux-system删除定制化资源,但无效果,该资源仍出现在输出结果中 - 执行
kubectl get deployments -A无法找到名为spring-web的Deployment
解决方案
1. 修复kustomize构建错误根源
Flux的kustomize构建失败是因为直接引用了单个YAML文件而非目录。检查clusters/homelab/flux-system/kustomization.yaml中的resources字段:
- 如果当前写的是
./default/deployment.yaml,将其修改为./default/(kustomize要求处理目录而非单个文件) - 推送修改后的
kustomization.yaml到仓库,Flux会自动同步修复构建逻辑
2. 强制清理异常的flux-system资源
若flux delete命令无效,直接通过kubectl删除:
kubectl delete kustomization flux-system -n flux-system
然后重新触发Flux的Git源同步:
flux reconcile source git flux-system
再次执行flux get kustomizations查看状态,确认flux-system是否恢复正常。
3. 验证部署结果
等待Flux同步完成后,执行以下命令检查Deployment状态(假设部署在default命名空间):
kubectl get deployments -n default
内容的提问来源于stack exchange,提问作者Kaigo
相关产品推荐
相关产品推荐

