使用Shell变量作为键创建Kubernetes ConfigMap遇阻,求解决方法
解决kubectl用Shell变量作为ConfigMap键创建失败的问题
问题原因
你的命令失效大概率是变量名拼写错误,或者Shell对带等号的参数解析异常:
- 你定义的变量是
MY_VARIBLE(多写了一个I,正确应为MY_VARIABLE),如果变量名错误,变量值为空,会生成--from-file==myfile.json这种无效格式,kubectl无法识别,导致创建失败。 - 即使变量名正确,部分Shell环境中,
--from-file=${变量}=文件名的写法可能因为等号的存在,导致变量展开不彻底。
解决办法
1. 修正变量名(最可能的原因)
把变量名拼写正确后再执行:
MY_VARIABLE="something" kubectl create configmap myconfigmap --from-file=${MY_VARIABLE}=myfile.json
2. 用双引号包裹参数
强制Shell先展开变量,避免解析异常:
MY_VARIABLE="something" kubectl create configmap myconfigmap "--from-file=${MY_VARIABLE}=myfile.json"
3. 提前拼接参数
先把--from-file的参数拼接成独立变量,再传给kubectl:
MY_VARIABLE="something" FROM_FILE_PARAM="--from-file=${MY_VARIABLE}=myfile.json" kubectl create configmap myconfigmap $FROM_FILE_PARAM
内容的提问来源于stack exchange,提问作者Кирилл Х
相关产品推荐
相关产品推荐

