对于k8s的启动yml一般来说无法在里面使用变量。
这时候有两种解决方法:
- 使用helm package
- 做一个yaml template, 对需要使用变量的地方用特殊符号标识之后再用sed或者envsubst替换导出成kubectl apply可用的yml
举例,譬如想动态分派yaml中的镜像名,可以自定义如下变量
spec:
containers:
- image: $IMAGE_NAME
然后使用自制的install.sh脚本
export $IMAGE_NAME="xxx/xxxImage:0.0.1"
cat ./your_k8s_deploy.yml| envsubst