在 Kubernetes 上作为 cronjob 运行 apic-configsync 实用程序使该实用程序能够定时运行,例如每 10 分钟运行一次。
准备工作
在尝试配置 cronjob 之前,请确保满足以下先决条件:
关于本任务
您可以将 apic-configsync 实用程序配置为在 API Connect 上运行的 Kubernetes 部署中作为 cronjob 运行。 apic-configsync 实用程序应尽可能靠近目标群集运行,因此 cronjob 应配置为在与目标 API Connect 群集相同的 Kubernetes 环境中运行。
过程
- 下载并解压 Config Sync API Connect 软件包。
- 通过运行以下命令从提取的 API Connect Config Sync 软件包中提取 Config Sync 映像:
tar xf ibm-apic-configsync-image.tar.gz
- 将抽取的配置同步映像复制到目标注册表。
例如,如果使用 skopeo ,请运行以下命令:
skopeo copy dir:./ibm-apic-configsync/ibm-apic-configsync-<version>/<tag> docker://<registry>/ibm-apic-configsync/ibm-apic-configsync-<version>:<tag>
将 <version> 和 <tag> 替换为它们的实际值。 为确保使用最新值,请从解压缩的 API Connect 配置同步软件包根目录下的 README 文件中复制这些值。
将 <registry> 替换为映像注册表的实际注册表值。 请参阅有关为目标注册表配置凭证的 skopeo 文档。
- 定义源目录和目标目录的环境变量。
- 创建私钥以托管源集群和目标集群的配置详细信息。
- 创建私钥以在要运行 cronjob 的名称空间中托管源集群的配置详细信息:
kubectl create secret --namespace <namespace> generic source-catalog-details \
--from-literal=SOURCE_MGMT_SERVER=$SOURCE_MGMT_SERVER \
--from-literal=SOURCE_ORG=$SOURCE_ORG \
--from-literal=SOURCE_REALM=$SOURCE_REALM \
--from-literal=SOURCE_ADMIN_USER=$SOURCE_ADMIN_USER \
--from-literal=SOURCE_ADMIN_PASSWORD=$SOURCE_ADMIN_PASSWORD \
--from-literal=SOURCE_CATALOG=$SOURCE_CATALOG \
--from-literal=SOURCE_TOOLKIT_CREDENTIALS_CLIENTID=$SOURCE_TOOLKIT_CREDENTIALS_CLIENTID \
--from-literal=SOURCE_TOOLKIT_CREDENTIALS_CLIENTSECRET=$SOURCE_TOOLKIT_CREDENTIALS_CLIENTSECRET
- 创建私钥以在要运行 cronjob 的名称空间中托管目标集群的配置详细信息:
kubectl create secret --namespace <namespace> generic target-catalog-details \
--from-literal=TARGET_MGMT_SERVER=$TARGET_MGMT_SERVER \
--from-literal=TARGET_ORG=$TARGET_ORG \
--from-literal=TARGET_REALM=$TARGET_REALM \
--from-literal=TARGET_ADMIN_USER=$TARGET_ADMIN_USER \
--from-literal=TARGET_ADMIN_PASSWORD=$TARGET_ADMIN_PASSWORD \
--from-literal=TARGET_CATALOG=$TARGET_CATALOG \
--from-literal=TARGET_TOOLKIT_CREDENTIALS_CLIENTID=$TARGET_TOOLKIT_CREDENTIALS_CLIENTID \
--from-literal=TARGET_TOOLKIT_CREDENTIALS_CLIENTSECRET=$TARGET_TOOLKIT_CREDENTIALS_CLIENTSECRET
- 创建 cronjob:
- 打开位于提取的 API Connect 配置同步软件包中的
helper_files/configsync-cronjob-k8s.yaml 文件。
- 修改
schedule 属性以指定作业的运行频率。
建议的最小调度周期为 1 分钟; 但是,具有大量对象的部署可能需要更多时间才能完成作业。 因为不允许并发作业,所以两个连续作业启动之间的总时间可能更长。
- 将
concurrencyPolicy 设置为 Forbid。
配置同步一次对单个源/目标目录对执行操作。 如果要同步多个不同的源/目标目录对,请为每个对创建单独的 cronjob。
- 在
image 属性中,将 <registry> 变量替换为映像注册表的实际注册表值。
- 通过运行以下命令在集群中创建 cronjob 资源:
kubectl --namespace <namespace> apply -f helper_files/configsync-cronjob-k8s.yaml