NCP 클러스터 및 기반을 관리자 모드에서 정책 모드로 마이그레이션할 수 있습니다.
NCP 업그레이드 시 NSX Manager 모드 리소스를 NSX 정책으로 마이그레이션하여 NCP가 정책 모드에서 작동할 수 있도록 합니다. 마이그레이션을 설명서에서 "가져오기"라고도 합니다. 그들은 같은 것을 의미한다. TAS 기반을 마이그레이션하는 이 기능은 NCP 4.1.2부터 사용할 수 있습니다. TKGI 클러스터 및 vanilla Kubernetes 클러스터를 마이그레이션하는 기능은 NCP 4.0부터 사용할 수 있습니다.
사전 요구 사항
- Kubernetes 클러스터 또는 TAS 기반을 마이그레이션하는 데 다소 시간이 걸릴 수 있으며 NSX에서 제어부 다운타임(생성, 업데이트 또는 삭제 작업이 허용되지 않음)이 필요합니다. 다운타임은 다음 두 가지가 있는 마이그레이션 전략에 따라 지속됩니다.
- 전략 1: (TAS에서 권장되고 필요함) 모든 클러스터(관리자 모드 또는 정책 모드에서 실행)에서 제어부 다운타임을 동시에 스케줄링합니다. 다운타임은 모든 클러스터를 정책으로 마이그레이션할 때까지 지속됩니다. 이점은 장애 및 복구 중에 NSX 백업 및 복원 기능을 사용할 수 있다는 점입니다.
- 전략 2: 한 번에 하나의 클러스터에서 제어부 다운타임을 스케줄링합니다. 클러스터를 마이그레이션한 후 해당 클러스터의 정책 모드에서 NCP가 시작됩니다. 현재 클러스터가 마이그레이션되는 동안 다른 클러스터가 NSX 새 워크로드를 생성할 수 있으므로 NSX 백업 및 복원 을 이 전략과 함께 사용할 수 없습니다. 이 모드는 마이그레이션 및 롤백이 실패할 경우 클러스터를 삭제할 수 있는 경우 사용할 수 있습니다.
- NSX Manager는 각각 여러 클러스터 또는 기반에서 공유할 수 있습니다. 동일한 NSX Manager를 공유하는 한 번에 하나의 클러스터/기반만 정책으로 마이그레이션할 수 있습니다.
- NCP 생성 섹션 사이에 있는 수동으로 생성된 모든 DFW 섹션은 NCP 생성 DFW 섹션의 범위 밖으로 이동해야 합니다. NSX 관리자가 생성한 DFW 섹션 처리 항목을 참조하십시오.
- NCP 생성 섹션 내의 모든 사용자 생성 규칙은 NCP 생성 섹션 외부로 이동해야 합니다. NSX 관리자가 생성한 DFW 섹션 처리 항목을 참조하십시오.
- 관리자 모드의 NCP 생성 LoadBalancer 가상 서버에는 255개 이상의 규칙이 있어서는 안 됩니다. 즉, Kubernetes에는 기본 LoadBalancer에 255개 이상의 수신 규칙이 없어야 합니다. 수신 규칙이 255개 이상인 경우 NCP가 관리자 모드에서 실행되는 동안 수신을 여러 LoadBalancer CRD로 분할해야 합니다.
- NSX UA 앞에서 로드 밸런서를 사용하는 경우 스크립트로 마이그레이션하는 동안 생성된 모든 API 호출이 동일한 NSX 장치에 도달하려면 로드 밸런서에 소스 IP 지속성 프로파일을 연결해야 합니다. 모든 기반/클러스터가 정책 API로 마이그레이션된 후 이 지속성 프로파일을 제거해야 합니다.
제한 사항 및 주의 사항
- NSX Manager에서 제품 TAS 기반, TKGi 및 Vanilla Kubernetes 클러스터 간에 공유되는 시나리오를 아직 지원하지 않습니다. 동일한 NSX Manager 노드가 1개 이상의 기반 및 1개 이상의 TKGi 클러스터를 실행하는 데 사용되는 경우의 예입니다.
- 마이그레이션 후 정책 모드에서 NCP를 다시 시작하면 NCP는 TAS 기반 또는 TKGI 클러스터의 기존 워크로드를 NSX 조정합니다. 조정 시간은 기존 워크로드 크기에 비례합니다. 조정 중에 포드 또는 애플리케이션 인스턴스 생성과 같은 작업이 실패할 수 있으며 TAS 및 TKGI 엔티티에 매핑된 NSX 리소스를 생성하거나 삭제하는 데 상당한 지연이 발생할 수 있습니다. NCP 리소스 사용량이 확장 제한에 근접한 매우 큰 클러스터 또는 기반의 경우 NCP가 백엔드와 조정되도록 유지 보수 기간에 최소 45분을 추가하는 것이 좋습니다. 조정이 완료된 후 NCP가 실패한 작업을 자동으로 동기화하려고 재시도합니다.
프로세스 세부 정보
- 공유 NSX 리소스: 이러한 NSX 리소스는 관리자가 수동으로 생성하고 TAS/TKGi의 Opsmanager UI 또는 바닐라 Kubernetes의 nsx-ncp-config Kubernetes 구성 맵을 통해 NCP에 제공됩니다. 기반 및 클러스터 간에 공유할 수 있습니다. 사용자 규격이라는 YAML 파일에서 foundation/cluster 마이그레이션이 시작되기 전에 이러한 항목을 수동으로 지정해야 합니다(샘플 user-spec.yaml 참조).
- NCP 생성 NSX 리소스: 이러한 NSX 리소스는 기반/클러스터 워크로드에 대한 응답으로 NCP에서 생성됩니다. 마이그레이션 중에 자동으로 유추됩니다.
참고: NCP 포드는 모든 NCP 생성 NSX 리소스가 관리자 모드인 경우에만 관리자 모드에서 작동할 수 있습니다. 마찬가지로 NCP 포드는 모든 NCP 생성 NSX 리소스가 정책 모드인 경우에만 정책 모드에서 작동할 수 있습니다.
vanilla Kubernetes 클러스터의 마이그레이션은 "nsx-ncp-migrate-mp2p"라는 Kubernetes 작업에 의해 구동되며 TKGi 클러스터 및 TAS 기반은 "migrate-mp2p"라는 심부름에 의해 구동됩니다. 이 작업/심부름은 공유 또는 NCP 생성 NSX 리소스를 마이그레이션하는 Python 프로그램을 실행합니다. Python 프로그램은 마이그레이션(섹션 "마이그레이션 단계" 참조) 및 롤백(섹션 "롤백 모드" 참조)의 두 가지 모드로 실행됩니다. 심부름/작업이 트리거되기 전에 먼저 NSX 네트워크(관리자 및 정책 클러스터)를 공유하는 모든 클러스터에서 NCP를 중지한 다음 NSX 백업을 생성해야 합니다. 자세한 단계는 Kubernetes 클러스터 또는 TAS 기반을 마이그레이션할 때 제공됩니다.
마이그레이션 모드
마이그레이션 모드는 논리적으로 구분된 4단계로 실행됩니다.
1단계
검색 API를 사용하여 관리자 API에서 모든 NSX 리소스를 검색합니다. 클러스터 태그(NCP 생성 리소스를 마이그레이션할 때) 또는 사용자 규격 파일에 지정된 공유 리소스(공유 리소스를 마이그레이션하는 경우)를 기준으로 리소스를 필터링합니다. 요청 본문을 마이그레이션 서버로 전송하기 시작합니다. 요청을 생성할 수 없는 경우 NSX 리소스가 마이그레이션되지 않습니다.
- NSX 연결 문제
- Kubernetes API 서버에 NSX Manager 리소스를 마이그레이션하는 데 필요한 리소스가 포함되어 있지 않습니다.
2단계
1단계에서 생성된 마이그레이션 요청을 NSX 실행 중인 마이그레이션 조정기 서비스로 전송하기 시작합니다. 요청이 NSX 성공적으로 처리되면 로컬 디스크의 요청을 통해 마이그레이션된 NSX 리소스의 MP ID를 저장합니다(이를 "마이그레이션 레코드"라고 함). 문제가 발생하면 프로그램은 현재 실행 중에 마이그레이션된 모든 NSX 리소스를 로컬 디스크에 저장된 MP ID를 사용하여 관리자 모드로 롤백합니다.
- NSX 연결 문제
- 마이그레이션 API가 오류를 반환합니다.
3단계
현재 실행에서 마이그레이션된 NSX 리소스에 대해 수행해야 하는 업데이트를 유추합니다. 여기에는 NSX 리소스의 태그 및/또는 표시 이름에 대한 업데이트만 포함됩니다. 업데이트를 유추할 수 없는 경우(해당 Kubernetes 리소스가 누락된 이유일 수 있음) 모든 NSX 리소스가 롤백됩니다.
- NSX 연결 문제가 있습니다.
- Kubernetes API 서버에는 NSX 정책 리소스를 업데이트하는 데 필요한 리소스가 포함되어 있지 않습니다.
4단계
3단계에서 유추된 정보로 NSX 정책 리소스를 업데이트합니다. 당시 NSX 리소스를 업데이트할 수 없는 경우 업데이트된 정책 리소스 본문 및 정책 리소스 URL을 로컬 디스크에 저장합니다.
- NSX 연결 문제가 있습니다.
마이그레이션 중에 문제가 발생한 경우 "장애 및 복구" 섹션을 참조하십시오.
롤백 모드
이 모드에서 Python 프로그램은 로컬 스토리지의 마이그레이션 레코드에 MP ID가 있는 모든 NSX 리소스를 롤백하려고 합니다(마이그레이션 2단계 참조). 롤백이 성공적으로 완료되면 NSX 리소스의 마이그레이션 레코드가 삭제됩니다. 롤백 중에 오류가 발생하면 실행이 중지되고 심부름/작업을 다시 실행해야 합니다.
프로그램이 시작되는 즉시 로컬 스토리지에서 마이그레이션 레코드를 찾으면 롤백 모드에서 자동으로 실행됩니다(마이그레이션 2단계 참조).
장애 및 복구
전원 장애, 디스크 고갈, 연결 문제, 기능 문제 등과 같은 외부 문제로 인해 마이그레이션 프로세스가 성공적으로 완료되지 못할 수 있습니다. 이러한 시나리오에서는 복구 방법이 있습니다.
- (로그에 표시되지 않는 경우 기본 해상도) 마이그레이션 작업을 다시 실행합니다.
- 이전 실패가 1단계, 2단계 또는 3단계에서 발생한 경우 마이그레이션 작업은 마이그레이션 레코드를 사용하여 NSX 리소스를 롤백하려고 시도합니다(2단계 참조). 이 작업은 모든 NSX 리소스가 롤백될 때까지 수행해야 합니다.
- 이전 실패가 4단계에서 발생한 경우 마이그레이션 작업은 정책 모드에서 NSX 리소스를 다시 업데이트하려고 시도합니다. 이 작업은 모든 NSX 리소스가 성공적으로 업데이트될 때까지 수행해야 합니다.
- 관리자 모드에서 NCP를 실행한 다음, 마이그레이션을 다시 시도합니다. 마이그레이션 작업에서 클러스터를 마이그레이션할 수 없는 경우 관리자 모드의 이 클러스터/기반에서 NCP를 다시 실행해야 합니다. 그러나 이렇게 하면 NSX 백업이 무효화됩니다. 따라서 이 클러스터의 마이그레이션을 일시적으로 건너뜁니다. 다른 모든 클러스터가 정책 모드로 마이그레이션되면 이 클러스터에서 관리자 모드로 NCP를 시작하고 해당 클러스터의 정책 모드를 시작합니다. 60분 이상 기다린 후 처음부터 다시 마이그레이션 단계를 수행하여 클러스터 마이그레이션을 다시 시도합니다.
위의 단계로도 복구할 수 없는 드문 경우라면 클러스터를 정책으로 마이그레이션하기 전에 생성된 이전 백업 지점으로 NSX Manager를 복원하고, NSX 백업이 수행될 때 동일한 모드의 모든 클러스터에서 NCP를 다시 시작하고, 마이그레이션을 다시 시도합니다.