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.2. 온-프레미스에서 클라우드 기반 클러스터로 애플리케이션 마이그레이션
두 클러스터 간에 네트워크 터널을 설정하여 방화벽 뒤에 있는 소스 클러스터에서 클라우드 기반 대상 클러스터로 마이그레이션할 수 있습니다. crane tunnel-api 명령은 소스 클러스터에서 VPN 터널을 만든 다음 대상 클러스터에서 실행되는 VPN 서버에 연결하여 이러한 터널을 설정합니다. VPN 서버는 대상 클러스터의 로드 밸런서 주소를 사용하여 클라이언트에 노출됩니다.
대상 클러스터에서 생성된 서비스는 소스 클러스터의 API를 대상 클러스터에서 실행 중인 MTC에 노출합니다.
사전 요구 사항
- VPN 터널을 생성하는 시스템은 액세스 권한이 있어야 하며 두 클러스터에 모두 로그인되어 있어야 합니다.
- 대상 클러스터에 로드 밸런서를 생성할 수 있어야 합니다. 이것이 가능한지 확인하려면 클라우드 공급자를 참조하십시오.
- VPN 터널을 실행할 소스 클러스터와 대상 클러스터 모두에서 네임스페이스에 할당할 수 있는 이름이 있어야 합니다. 이러한 네임스페이스는 사전에 생성할 수 없습니다. 네임스페이스 규칙에 대한 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names을 참조하십시오.
- 여러 방화벽으로 보호된 소스 클러스터를 클라우드 클러스터에 연결하는 경우 각 소스 클러스터에 자체 네임스페이스가 필요합니다.
- -02- 서버는 대상 클러스터에 설치되어 있습니다.
- -02- 클라이언트는 소스 클러스터에 설치되어 있습니다.
MTC에서 소스 클러스터를 구성할 때 API URL은
https://proxied-cluster<namespace>.svc.cluster.local:8443.- API를 사용하는 경우 각 원격 클러스터에 대한 MigCluster CR 매니페스트 생성 을 참조하십시오.
- MTC 웹 콘솔을 사용하는 경우 MTC 웹 콘솔 을 사용하여 애플리케이션 마이그레이션을 참조하십시오.
- MTC 웹 콘솔 및 마이그레이션 컨트롤러가 대상 클러스터에 설치되어 있어야 합니다.
절차
crane유틸리티를 설치합니다.podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-controller-rhel8:v1.7):/crane ./
$ podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-controller-rhel8:v1.7):/crane ./Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 소스 클러스터의 노드와 대상 클러스터의 노드에 원격으로 로그인합니다.
로그인 후 두 클러스터의 클러스터 컨텍스트를 가져옵니다.
oc config view
$ oc config viewCopy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 시스템에서 다음 명령을 입력하여 터널을 설정합니다.
crane tunnel-api [--namespace <namespace>] \ --destination-context <destination-cluster> \ --source-context <source-cluster>$ crane tunnel-api [--namespace <namespace>] \ --destination-context <destination-cluster> \ --source-context <source-cluster>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스를 지정하지 않으면 명령은 기본값
openvpn을 사용합니다.예:
crane tunnel-api --namespace my_tunnel \ --destination-context openshift-migration/c131-e-us-east-containers-cloud-ibm-com/admin \ --source-context default/192-168-122-171-nip-io:8443/admin$ crane tunnel-api --namespace my_tunnel \ --destination-context openshift-migration/c131-e-us-east-containers-cloud-ibm-com/admin \ --source-context default/192-168-122-171-nip-io:8443/adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 작은 정보crane tunnel-api --help를 입력하여crane tunnel-api명령에 사용 가능한 모든 매개변수를 참조하십시오.이 명령은 TSL/SSL 인증서를 생성합니다. 이 과정에 몇 분이 걸릴 수 있습니다. 프로세스가 완료되면 메시지가 표시됩니다.
LoadBalancer 서버는 대상 클러스터에서 시작되고,-02- 클라이언트는 소스 클러스터에서 시작됩니다.
몇 분 후에 로드 밸런서가 소스 노드에서 확인됩니다.
작은 정보LoadBalancer Pod의 로그를 보고 root 권한으로 다음 명령을 입력하여 이 프로세스의 상태를 확인할 수 있습니다.
oc get po -n <namespace>
# oc get po -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE <pod_name> 2/2 Running 0 44s
NAME READY STATUS RESTARTS AGE <pod_name> 2/2 Running 0 44sCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -f -n <namespace> <pod_name> -c openvpn
# oc logs -f -n <namespace> <pod_name> -c openvpnCopy to Clipboard Copied! Toggle word wrap Toggle overflow 로드 밸런서의 주소가 확인되면
Initialization sequence Completed메시지가 로그 끝에 표시됩니다.대상 제어 노드에 있는-02- 서버에서
openvpn서비스와proxied-cluster서비스가 실행 중인지 확인합니다.oc get service -n <namespace>
$ oc get service -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 소스 노드에서 마이그레이션 컨트롤러의 서비스 계정(SA) 토큰을 가져옵니다.
oc sa get-token -n openshift-migration migration-controller
# oc sa get-token -n openshift-migration migration-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow MTC 웹 콘솔을 열고 다음 값을 사용하여 소스 클러스터를 추가합니다.
- 클러스터 이름: 소스 클러스터 이름입니다.
-
URL:
proxied-cluster.<namespace>.svc.cluster.local:8443. <namespace>의 값을 정의하지 않은 경우openvpn을사용합니다. - 서비스 계정 토큰: 마이그레이션 컨트롤러 서비스 계정의 토큰입니다.
-
이미지 레지스트리에 노출된 경로 호스트:
proxied-cluster.<namespace>.svc.cluster.local:5000. <namespace>의 값을 정의하지 않은 경우openvpn을사용합니다.
MTC가 연결을 성공적으로 검증한 후 마이그레이션 계획을 생성하고 실행할 수 있습니다. 소스 클러스터의 네임스페이스가 네임스페이스 목록에 표시되어야 합니다.