如何在 kubernetes 中传递命令行参数?
How to pass command line arguments in kubernetes?
需要为 pod.yaml 中的 docker 容器 appContainer1 和 appContainer2 传递命令行参数。
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: microservices
labels:
app: apps
spec:
containers:
- name: appContainer1
image: gcr.io/mybucket/appContainerImage1
ports:
- containerPort: 8080
- name: appContainer2
image: b.gcr.io/mybucket/appContainerImage2
ports:
- containerPort: 9090
在docker中,我可以通过环境变量(-e)传递命令行参数
docker run --rm -it -p 9090:9090 -e spring.profiles.dynamic=local applicationimage1
同样,当容器 运行 在 kubernetes 中时,我需要传递命令行参数。
听起来您实际上并不需要命令行参数,而是环境变量 - 您可以为此使用 env
:
- name: appContainer1
image: gcr.io/mybucket/appContainerImage1
ports:
- containerPort: 8080
env:
- name: spring.profiles.dynamic
value: local
您可以使用命令行参数:
- name: appContainer1
image: gcr.io/mybucket/appContainerImage1
ports:
- containerPort: 8080
args:
- foo
- bar
- "String containing:colons:"
需要为 pod.yaml 中的 docker 容器 appContainer1 和 appContainer2 传递命令行参数。
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: microservices
labels:
app: apps
spec:
containers:
- name: appContainer1
image: gcr.io/mybucket/appContainerImage1
ports:
- containerPort: 8080
- name: appContainer2
image: b.gcr.io/mybucket/appContainerImage2
ports:
- containerPort: 9090
在docker中,我可以通过环境变量(-e)传递命令行参数
docker run --rm -it -p 9090:9090 -e spring.profiles.dynamic=local applicationimage1
同样,当容器 运行 在 kubernetes 中时,我需要传递命令行参数。
听起来您实际上并不需要命令行参数,而是环境变量 - 您可以为此使用 env
:
- name: appContainer1
image: gcr.io/mybucket/appContainerImage1
ports:
- containerPort: 8080
env:
- name: spring.profiles.dynamic
value: local
您可以使用命令行参数:
- name: appContainer1
image: gcr.io/mybucket/appContainerImage1
ports:
- containerPort: 8080
args:
- foo
- bar
- "String containing:colons:"