【Kubernetes】通过Shell命令将一整个namespaces的crojob yaml转移到另一个集群

本文中我将通过shell命令将一整个namespaces的crojob 先制成yaml文件。解决这个问题的办法有很多,不一定要局限于我这一种,我的集群环境和当时的工具环境不一定和大多数人一样。

先尝试了几种立马能想到的方法,如
kubectl get cronjob -o yaml
这种方法获取到的是一个cronjob列表,像下面这样:

apiVersion: v1
items:
- apiVersion: batch/v1beta1
  kind: CronJob
  metadata:
    creationTimestamp: "2020-05-09T10:14:53Z"
    labels:
      com.qunhe.i18n.cron/type: HD_RENDER
    name: monthly-add-hd-ticket-55001
    namespace: i18n-cron
    resourceVersion: "19143308"
    selfLink: /apis/batch/v1beta1/namespaces/i18n-cron/cronjobs/monthly-add-hd-ticket-55001
    uid: ff7f9ad9-1010-486a-a27c-d780df725615
  spec:

我直接apply 会报错,然后换了几个思路都不行。

然后我想了一下,既然一部不行,我就差分几步来做。我知道如果直接针对某一个特定的cronjob是可行的,那我把整个cronjob name的名字拉下来即可。

于是一番搜索,得出这样一个方法
kubectl get cronjobs --no-headers -n i18n-cron -o custom-columns=":metadata.name"

之后通过shell进行数组便利即可

#!/bin/sh
CRONJOB_NAMES=$(kubectl get cronjobs --no-headers -n i18n-cron -o custom-columns=":metadata.name")
arrays=($(echo $CRONJOB_NAMES | tr ' ' '\n'))
for cronjob in ${arrays[@]}
do
  kubectl get cronjob $cronjob -n i18n-cron -o yaml > ./$cronjob.yaml
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值