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

时间:2019-06-25 09:31:25

标签: kubernetes google-kubernetes-engine kubernetes-cronjob

我想让一个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。这就是我要这样做的原因。感谢您提出解决此问题的建议。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

是的,您可以在CronJob模板中使用InitContainers。

像这样:

apiVersion: batch/v1beta1
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

答案 2 :(得分:0)

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