2.9. WildcardRouter에서 Zync Route Management로 마이그레이션
3scale 2.6에서는 WildcardRouter 구성 요소와 와일드카드 OpenShift 경로가 제거되었으며 이제 Zync 하위 시스템에서 관리하는 개별 OpenShift 경로로 생성됩니다. 이 절차에서는 WildcardRouter에서 Zync로 경로 관리 마이그레이션을 자세히 설명합니다.
이 시점에서 모든 3scale 이미지가 3scale 2.6으로 업그레이드되었습니다. 3scale 서비스 및 테넌트에 해당하는 OpenShift 경로 생성 및 삭제는 Zync 하위 시스템에서 자동으로 관리합니다. 또한 이전 섹션에서 수행한 새로운 OpenShift 요소를 추가하여 모든 새로운 Zync 인프라를 사용할 수 있습니다.
OpenShift 경로 관리를 WildcardRouter에서 Zync로 마이그레이션하려면 OpenShift 경로 및 와일드카드 경로와 관련된 이전 3scale 테넌트 및 서비스를 제거한 다음 Zync에서 기존 서비스 및 테넌트를 강제로 다시 평가해야 합니다. 그러면 Zync가 현재 보유하고 있는 것과 동일한 경로를 만들 수 있습니다.
공용 기본 URL이 수정되면 이벤트가 system-app에서 트리거되고 system-
redis에 저장된 작업 대기열을 통해 system-
sidekiq
에 알립니다. 그런 다음 작업이 백그라운드에서 처리되고 데이터가 이미 존재하는지 thezync -db인지 확인하는 zync
로 전송됩니다. 변경 사항을 감지하면 처리된 in zync-que
작업을 통해 새 경로를 생성합니다.
어떤 작업을 수행하기 전에 SSL 인증서를 일부 경로에 수동으로 설치한 경우 경로에 할당된 인증서를 복사하고 각 인증서에 할당된 경로를 기록해야 합니다. 인증서 기능을 유지하려면 Zync에서 생성할 새로운 동등한 경로에 설치해야 합니다.
- 서비스는 기본적으로 호스팅된 옵션으로 마이그레이션됩니다.
- Public Base URL은 자동으로 채워지며 경로는 Zync에 의해 생성됩니다.
- 1 단계는 self_managed 옵션을 사용하여 외부 APIcast 게이트웨이를 구성하는 경우에만 필요합니다.
- 3scale_managed 옵션을 선택하면 Zync에서 경로가 자동으로 관리됩니다.
절차
Zync가 외부 게이트웨이의 경로를 관리하지 않는다는 점을 고려할 때 제안된 대안 중 하나에 따라 Zync에서 관리하지 않는 각 서비스의 배포 옵션을 수정할 수 있습니다.
3scale에서:
- 통합 페이지로 이동하여 통합 설정 편집을 클릭합니다.
- 올바른 배포 옵션을 선택하고 다음과 같은 경우 변경 사항을 저장합니다.
API 사용:
액세스 토큰(ACCESS
_TOKEN) 및 테넌트 끝점(
)을 사용하여 서비스TENANT_
URLID
를 사용하여 서비스를 업데이트합니다.curl -XPUT "${TENANT_URL}/admin/api/services/${ID}.json" -d deployment_option=self_managed -d access_token="${ACCESS_TOKEN}"
$ curl -XPUT "${TENANT_URL}/admin/api/services/${ID}.json" -d deployment_option=self_managed -d access_token="${ACCESS_TOKEN}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 APIcast 호스팅을 사용하는 경우 아래 명령을 사용할 수 있습니다.
curl -XPUT "${TENANT_URL}/admin/api/services/${ID}.json" -d deployment_option=hosted -d access_token="${ACCESS_TOKEN}"
$ curl -XPUT "${TENANT_URL}/admin/api/services/${ID}.json" -d deployment_option=hosted -d access_token="${ACCESS_TOKEN}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 테넌트의 각 서비스에 대해 3scale 또는 API를 통해
deployment_option
필드를 수정합니다.다음은
deployment_option을
로 설정할 수 있는 경우입니다.self_
managed- APIcast는 OpenShift의 사용자 정의 경로에 연결됩니다.
- APIcast는 OpenShift 외부에서 호스팅됩니다.
-
APICAST_PATH_ROUTING
이true
로 설정되어 있습니다.
-
다른 경우에는
deployment_option
을hosted
로 설정합니다.
기존 경로 중 일부는 2.5에서 3scale에 의해 자동으로 생성되었습니다. 먼저 삭제하십시오.
oc delete route system-master oc delete route system-provider-admin oc delete route system-developer oc delete route api-apicast-production oc delete route api-apicast-staging
$ oc delete route system-master $ oc delete route system-provider-admin $ oc delete route system-developer $ oc delete route api-apicast-production $ oc delete route api-apicast-staging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WILDCARD_POLICY=Subdomain
을 사용하여 3scale 2.5를 배포한 경우 다음을 사용하여 와일드카드 경로를 제거해야 합니다.oc delete route apicast-wildcard-router
$ oc delete route apicast-wildcard-router
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
그렇지 않으면,
WILDCARD_POLICY=Subdomain
없이 3scale 2.5를 배포한 경우 Zync가 생성할 경로를 복제하지 않도록 3scale 테넌트 및 서비스에 대해 수동으로 생성한 경로를 제거해야 합니다.
이 시점에서 서비스 및 테넌트와 관련된 모든 경로가 제거되어야 합니다. 이제 Zync에서 동등한 경로를 생성합니다.
Zync를 사용하여 모든 3scale 서비스 및 테넌트 OpenShift 경로를 강제로 다시 동기화합니다.
SYSTEM_SIDEKIQ_POD=$(oc get pods | grep sidekiq | awk '{print $1}')
$ SYSTEM_SIDEKIQ_POD=$(oc get pods | grep sidekiq | awk '{print $1}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SYSTEM_SIDEKIQ_POD 환경 변수 결과가 비어 있지 않은지 확인합니다.
echo ${SYSTEM_SIDEKIQ_POD}
$ echo ${SYSTEM_SIDEKIQ_POD}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 마지막으로 resynchronization을 수행합니다.
oc exec -it ${SYSTEM_SIDEKIQ_POD} -- bash -c 'bundle exec rake zync:resync:domains'
$ oc exec -it ${SYSTEM_SIDEKIQ_POD} -- bash -c 'bundle exec rake zync:resync:domains'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템 알림에 대한 정보와 함께 이 스타일의 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Zync가 모든 기존 테넌트 및 서비스에 대해 새 경로가 생성됩니다. 경로 생성에는 서비스 및 테넌트 수에 따라 몇 분이 걸릴 수 있습니다.
프로세스가 끝나면 다음이 생성됩니다.
마스터 관리 포털 경로 1개
3scale 테넌트마다 두 개의 경로가 생성됩니다.
- 테넌트의 관리 포털 경로.
테넌트의 개발자 포털 경로.
3scale 서비스마다 두 개의 경로가 생성됩니다.
- 서비스에 해당하는 APIcast 스테이징 경로입니다.
- 서비스에 해당하는 APIcast 프로덕션 경로입니다.
위에서 설명한 모든 예상 경로가 기존 서비스 및 테넌트에 대해 생성되었는지 확인합니다. 다음을 실행하여 모든 경로를 볼 수 있습니다.
oc get routes
$ oc get routes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령의 출력으로 표시된 host/port 필드는 경로의 URL이어야 합니다.
-
WILDCARD_POLICY를
Subdomain
으로 설정하여 3scale 2.5를 배포한 경우 모든 새 경로는 이전 OpenShift 와일드카드 경로와 동일한 기본 WildcardDomain을 보유해야 합니다. - 그렇지 않으면 WILDCARD_POLICY=Subdomain 없이 3scale 2.5를 배포한 경우 새 경로는 2.5 릴리스에서 3scale에 의해 자동으로 생성된 항목을 포함하여 제거된 경로와 동일한 호스트를 보유해야 합니다.
-
WILDCARD_POLICY를
- 마지막으로 이전 와일드카드 경로에 사용자 지정 SSL 인증서를 사용하거나 수동으로 생성한 경로를 사용하는 경우 Zync에서 생성한 새 경로에 설치합니다. OpenShift 웹 패널을 통해 경로를 편집하고 인증서/s를 추가하여 수행할 수 있습니다.
새 경로를 사용하여 이 마이그레이션 전에 존재했던 서비스 및 테넌트를 계속 확인할 수 있는지 확인합니다. 다음 테스트를 수행하려면 다음을 수행합니다.
- 이 마이그레이션 전에 이미 존재하는 3scale 서비스에 연결된 기존 APIcast 프로덕션 URL의 경로를 해결합니다.
- 이 마이그레이션 전에 이미 존재하는 3scale 서비스에 연결된 기존 APIcast 스테이징 URL의 경로를 해결합니다.
- 이 마이그레이션 전에 이미 존재하는 기존 테넌트의 경로를 확인합니다.
새로운 Zync 기능이 작동하는지 확인할 때 새 테넌트 및 서비스를 생성할 때 새 경로가 생성되는지 확인합니다. 다음 테스트를 수행하려면 다음을 수행합니다.
- '마스터' 패널에서 새 테넌트를 만들고 몇 초 후에 OpenShift에 연결된 새 경로가 표시되는지 확인합니다.
- 기존 테넌트 중 하나에서 새 서비스를 생성하고 몇 초 후에 OpenShift에 연결된 새 경로가 표시되는지 확인합니다.
apicast-wildcard-router 서비스를 제거합니다.
oc delete service apicast-wildcard-router
$ oc delete service apicast-wildcard-router
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 더 이상 사용되지 않는 WildcardRouter 하위 시스템을 제거합니다.
oc delete ImageStream amp-wildcard-router oc delete DeploymentConfig apicast-wildcard-router
$ oc delete ImageStream amp-wildcard-router $ oc delete DeploymentConfig apicast-wildcard-router
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 나열된 모든 단계를 수행한 후 2.5에서 2.6으로 3scale 업그레이드가 완료되었습니다.