我有Kubernetes复制控制器,运行2个PHP应用程序的pod。现在,我需要安排3个cronjobs,在这些pod中运行一些PHP脚本。我怎样才能实现它? (容器的基本图像是centos:7)。
答案 0 :(得分:1)
如评论中所述,您最好的选择是创建Kubernetes CronJobs。
如果您不想公开PHP函数,可以始终使用在PHP pod中执行命令的容器。
这是一个创建cronjob的示例。这个cronjob为标签为app = my-php的每个pod运行kubectl exec,在每个pod中调用ls。
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello-cron
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: kubectl
image: lachlanevenson/k8s-kubectl
command:
- /bin/sh
- -c
args:
- kubectl get pod -l app=my-php -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | xargs -i kubectl exec {} ls
restartPolicy: Never