如何将命令和参数传递给kubernetes部署文件中的容器
我必须为我的应用程序编写一个部署文件,在运行时使用运行时命令和参数。 e、 g.如何将命令和参数传递给kubernetes部署文件中的容器,kubernetes,Kubernetes,我必须为我的应用程序编写一个部署文件,在运行时使用运行时命令和参数。 e、 g./foo-bar-a=a-b=b 这是我的部署文件: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: foo spec: replicas: 1 template: metadata: labels: name: foo spec: containers: -
/foo-bar-a=a-b=b
这是我的部署文件:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: foo
spec:
replicas: 1
template:
metadata:
labels:
name: foo
spec:
containers:
- name: foo
image: username/image:tag
# command that to be executed at run time
command: ["bar"]
args:
# This is the flag to pass at runtime
- -a=A
- -b=B
ports:
- containerPort: 9500
它表示未找到或不存在容器命令“foo”。
我将一个脚本作为入口点传递,它具有exec/usr/local/bin/foo
。
有什么问题吗?如果您想在容器中启动
/foo bar-a=a-b=b
,您的部署应该包含
- name: foo
image: username/image:tag
command: ["foo"]
args: ["bar", "-a=A", "-b=B"]
确保在用户名/image:tag
图像内的$path环境变量中有指向foo二进制文件的路径(或使用完整路径/usr/local/bin/foo
)
您可以通过以下方式检查$PATH
kubectl run test -ti --rm --image=username/image:tag --command -- echo $PATH
kubectl run test -ti --rm --image=username/image:tag --command -- foo
谢谢@delfer,我弄错了,我把二进制代码作为入口点而不是CMD。所以我把ENTRYPOINT改为CMD,它成功了。。。。。