【问题标题】:How to pass arguments in kubernetes?如何在 Kubernetes 中传递参数?
【发布时间】:2021-11-22 00:23:01
【问题描述】:

我正在使用以下命令在本地机器上运行我的 docker 映像(根据提供的参数执行我的性能测试) like this

而,satheeshpandianj/my-perf-app 是我的图像名称,其余 (QA Commerce ListMarkets 1 5 Volvo) 是传递给该图像以运行的参数。我已经将此图像推送到 docker hub。我想在 kubernetes 中运行这个 docker 镜像。我编写了如下的部署 yaml 文件。

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
   app: perf
  name: perf
spec:
  replicas: 1
  selector:
   matchLabels:
    app: perf
  template:
   metadata:
     labels:
      app: perf
   spec:
     containers:
       image: docker.io/satheeshpandianj/my-perf-app
       name: perf
       args: ["QA", "Commerce", ListMarkets", 1, 5, "Volvo"]

当我执行“kubectl apply -f perf.yaml”时,我得到以下信息 error

有人可以帮我解决这个错误吗?或者请纠正我需要在我的 yaml 文件中进行哪些更改。提前致谢。

【问题讨论】:

  • 我不确定,但也许您还必须定义 command - 请参阅 k8s 文档 kubernetes.io/docs/tasks/inject-data-application/…
  • @ddegasperi - 你能告诉我要传递什么命令吗? command: ["这里要传递什么命令"]
  • 它应该是在 Dockerfile 中也定义为 CMD 或 ENTRYPOINT 的命令

标签: docker kubernetes yaml


【解决方案1】:

您收到此错误是因为 spec.containers 需要一个列表。 您必须将您的 yaml 更新为:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
   app: perf
  name: perf
spec:
  replicas: 1
  selector:
   matchLabels:
    app: perf
  template:
   metadata:
     labels:
      app: perf
   spec:
     containers:
     - image: docker.io/satheeshpandianj/my-perf-app
       name: perf
       args: ["QA", "Commerce", ListMarkets", 1, 5, "Volvo"]

是的,只是缺少-

【讨论】:

    猜你喜欢
    • 2016-03-18
    • 2020-09-08
    • 2016-04-09
    • 2022-09-25
    • 2018-09-13
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2018-05-20
    相关资源
    最近更新 更多