This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.11.3. 마이그레이션 후크
마이그레이션의 다른 단계에서 각 후크가 실행되고 단일 마이그레이션 계획에 최대 4개의 마이그레이션 후크를 추가할 수 있습니다. 마이그레이션 후크는 애플리케이션 정지 사용자 정의, 지원되지 않는 데이터 유형을 수동으로 마이그레이션 및 마이그레이션 후 애플리케이션 업데이트와 같은 작업을 수행합니다.
마이그레이션 후크는 다음 마이그레이션 단계 중 하나에서 소스 또는 대상 클러스터에서 실행됩니다.
-
PreBackup
: 소스 클러스터에서 리소스를 백업하기 전 -
PostBackup
: 소스 클러스터에서 리소스를 백업한 후 -
PreRestore
: 대상 클러스터에서 리소스를 복원하기 전 -
PostRestore
: 대상 클러스터에서 리소스를 복원한 후
기본 Ansible 이미지 또는 사용자 정의 후크 컨테이너로 실행되는 Ansible 플레이북을 생성하여 후크를 생성할 수 있습니다.
Ansible 플레이북
Ansible 플레이북은 후크 컨테이너에 구성 맵으로 마운트됩니다. 후크 컨테이너는 MigPlan
사용자 정의 리소스에 지정된 클러스터, 서비스 계정 및 네임스페이스를 사용하여 작업으로 실행됩니다. 작업은 기본 6번의 재시도 한도에 도달하거나 성공적으로 완료될 때까지 계속 실행됩니다. 이는 초기 포드가 제거되거나 종료된 경우에도 계속됩니다.
기본 Ansible 런타임 이미지는 registry.redhat.io/rhmtc/openshift-migration-hook-runner-rhel7:1.7
입니다. 이 이미지는 Ansible Runner 이미지를 기반으로 하며 Ansible Kubernetes 리소스에 대해 python-openshift
및 업데이트된 oc
바이너리를 포함합니다.
사용자 정의 후크 컨테이너
기본 Ansible 이미지 대신 사용자 정의 후크 컨테이너를 사용할 수 있습니다.
11.3.1. 마이그레이션 후크의 Ansible 플레이북 작성 링크 복사링크가 클립보드에 복사되었습니다!
마이그레이션 후크로 사용할 Ansible 플레이북을 작성할 수 있습니다. MTC 웹 콘솔을 사용하거나 MigPlan
사용자 정의 리소스(CR) 매니페스트에서 spec.hooks
매개변수의 값을 지정하여 후크가 마이그레이션 계획에 추가됩니다.
Ansible 플레이북은 후크 컨테이너에 구성 맵으로 마운트됩니다. 후크 컨테이너는 MigPlan
CR에 지정된 클러스터, 서비스 계정 및 네임스페이스를 사용하여 작업으로 실행됩니다. 후크 컨테이너는 클러스터에서 실행되기 전에 작업에 인증이 필요하지 않도록 지정된 서비스 계정 토큰을 사용합니다.
11.3.1.1. Ansible 모듈 링크 복사링크가 클립보드에 복사되었습니다!
Ansible shell
모듈을 사용하여 oc
명령을 실행할 수 있습니다.
shell
모듈 예
- hosts: localhost gather_facts: false tasks: - name: get pod name shell: oc get po --all-namespaces
- hosts: localhost
gather_facts: false
tasks:
- name: get pod name
shell: oc get po --all-namespaces
k8s_info
와 같은 kubernetes.core
모듈을 사용하여 Kubernetes 리소스와 상호 작용할 수 있습니다.
k8s_facts
모듈 예
fail
모듈을 사용하여 0이 아닌 종료 상태가 정상적으로 생성되지 않는 경우 후크의 성공 또는 실패 여부를 확인할 수 있습니다. 후크는 작업으로 실행되며 후크의 성공 또는 실패 상태는 작업 컨테이너의 종료 상태를 기반으로 합니다.
fail
모듈 예
11.3.1.2. 환경 변수 링크 복사링크가 클립보드에 복사되었습니다!
MigPlan
CR 이름과 마이그레이션 네임스페이스는 환경 변수로 후크 컨테이너에 전달됩니다. 이러한 변수는 lookup
플러그인을 사용하여 액세스할 수 있습니다.
환경 변수 예