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

如何像编辑Deployment一样在Kubernetes中编辑Sealed Secret?

编辑Kubernetes Sealed Secret的步骤

Sealed Secret的加密数据无法直接编辑,必须通过解密为普通Secret → 修改 → 重新密封的流程来操作,具体步骤如下:

1. 获取并解密对应的普通Secret

如果Sealed Secret已部署到集群,对应的普通Secret已存在,直接获取:

kubectl get secret my-secret -n test-ns -o yaml > my-secret.yaml

如果只有本地的Sealed Secret文件(未部署),用kubeseal解密:

kubeseal --decode -f your-sealed-secret.yaml > my-secret.yaml

2. 编辑普通Secret

你可以直接在集群中编辑Secret:

kubectl edit secret my-secret -n test-ns

或者编辑本地的my-secret.yaml文件:

  • 推荐用stringData字段(无需Base64编码,直接写明文)替换原data字段,控制器会自动完成编码:
    apiVersion: v1
    kind: Secret
    metadata:
      name: my-secret
      namespace: test-ns
    stringData:
      username: new-username
      password: new-password
    
  • 若坚持用data字段,需将明文转为Base64编码:echo -n "new-value" | base64,替换对应值。

本地编辑完成后,重新应用到集群:

kubectl apply -f my-secret.yaml

3. 删除旧的Sealed Secret

由于Sealed Secret控制器会管理对应普通Secret的生命周期,需先删除旧的Sealed Secret:

kubectl delete sealedsecret my-secret -n test-ns

4. 重新密封修改后的Secret

将修改后的普通Secret重新密封为Sealed Secret,替换成你集群中Sealed Secrets控制器的名称和命名空间(通常为sealed-secrets和kube-system):

kubectl get secret my-secret -n test-ns -o yaml | kubeseal --controller-name=sealed-secrets --controller-namespace=kube-system -o yaml > new-sealed-secret.yaml

最后应用新的Sealed Secret到集群:

kubectl apply -f new-sealed-secret.yaml

完成后,Sealed Secret控制器会自动重新生成对应的普通Secret,确保修改生效。

内容的提问来源于stack exchange,提问作者P Nisanth Reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:56:10