kubectl patch命令
1)使用patch命令修改cronjob的定时任务时间
kubectl -n iwaty(指定名称空间) patch cronjob iwaty-crontab -p ‘{“spec”:{“schedule”:"0,30 * * * * "}}’
指定每个小时的0分及30分钟执行iwaty-crontab这个任务计划
详解
spec,是在schedule的上一层,所以定义spec
schedule 是时间参数
cronjob 是任务计划类型
iwaty-crontab 是我定时任务的名字
2) 通过jenkins任务修改
properties([
parameters([
string(name: "time",defaultValue: "0,30 * * * *",description: "输入时间"),
])
])
pipeline {
agent any
stages {
stage('alter time') {
steps {
echo "${env.time}"
sh """
kubectl --kubeconfig=/var/lib/jenkins/.kube/sytconfig -n iwaty patch CronJob iwaty-crontab -p '{"spec":{"schedule":"$time"}}'
"""
}
}
}
}
3)通过patch修改deployment的image镜像
kubectl patch deployment/web-nginx -p ‘{“spec”:{“template”:{“spec”:{“containers”:[{“name”:“nginx-v1”,“image”:“nginx:v2”}]}}}}’
将depiloyment中的web-nginx的yaml文件中的镜像替换成nginx
注:如果 K8s 发现当前 containers 中已经有名字为 nginx 的容器,则只会把 image 更新上去;而如果当前 containers 中没有 nginx 容器,K8s 会把这个容器插入 containers 列表。