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

跨Namespace复制Kubernetes Secret失败,请求排查指导

跨Namespace复制Kubernetes Secret失败,请求排查指导

我仔细看了你尝试跨Namespace复制Secret的操作记录,问题的核心原因应该是你保留了原Secret中的ownerReferences字段,这会导致Elasticsearch Operator自动清理掉kube-system里的复制Secret。

为什么会出现这个问题?

原Secret的ownerReferences指向了default Namespace中的Elasticsearch资源(name: dd),而Kubernetes的所有者引用机制会让对应的控制器(这里是Elasticsearch Operator)负责管理它的所有子资源。当你把带有这个引用的Secret放到kube-system Namespace后,Operator会发现这个Secret的所有者不在当前Namespace,不符合它的管理逻辑,于是会自动删除这个“不应该存在”的Secret——这就是为什么你执行apply后提示created,但查kube-system的Secret时却找不到的原因。

正确的复制步骤

你需要在复制时移除所有和原Namespace绑定、以及控制器关联的元数据字段,包括:

  • metadata.creationTimestamp
  • metadata.resourceVersion
  • metadata.uid
  • metadata.ownerReferences

可以用这条命令完成复制:

kubectl --namespace default get secret dd-es-remote-ca -o yaml | yq 'del(.metadata.creationTimestamp, .metadata.resourceVersion, .metadata.uid, .metadata.ownerReferences)' | sed 's/namespace: default/namespace: kube-system/' | kubectl apply -f -

验证结果

执行完上面的命令后,再检查kube-system Namespace的Secret:

kubectl --namespace kube-system get secret dd-es-remote-ca

这次应该能看到复制成功的Secret了。

备注:内容来源于stack exchange,提问作者alexus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:58:16