我可以将initContainers添加到kubernetes-cronjob中吗?

twh00eeo  于 2023-02-03  发布在  Kubernetes
关注(0)|答案(3)|浏览(161)

我希望有一个initContainer在我的kubernetes cronjob运行的容器之前运行。它用于安装kubectl。有没有办法做到这一点?
我尝试将initContainer-parameter添加到cronjob.yaml文件中,但它抛出了一个错误。
我的containerInit的代码如下所示:

initContainers:
- name: install-kubectl
  image: allanlei/kubectl
  volumeMounts:
  - name: kubectl
    mountPath: /data
  command: ["cp", "/usr/local/bin/kubectl", "/data/kubectl"]

我的cronjob需要能够访问kubectl。这就是我尝试这样做的原因。我很感激任何关于如何解决这个问题的建议。

7fhtutme

7fhtutme1#

是的,您可以在CronJob模板中使用InitContainers。
就像这样:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: example
  namespace: default
spec:
  schedule: '*/1 * * * *'
  jobTemplate:
    spec:
      template:
        spec:
          initContainers:
            - name: busybox
              image: busybox
              command:
                - echo
                - initialized
          containers:
            - name: pi
              image: perl
              command:
                - perl
                - '-Mbignum=bpi'
                - '-wle'
                - print bpi(2000)
          restartPolicy: OnFailure
eeq64g8w

eeq64g8w2#

您可以将kubectl安装到您在那里使用的映像中。

tcomlyy6

tcomlyy63#

您可以直接将kubectl安装在您的docker映像中,并在cronjob中使用该映像。

相关问题