mer*_*114 6 command-line command-line-arguments kubernetes kubectl
kubectl create -f deployment.yaml如果我使用以下文件运行命令deployment.yaml,一切都会成功。
apiVersion: v1
kind: Pod
metadata:
name: my_app
labels:
app: my_app
spec:
containers:
- name: my_app
image: docker:5000/path_to_my_custom_image
args: ["my_special_argument"]
Run Code Online (Sandbox Code Playgroud)
但是,现在我想要一个自定义的“my_special_argument”,如下所示
apiVersion: v1
kind: Pod
metadata:
name: my_app
labels:
app: my_app
spec:
containers:
- name: my_app
image: docker:5000/path_to_my_custom_image
args: ["$(ARG)"]
Run Code Online (Sandbox Code Playgroud)
我想在执行命令时以某种方式设置 $ARG$ 的值kubectl create -f deployment.yaml。怎么做?
我正在寻找类似的东西:
kubectl create -f deployment.yaml --ARG=new_arg
这样的命令可以执行吗?
您可以在中使用环境变量deployment.yaml
apiVersion: v1
kind: Pod
metadata:
name: my_app
labels:
app: my_app
spec:
containers:
- name: my_app
image: docker:5000/path_to_my_custom_image
env:
- name: SPECIAL_ARG_VAL
value: "my_special_argument_val_for_my_app"
args: ["$(SPECIAL_ARG_VAL)"]
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用 Secrets 或 Configmaps 加载环境变量的值。
这是从 configmap 加载值的示例
apiVersion: v1
kind: Pod
metadata:
name: my_app
labels:
app: my_app
spec:
containers:
- name: my_app
image: docker:5000/path_to_my_custom_image
env:
- name: SPECIAL_ARG_VAL
valueFrom:
configMapKeyRef:
name: special-config
key: SPECIAL_VAL_KEY
args: ["$(SPECIAL_ARG_VAL)"]
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令创建 configmap kubectl,但建议使用单独的 yaml 文件。
kubectl create configmap special-config --from-literal=SPECIAL_VAL_KEY=my_special_argument_val_for_my_app
Run Code Online (Sandbox Code Playgroud)
args如果您在镜像的 Dockerfile 中定义了相同的环境变量,您甚至可以从上面的 pod yaml 中删除。
| 归档时间: |
|
| 查看次数: |
14123 次 |
| 最近记录: |