首页 > 解决方案 > 如何运行创建多个容器并使用 k8s 在内部运行不同的命令

问题描述

我有一个Kubernetes Job,:job.yaml

---
apiVersion: v1
kind: Namespace
metadata:
  name: my-namespace
---
apiVersion: batch/v1
kind: Job
metadata:
  name: my-job
  namespace: my-namespace
spec:
  template:
    spec:
      containers:
      - name: my-container
        image: gcr.io/project-id/my-image:latest
        command: ["sh", "run-vpn-script.sh", "/to/download/this"] # need to run this multiple times
        securityContext:
          privileged: true
          allowPrivilegeEscalation: true
      restartPolicy: Never

我需要运行command不同的参数。我有 30 个参数要运行。我不确定这里最好的解决方案是什么。我正在考虑在循环中创建容器来运行所有参数。我怎样才能做到这一点?我想同时运行commandsor 容器。

标签: dockerkubernetesgoogle-kubernetes-engine

解决方案


简单来说,您想要运行多个命令,以下是在 pod 中执行多个命令的示例格式:

command: ["/bin/bash","-c","touch /foo && echo 'here' && ls /"]

当我们将此逻辑应用于您对两种不同操作的要求时

 command: ["sh", "-c", "run-vpn-script.sh /to/download/this && run-vpn-script.sh /to/download/another"] 

推荐阅读