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