Cron Openshift/Kubernetes中的Pod调度
我想对pod应用一个每日时间表,以便它在上午9点创建,并在晚上9点销毁 我相信这是可能的使用两个几乎相同的cronjob设置适当的时间表 作业将创建一个pod,该pod将分别在早上和晚上运行以下命令:Cron Openshift/Kubernetes中的Pod调度,cron,openshift,schedule,kubernetes-pod,Cron,Openshift,Schedule,Kubernetes Pod,我想对pod应用一个每日时间表,以便它在上午9点创建,并在晚上9点销毁 我相信这是可能的使用两个几乎相同的cronjob设置适当的时间表 作业将创建一个pod,该pod将分别在早上和晚上运行以下命令: ... command: ["oc scale dc my-dc", "--replicas=1"] # The command to execute in the pod ... 要执行这些命令,我计划使用此映像,因为它随Openshift CLI一起安装: 有人能提出执行这项任务的建议吗?
...
command: ["oc scale dc my-dc", "--replicas=1"] # The command to execute in the pod
...
要执行这些命令,我计划使用此映像,因为它随Openshift CLI一起安装:
有人能提出执行这项任务的建议吗?
有哪些方面我没有考虑过?
谢谢我将分享对我有效的方法 我编写的CronJob基于image创建了一个容器(记住使用右标记指定Openshift版本),并运行典型的
oc
命令来登录和缩放上述DC
对我来说,棘手的部分是理解正确的语法,在创建后在容器中执行命令
无论如何,下面我包含了我在CronJob yaml文件中指定的容器定义:
...
spec:
containers:
- name: oc-cli
image: 'registry.access.redhat.com/openshift3/ose-cli:v3.11.153' # <===== SPECIFY YOUR OPENSHIFT VERSION
command:
- /bin/sh
- '-c'
- >-
oc login https://<LOGIN URL>/
--insecure-skip-tls-verify -u <LOGIN USERNAME> -p <LOGIN PASSWORD> ; oc scale
dc/example --replicas=1 -n cronjob-test ;
...
。。。
规格:
容器:
-姓名:oc cli
图片:“registry.access.redhat.com/openshift3/ose cli:v3.11.153”-
oc登录https:///
--不安全跳过tls验证-u-p;oc标度
dc/示例——副本=1-n cronjob测试;
...
显式写入密码可能是个问题,因此我在同一个CronJob中添加了一个Secret并对其进行了引用,以便Secret数据成为环境变量的一部分:
...
spec:
containers:
- name: oc-cli
image: 'registry.access.redhat.com/openshift3/ose-cli:v3.11.153' # <===== SPECIFY YOUR OPENSHIFT VERSION
command:
- /bin/sh
- '-c'
- >-
oc login $OC_URL --insecure-skip-tls-verify -u $OC_USER -p
$OC_PASSWORD ; oc scale dc/example --replicas=5 -n
cronjob-test ;
env:
- name: OC_USER
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: username
- name: OC_PASSWORD
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: password
- name: OC_URL
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: url
...
。。。
规格:
容器:
-姓名:oc cli
图片:“registry.access.redhat.com/openshift3/ose cli:v3.11.153”-
oc login$oc_URL--不安全的跳过tls验证-u$oc_用户-p
$OC_密码;oc比例dc/示例--副本=5-n
cronjob测试;
环境:
-姓名:OC_用户
价值来源:
secretKeyRef:
名称:oc登录凭据
关键字:用户名
-姓名:OC_密码
价值来源:
secretKeyRef:
名称:oc登录凭据
密钥:密码
-名称:OC_URL
价值来源:
secretKeyRef:
名称:oc登录凭据
关键字:url
...
不幸的是,'的文件对这个问题不是很有帮助,因为它只提供了一个例子
'相反,文档更有用。我认为您的问题的答案可以在这里找到:这描述了如何创建在集群中运行的cronjob资源谢谢,但我已经知道如何编写cronjob了。我知道我必须在一个容器中运行一个
oc
命令,我一直在寻找如何做到这一点的建议。
...
spec:
containers:
- name: oc-cli
image: 'registry.access.redhat.com/openshift3/ose-cli:v3.11.153' # <===== SPECIFY YOUR OPENSHIFT VERSION
command:
- /bin/sh
- '-c'
- >-
oc login $OC_URL --insecure-skip-tls-verify -u $OC_USER -p
$OC_PASSWORD ; oc scale dc/example --replicas=5 -n
cronjob-test ;
env:
- name: OC_USER
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: username
- name: OC_PASSWORD
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: password
- name: OC_URL
valueFrom:
secretKeyRef:
name: oc-login-credentials
key: url
...