Kubernetes 에서 cronjob으로 apic-configsync 유틸리티를 실행하면 유틸리티를 시간에 따라 (예: 10분마다) 실행할 수 있습니다.
시작하기 전에
cronjob을 구성하기 전에 다음 전제조건이 충족되었는지 확인하십시오.
이 태스크에 대한 정보
Kubernetes에서 실행되는 API Connect 배포에서 apic-configsync 유틸리티가 크론잡으로 실행되도록 구성할 수 있습니다. apic-configsync 유틸리티는 가능한 한 대상 클러스터와 가까운 곳에서 실행되어야 하므로 크론잡은 대상 API Connect 클러스터와 동일한 Kubernetes 환경 내에서 실행되도록 구성해야 합니다.
프로시저
- Config API Connect Sync 패키지를 다운로드하고 압축을 풀어주세요.
- 다음 명령을 실행하여 추출된 API Connect 구성 동기화 패키지에서 구성 동기화 이미지를 추출합니다:
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을 작성하십시오.
- 추출된
helper_files/configsync-cronjob-k8s.yaml 파일에 있는 API Connect 구성 동기화 패키지를 엽니다.
-
schedule 특성을 수정하여 작업이 실행되는 빈도를 지정하십시오.
권장되는 최소 스케줄 기간은 1분입니다. 그러나 오브젝트 수가 많은 배치는 작업을 완료하는 데 더 많은 시간이 필요할 수 있습니다. 동시 작업이 허용되지 않기 때문에 두 개의 연속 작업 시작 사이의 총 시간이 더 길어질 수 있습니다.
-
concurrencyPolicy 를 Forbid로 설정하십시오.
구성 동기화는 한 번에 하나의 소스-대상 카탈로그 쌍에서 작동합니다. 여러 개의 서로 다른 소스-대상 카탈로그 쌍을 동기화하려면 각 쌍에 대해 별도의 cronjob을 작성하십시오.
-
image 특성에서 <registry> 변수를 이미지 레지스트리의 실제 레지스트리 값으로 바꾸십시오.
- 다음 명령을 실행하여 클러스터에서 cronjob 자원을 작성하십시오.
kubectl --namespace <namespace> apply -f helper_files/configsync-cronjob-k8s.yaml