You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将现有K8s应用清单迁移至Kustomize以适配Flux2 GitOps?

问题1:获取最小可用文件夹的操作步骤

  • 清理导出的deployment和service文件,删除所有集群自动生成的字段,你可以用以下命令直接导出无冗余字段的清单,不用手动逐行删除:
    # 导出deployment并清理冗余字段
    kubectl get deployment <你的应用deployment名称> -o yaml | yq 'del(.status, .metadata.creationTimestamp, .metadata.generation, .metadata.resourceVersion, .metadata.uid, .metadata.managedFields, .metadata.annotations."kubectl.kubernetes.io/last-applied-configuration")' > deployment.yaml
    
    # 导出service并清理冗余字段
    kubectl get service <你的应用service名称> -o yaml | yq 'del(.status, .metadata.creationTimestamp, .metadata.generation, .metadata.resourceVersion, .metadata.uid, .metadata.managedFields, .metadata.annotations."kubectl.kubernetes.io/last-applied-configuration")' > service.yaml
    
    如果没有安装yq工具,手动删除上述命令中指定的字段即可,清理后的清单只要保留你自定义的配置(镜像地址、端口配置、资源限制、环境变量、service类型等)和核心资源字段就可以正常使用。
  • 你已经写好的kustomization.yaml不需要修改,三个文件放在同一个文件夹下就是最小可用结构。

问题2:当前操作是否符合Kustomize最小示例要求

完全符合。你当前的kustomization.yaml是Kustomize最基础的核心结构,只声明了依赖的资源清单,没有多余配置,就是标准的最小可用示例。

问题3:配置可用性自测方法

  • 第一步本地渲染验证:在当前文件夹执行kustomize build .,如果没有报错,且输出的内容是完整、符合你预期的deployment和service清单,说明本地配置语法没问题。
  • 第二步服务端dry run验证:在本地k3d集群环境执行kubectl apply -k . --dry-run=server,如果返回configured/created无报错,说明配置符合集群的资源创建规则,不存在字段冲突、格式错误等问题。
  • 第三步实机运行验证:执行kubectl apply -k .将配置部署到k3d集群,随后执行kubectl get pods看应用pod是否正常运行,kubectl get svc看service是否正常创建,能正常访问应用就说明配置完全可用。
  • 如果你要提前适配Flux2的同步逻辑,可以直接把这三个文件推到测试用的Git仓库,在k3d集群安装Flux2并关联该测试仓库,确认Flux可以正常同步资源、应用运行正常即可。

内容的提问来源于stack exchange,提问作者Stav Alfi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:39:04