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

使用kubectl create secret避免重复创建已存在Secret的问题排查

问题解决:避免重复创建Kubernetes Secret

你的命令报错是因为逻辑运算符优先级的问题:&&的优先级比||高,导致原命令等价于:

(kubectl create secret generic test-key --dry-run=client --output=name >/dev/null 2>&1 || echo "Secret does not exist, creating secret.") && kubectl create secret generic test-key --from-literal=testkey="mysecret"

不管前面的dry-run命令是否成功(即Secret是否存在),后面的kubectl create都会执行,所以当Secret已存在时就会报错。

修复方案1:调整逻辑块(用括号包裹后续操作)

把echo和kubectl create放到同一个逻辑分支里,确保只有Secret不存在时才执行创建:

kubectl create secret generic test-key --dry-run=client --output=name >/dev/null 2>&1 || (echo "Secret does not exist, creating secret." && kubectl create secret generic test-key --from-literal=testkey="mysecret")

修复方案2:使用if语句(可读性更好)

用更直观的条件判断替代链式逻辑运算符,降低出错概率:

if ! kubectl get secret test-key >/dev/null 2>&1; then
    echo "Secret does not exist, creating secret."
    kubectl create secret generic test-key --from-literal=testkey="mysecret"
fi

两种方案都能实现「Secret不存在才创建」的需求,方案2的可读性更高,适合在脚本中使用。

内容的提问来源于stack exchange,提问作者生きがい

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:44:51