如何将命令和参数传递给kubernetes部署文件中的容器

如何将命令和参数传递给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: -

我必须为我的应用程序编写一个部署文件,在运行时使用运行时命令和参数。 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:
      - 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,它成功了。。。。。