1.11.5. Red Hat OpenShift Service Mesh를 버전 1.1에서 버전 2.0으로 마이그레이션
버전 1.1에서 2.0으로 업그레이드하려면 워크로드와 애플리케이션을 새 버전을 실행하는 Red Hat OpenShift Service Mesh의 새 인스턴스로 마이그레이션하는 수동 단계가 필요합니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh 2.0으로 업그레이드하려면 OpenShift Container Platform 4.7로 업그레이드해야 합니다.
- Red Hat OpenShift Service Mesh 버전 2.0 operator가 있어야 합니다. 자동 업그레이드 경로를 선택한 경우 Operator는 최신 정보를 자동으로 다운로드합니다. 하지만 Red Hat OpenShift Service Mesh 버전 2.0에서 기능을 사용하려면 몇 가지 단계를 거쳐야 합니다.
1.11.5.1. Red Hat OpenShift Service Mesh 업그레이드
Red Hat OpenShift Service Mesh를 업그레이드하려면 새 네임스페이스에 Red Hat OpenShift Service Mesh ServiceMeshControlPlane
v2 리소스 인스턴스를 생성해야 합니다. 구성되면 이전 메시에서 새로운 서비스 메시로 마이크로 서비스 애플리케이션과 워크로드를 이동하십시오.
프로세스
v1
ServiceMeshControlPlane
리소스 구성을 점검하여 유효한지 확인합니다.다음 명령을 실행하여
ServiceMeshControlPlane
리소스를 v2 리소스로 확인합니다.$ oc get smcp -o yaml
-
유효하지 않은 필드에 대한 정보는 출력의
spec.techPreview.errored.message
필드를 확인합니다. - v1 리소스에 유효하지 않은 필드가 있으면 리소스가 조정되지 않고 v2 리소스로 편집할 수 없습니다. v2 필드에 대한 모든 업데이트는 원래 v1 설정으로 덮어씁니다. 유효하지 않은 필드를 수정하려면 리소스의 v1 버전을 교체, 패치 또는 편집할 수 있습니다. 또한 수정하지 않고 리소스를 삭제할 수도 있습니다. 리소스가 수정된 후 조정할 수 있으며, v2 버전의 리소스를 수정하거나 볼 수 있습니다.
파일을 편집하여 리소스를 수정하려면
oc get
를 사용하여 리소스를 검색하고, 로컬로 텍스트 파일을 편집한 다음, 편집한 파일로 리소스를 교체합니다.$ oc get smcp.v1.maistra.io <smcp_name> > smcp-resource.yaml #Edit the smcp-resource.yaml file. $ oc replace -f smcp-resource.yaml
패치를 사용하여 리소스를 수정하려면
oc patch
를 사용합니다.$ oc patch smcp.v1.maistra.io <smcp_name> --type json --patch '[{"op": "replace","path":"/spec/path/to/bad/setting","value":"corrected-value"}]'
명령줄 도구로 리소스를 수정하려면
oc edit
를 사용합니다.$ oc edit smcp.v1.maistra.io <smcp_name>
컨트롤 플레인 구성을 백업합니다.
ServiceMeshControlPlane
리소스가 포함된 프로젝트로 전환합니다. 이 예제에서istio-system
은 컨트롤 플레인 프로젝트의 이름입니다.$ oc project istio-system
다음 명령을 입력하여 현재 구성을 검색할 수 있습니다. <smcp_name>은
ServiceMeshControlPlane
리소스의 메타데이터에 지정됩니다(예:basic-install
또는full-install
).$ oc get servicemeshcontrolplanes.v1.maistra.io <smcp_name> -o yaml > <smcp_name>.v1.yaml
ServiceMeshControlPlane
을 구성에 대한 정보를 시작점으로 포함하는 v2 컨트롤 플레인 버전으로 변환합니다.$ oc get smcp <smcp_name> -o yaml > <smcp_name>.v2.yaml
프로젝트를 생성합니다. OpenShift Container Platform 콘솔 프로젝트 메뉴에서
New Project
를 클릭하고 프로젝트 이름(예:istio-system-upgrade
)을 입력합니다. 또는 CLI에서 이 명령을 실행할 수 있습니다.$ oc new-project istio-system-upgrade
-
v2
ServiceMeshControlPlane
의metadata.namespace
필드를 새 프로젝트 이름으로 업데이트합니다. 이 예제에서는istio-system-upgrade
를 사용합니다. -
1.1에서 2.0으로
version
필드를 업데이트하거나 v2ServiceMeshControlPlane
에서 제거합니다. 새 네임스페이스에서
ServiceMeshControlPlane
을 생성합니다. 명령줄에서 다음 명령을 실행하여 검색한ServiceMeshControlPlane
의 v2 버전을 사용하여 컨트롤 플레인을 배포합니다. 이 예제에서 ‘<smcp_name.v2>’를 파일 경로로 바꿉니다.$ oc create -n istio-system-upgrade -f <smcp_name>.v2.yaml
대신 콘솔을 사용하여 컨트롤 플레인을 생성할 수 있습니다. OpenShift Container Platform 웹 콘솔에서 프로젝트를 클릭합니다. 그런 다음, 방금 입력한 프로젝트 이름을 선택합니다.
-
Operators
설치된 Operator를 클릭합니다. - ServiceMeshControlPlane 만들기를 클릭합니다.
-
YAML 보기를 선택하고, 검색한 YAML 파일의 텍스트를 필드에 붙여넣습니다.
apiVersion
필드가 maistra.io/v2
로 설정되어 있는지 확인하고 새 네임스페이스를 사용하도록metadata.namespace
필드를 수정합니다(예:istio-system-upgrade
). - 생성을 클릭합니다.
-
Operators