2.2. 템플릿 기반 설치에서 2.11에서 2.12로 업그레이드


이 섹션에 설명된 절차에 따라 템플릿 기반 설치에서 3scale 2.11을 2.12로 업그레이드하십시오.

업그레이드를 시작하려면 3scale이 배포된 프로젝트로 이동합니다.

$ oc project <3scale-project>
Copy to Clipboard Toggle word wrap

다음 단계를 순서대로 수행합니다.

2.2.1. 3scale 프로젝트의 백업 생성

이전 단계

없음.

현재 단계

이 단계에서는 3scale 프로젝트의 백업을 생성하는 데 필요한 작업이 나열됩니다.

절차

  1. 3scale과 함께 사용되는 데이터베이스에 따라 다음 값 중 하나를 사용하여 ${SYSTEM_DB}를 설정합니다.

    • 데이터베이스가 MySQL인 경우 SYSTEM_DB=system-mysql.
    • 데이터베이스가 PostgreSQL인 경우 SYSTEM_DB=system-postgresql.
  2. 기존 DeploymentConfigs를 사용하여 백업 파일을 생성합니다.

    $ THREESCALE_DC_NAMES="apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache ${SYSTEM_DB} system-redis system-sidekiq system-sphinx zync zync-database zync-que"
    
    for component in ${THREESCALE_DC_NAMES}; do oc get --export -o yaml dc ${component} > ${component}_dc.yml ; done
    Copy to Clipboard Toggle word wrap
  3. export all 명령을 통해 내보낸 프로젝트에서 기존 OpenShift 리소스를 모두 백업합니다.

    $ oc get -o yaml --export all > threescale-project-elements.yaml
    Copy to Clipboard Toggle word wrap
  4. export all 명령으로 내보내지 않은 추가 요소를 사용하여 백업 파일을 생성합니다.

    $ for object in rolebindings serviceaccounts secrets imagestreamtags cm rolebindingrestrictions limitranges resourcequotas pvc templates cronjobs statefulsets hpa deployments replicasets poddisruptionbudget endpoints
    do
      oc get -o yaml --export $object > $object.yaml
    done
    Copy to Clipboard Toggle word wrap
  5. 생성된 모든 파일이 비어 있지 않으며 모든 파일에 필요한 콘텐츠가 있는지 확인합니다.

2.2.2. 사용되지 않는 AMP_RELEASE 변수 제거

현재 단계

이 단계에서는 system-app 컨테이너, system-app 사전 후크에서 사용되지 않는 AMP_RELEASE 변수를 제거한 다음 AMP_RELEASE가 없는지 확인합니다.

절차

  1. system-app 컨테이너에서 변수를 제거합니다.

    • 변수 이름 뒤에 대시를 확인합니다.

      $ oc set env dc/system-app AMP_RELEASE-
      Copy to Clipboard Toggle word wrap
  2. system-app 사전 후크에서 변수를 제거합니다.

    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "AMP_RELEASE") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    Copy to Clipboard Toggle word wrap
  3. AMP_RELEASE가 없는지 확인합니다.

    $ oc get dc system-app -o yaml | grep AMP_RELEASE
    Copy to Clipboard Toggle word wrap

2.2.3. MySQL 구성 업그레이드

참고

3scale 배포에 외부 데이터베이스 모드가 활성화되어 있고 MySQL 8.0을 사용하는 경우 3scale 2.12의 인증 플러그인을 mysql_native_password 로 설정합니다.

MySQL 구성 파일에 다음을 추가합니다.

[mysqld]
default_authentication_plugin=mysql_native_password
Copy to Clipboard Toggle word wrap

현재 단계

이 단계에서는 MySQL 8.0으로 업그레이드할 수 있도록 MySQL 구성 구성 을 패치합니다.

참고

현재 3scale 설치에 system-mysql 배포가 있는 경우에만 다음 절차를 따릅니다.

절차

  1. configmap 패치:

    $ oc patch configmap/mysql-extra-conf --type merge -p '{"data": {"mysql-default-authentication-plugin.cnf": "[mysqld]\ndefault_authentication_plugin=mysql_native_password"}}'
    Copy to Clipboard Toggle word wrap
  2. configmap 이 업데이트되었는지 확인합니다.

    $ oc get cm mysql-extra-conf -o jsonpath='{.data.mysql-default-authentication-plugin\.cnf}'
    Copy to Clipboard Toggle word wrap
    • 반환되어야 합니다.

      [mysqld]
      default_authentication_plugin=mysql_native_password
      Copy to Clipboard Toggle word wrap

2.2.4. 3scale 이미지 업그레이드

현재 단계

이 단계에서는 업그레이드 프로세스에 필요한 3scale 이미지를 업데이트합니다.

2.2.4.1. system 이미지 패치

  1. 새 이미지 스트림 태그를 생성합니다.

    $ oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/system-rhel7:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. 이 절차를 계속하려면 3scale 배포와 함께 사용되는 데이터베이스를 고려하십시오.

2.2.4.1.1. 시스템 이미지 패치: 3scale with Oracle Database
  1. Oracle Database를 사용하여 3scale의 시스템 이미지 패치를 시작하려면 시스템 이미지를 빌드해야 합니다.

    • GitHub 리포지토리에서 3scale OpenShift 템플릿을 다운로드하고 아카이브를 추출합니다.

      tar -xzf 3scale-amp-openshift-templates-3scale-2.12.0-GA.tar.gz
      Copy to Clipboard Toggle word wrap
    • Oracle Database Instant Client Package 파일을 3scale-amp-openshift-templates-3scale-2.12.0-GA/amp/system-oracle/oracle-client-files 디렉터리에 배치합니다.
    • oc process 명령을 -f 옵션과 함께 oc apply 명령을 지정하고 oc apply 명령으로 build.yml OpenShift 템플릿을 지정하고 -f 옵션을 지정하여 기존 빌드를 덮어씁니다.

      $ oc process -f build.yml | oc apply -f -
      Copy to Clipboard Toggle word wrap
    • oc start-build 명령을 입력하여 새 시스템 이미지를 빌드합니다.

      $ oc start-build 3scale-amp-system-oracle --from-dir=.
      Copy to Clipboard Toggle word wrap
  2. system-app ImageChangeTrigger를 패치합니다.

    1. 이전 2.11-oracle 트리거를 제거합니다.

      $ oc set triggers dc/system-app --from-image=amp-system:2.11-oracle --containers=system-master,system-developer,system-provider --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-app --from-image=amp-system:2.12-oracle --containers=system-master,system-developer,system-provider
      Copy to Clipboard Toggle word wrap

      이렇게 하면 system-app 이 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  3. system-sidekiq ImageChange 트리거를 패치합니다.

    1. 이전 2.11-oracle 트리거를 제거합니다.

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11-oracle --containers=system-sidekiq,check-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.12-oracle --containers=system-sidekiq,check-svc
      Copy to Clipboard Toggle word wrap

      이렇게 하면 system-sidekiq가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  4. system-sphinx ImageChange 트리거를 패치합니다.

    1. 이전 2.11-oracle 트리거를 제거합니다.

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.11-oracle --containers=system-sphinx,system-master-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.12-oracle --containers=system-sphinx,system-master-svc
      Copy to Clipboard Toggle word wrap

      그러면 system-sphinx가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  5. 축소하려는 경우 3scale을 축소하면 됩니다.
  1. system-app ImageChange 트리거에 패치를 적용합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/system-app --from-image=amp-system:2.11 --containers=system-master,system-developer,system-provider --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-app --from-image=amp-system:2.12 --containers=system-master,system-developer,system-provider
      Copy to Clipboard Toggle word wrap

      이렇게 하면 system-app 이 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  2. system-sidekiq ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.11 --containers=system-sidekiq,check-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-sidekiq --from-image=amp-system:2.12 --containers=system-sidekiq,check-svc
      Copy to Clipboard Toggle word wrap

      이렇게 하면 system-sidekiq가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  3. system-sphinx ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.11 --containers=system-sphinx,system-master-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-sphinx --from-image=amp-system:2.12 --containers=system-sphinx,system-master-svc
      Copy to Clipboard Toggle word wrap

      그러면 system-sphinx가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

2.2.4.2. apicast 이미지 패치

  1. amp-apicast 이미지 스트림을 패치합니다.

    $ oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. apicast-staging ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.11 --containers=apicast-staging --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/apicast-staging --from-image=amp-apicast:2.12 --containers=apicast-staging
      Copy to Clipboard Toggle word wrap

      이렇게 하면 apicast-staging 이 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  3. apicast-production ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/apicast-production --from-image=amp-apicast:2.11 --containers=apicast-production,system-master-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/apicast-production --from-image=amp-apicast:2.12 --containers=apicast-production,system-master-svc
      Copy to Clipboard Toggle word wrap

      이렇게 하면 apicast-production 이 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

2.2.4.3. 백엔드 이미지 패치

  1. amp-backend 이미지 스트림을 패치합니다.

    $ oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/backend-rhel8:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. backend-listener ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/backend-listener --from-image=amp-backend:2.11 --containers=backend-listener --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/backend-listener --from-image=amp-backend:2.12 --containers=backend-listener
      Copy to Clipboard Toggle word wrap

      이렇게 하면 backend-listener 가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  3. backend-worker ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/backend-worker --from-image=amp-backend:2.11 --containers=backend-worker,backend-redis-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/backend-worker --from-image=amp-backend:2.12 --containers=backend-worker,backend-redis-svc
      Copy to Clipboard Toggle word wrap

      이렇게 하면 backend-worker 가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  4. backend-cron ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/backend-cron --from-image=amp-backend:2.11 --containers=backend-cron,backend-redis-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/backend-cron --from-image=amp-backend:2.12 --containers=backend-cron,backend-redis-svc
      Copy to Clipboard Toggle word wrap

      이 명령을 실행하면 backend-cron 이 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 pod가 준비되고 이전 pod가 종료됩니다.

2.2.4.4. zync 이미지 패치

  1. amp-zync 이미지 스트림을 패치합니다.

    $ oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync 2.12"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/zync-rhel8:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. zync ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/zync --from-image=amp-zync:2.11 --containers=zync,zync-db-svc --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/zync --from-image=amp-zync:2.12 --containers=zync,zync-db-svc
      Copy to Clipboard Toggle word wrap

      그러면 zync 가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

  3. zync-que ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/zync-que --from-image=amp-zync:2.11 --containers=que --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/zync-que --from-image=amp-zync:2.12 --containers=que
      Copy to Clipboard Toggle word wrap

      그러면 zync-que 가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

2.2.4.5. system-memcached 이미지 패치

  1. system-memcached 이미지 스트림을 패치합니다.

    $ oc patch imagestream/system-memcached --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 Memcached"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/memcached-rhel7:3scale2.12"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
  2. system-memcache ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/system-memcache --from-image=system-memcached:2.11 --containers=memcache --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-memcache --from-image=system-memcached:2.12 --containers=memcache
      Copy to Clipboard Toggle word wrap

      이렇게 하면 system-memcache DeploymentConfig가 다시 배포됩니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료될 때까지 기다립니다.

2.2.4.6. zync-database-postgresql 이미지 패치

  1. zync-database-postgresql 이미지 스트림을 패치합니다.

    $ oc patch imagestream/zync-database-postgresql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "Zync 2.12 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap
    • 이 패치 명령은 2.12 태그를 포함하도록 zync-database-postgresql 이미지 스트림을 업데이트합니다. 2.12 태그가 다음 단계를 사용하여 생성되었는지 확인할 수 있습니다.

      1. 다음 명령을 실행하십시오.

        $ oc get is zync-database-postgresql
        Copy to Clipboard Toggle word wrap
      2. Tags 열에 2.12 태그가 표시되는지 확인합니다.
  2. zync-database ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.11 --containers=postgresql --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/zync-database --from-image=zync-database-postgresql:2.12 --containers=postgresql
      Copy to Clipboard Toggle word wrap

      이미지에 새 업데이트가 있는 경우 이 패치에서 zync-database DeploymentConfig의 재배포를 트리거할 수도 있습니다. 이 경우 새 Pod가 재배포되고 준비되고 이전 Pod가 종료될 때까지 기다립니다.

2.2.4.7. 추가 이미지 변경

3scale 2.11 설치에서 하나 이상의 다음 DeploymentConfig를 사용할 수 있는 경우 적용되는 링크를 클릭하여 진행 방법에 대한 자세한 내용을 가져옵니다.

backend-redis DeploymentConfig

현재 3scale 설치에 backend-redis DeploymentConfig가 있는 경우 backend-redisredis 이미지를 패치합니다.

  1. backend-redis 이미지 스트림을 패치합니다.

    $ oc patch imagestream/backend-redis --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "Backend 2.12 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    이 패치는 backend-redis 이미지 스트림을 업데이트하여 2.12 태그를 포함합니다. 아래 명령을 사용하면 태그 열에 2.12 가 표시되면 태그가 생성되었는지 확인할 수 있습니다.

    $ oc get is backend-redis
    Copy to Clipboard Toggle word wrap
  2. backend-redis ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/backend-redis --from-image=backend-redis:2.11 --containers=backend-redis --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/backend-redis --from-image=backend-redis:2.12 --containers=backend-redis
      Copy to Clipboard Toggle word wrap

      이미지에 새 업데이트가 있는 경우 이 패치에서 backend-redis DeploymentConfig의 재배포를 트리거할 수도 있습니다. 이 경우 새 Pod가 재배포되고 준비되고 이전 Pod가 종료될 때까지 기다립니다.

system-redis DeploymentConfig

현재 3scale 설치에 system-redis DeploymentConfig가 있는 경우 system-redisredis 이미지를 패치합니다.

  1. system-redis 이미지 스트림을 패치합니다.

    $ oc patch imagestream/system-redis --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 Redis"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/redis-5-rhel7:5"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    이 패치는 2.12 태그를 포함하도록 system-redis 이미지 스트림을 업데이트합니다. 아래 명령을 사용하면 태그 열에 2.12 가 표시되면 태그가 생성되었는지 확인할 수 있습니다.

    $ oc get is system-redis
    Copy to Clipboard Toggle word wrap
  2. system-redis ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/system-redis --from-image=system-redis:2.11 --containers=system-redis --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-redis --from-image=system-redis:2.12 --containers=system-redis
      Copy to Clipboard Toggle word wrap

      이미지에 새 업데이트가 있는 경우 이 패치로 인해 system-redis DeploymentConfig가 다시 배포될 수도 있습니다. 이 경우 새 Pod가 재배포되고 준비되고 이전 Pod가 종료될 때까지 기다립니다.

system-mysql DeploymentConfig

현재 3scale 설치에 system-mysql DeploymentConfig가 있는 경우 system-mysql 의 MySQL 이미지를 패치합니다.

  1. system-mysql 이미지 스트림을 패치합니다.

    $ oc patch imagestream/system-mysql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 MySQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhel8/mysql-80:1"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    이 패치는 2.12 태그를 포함하도록 system-mysql 이미지 스트림을 업데이트합니다. 아래 명령을 사용하면 태그 열에 2.12 가 표시되면 태그가 생성되었는지 확인할 수 있습니다.

    $ oc get is system-mysql
    Copy to Clipboard Toggle word wrap
  2. system-mysql ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/system-mysql --from-image=system-mysql:2.11 --containers=system-mysql --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-mysql --from-image=system-mysql:2.12 --containers=system-mysql
      Copy to Clipboard Toggle word wrap

      이미지에 새 업데이트가 있는 경우 이 패치도 system-mysql DeploymentConfig의 재배포를 트리거할 수 있습니다. 이 경우 새 Pod가 재배포되고 준비되고 이전 Pod가 종료될 때까지 기다립니다.

system-postgresql DeploymentConfig

현재 3scale 설치에 system-postgresql DeploymentConfig가 있는 경우 system-postgresql 의 PostgreSQL 이미지를 패치합니다.

  1. system-postgresql 이미지 스트림을 패치합니다.

    $ oc patch imagestream/system-postgresql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.12 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.12", "referencePolicy": {"type": "Source"}}}]'
    Copy to Clipboard Toggle word wrap

    이 패치는 2.12 태그를 포함하도록 system-postgresql 이미지 스트림을 업데이트합니다. 아래 명령을 사용하면 태그 열에 2.12 가 표시되면 태그가 생성되었는지 확인할 수 있습니다.

    $ oc get is system-postgresql
    Copy to Clipboard Toggle word wrap
  2. system-postgresql ImageChange 트리거를 패치합니다.

    1. 이전 2.11 트리거를 제거합니다.

      $ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.11 --containers=system-postgresql --remove
      Copy to Clipboard Toggle word wrap
    2. 새 버전별 트리거를 추가합니다.

      $ oc set triggers dc/system-postgresql --from-image=system-postgresql:2.12 --containers=system-postgresql
      Copy to Clipboard Toggle word wrap

      이미지에 새 업데이트가 있는 경우 이 패치도 system-postgresql DeploymentConfig의 재배포를 트리거할 수 있습니다. 이 경우 새 Pod가 재배포되고 준비되고 이전 Pod가 종료될 때까지 기다립니다.

2.2.4.8. 이미지 URL 확인

DeploymentConfig의 모든 이미지 URL에 각 URL 주소 끝에 추가된 해시가 있는 새 이미지 레지스트리 URL이 포함되어 있는지 확인합니다.

THREESCALE_DC_NAMES="apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-sidekiq system-sphinx zync zync-database zync-que"
for component in ${THREESCALE_DC_NAMES}; do echo -n "${component} image: " && oc get dc $component -o json | jq .spec.template.spec.containers[0].image ; done
Copy to Clipboard Toggle word wrap

2.2.5. 사용되지 않는 MessageBus 변수 제거

현재 단계

이 단계에서는 사용되지 않는 MESSAGE_BUS_REDIS_* 변수를 제거합니다.

2.2.5.1. system-app deploymentconfig에서 MESSAGE_BUS_REDIS_* 변수 제거

  1. system-app 컨테이너에서 MESSAGE_BUS_REDIS_* 변수를 제거합니다.

    • 변수 이름 뒤에 대시를 확인합니다.

      $ oc set env dc/system-app MESSAGE_BUS_REDIS_URL-
      $ oc set env dc/system-app MESSAGE_BUS_REDIS_NAMESPACE-
      $ oc set env dc/system-app MESSAGE_BUS_REDIS_SENTINEL_HOSTS-
      $ oc set env dc/system-app MESSAGE_BUS_REDIS_SENTINEL_ROLE-
      Copy to Clipboard Toggle word wrap
  2. system-app 사전 후크에서 MESSAGE_BUS_REDIS_* 변수를 제거합니다.

    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_URL") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_NAMESPACE") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_HOSTS") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-app -o json | jq '.spec.strategy.rollingParams.pre.execNewPod.env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_ROLE") | index(true)')
    oc patch dc/system-app --type=json -p "[{'op': 'remove', 'path': '/spec/strategy/rollingParams/pre/execNewPod/env/$INDEX'}]"
    Copy to Clipboard Toggle word wrap
  3. MESSAGE_BUS_REDIS_* 환경 변수가 없는지 확인합니다.

    $ oc get dc system-app -o yaml | grep MESSAGE_BUS_REDIS
    Copy to Clipboard Toggle word wrap

2.2.5.2. system-sidekiq deploymentconfig에서 MESSAGE_BUS_REDIS_* 변수 제거

  1. system-sidekiq 컨테이너에서 MESSAGE_BUS_REDIS_* 변수를 제거합니다.

    • 변수 이름 뒤에 대시를 확인합니다.

      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_URL-
      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_NAMESPACE-
      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_SENTINEL_HOSTS-
      $ oc set env dc/system-sidekiq MESSAGE_BUS_REDIS_SENTINEL_ROLE-
      Copy to Clipboard Toggle word wrap
  2. system-sidekiq init-container에서 MESSAGE_BUS_REDIS_* 변수를 제거합니다.

    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_URL") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_NAMESPACE") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_HOSTS") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    
    $ INDEX=$(oc get dc system-sidekiq -o json | jq '.spec.template.spec.initContainers[].env | map(.name == "MESSAGE_BUS_REDIS_SENTINEL_ROLE") | index(true)')
    oc patch dc/system-sidekiq --type=json -p "[{'op': 'remove', 'path': '/spec/template/spec/initContainers/0/env/$INDEX'}]"
    Copy to Clipboard Toggle word wrap
  3. MESSAGE_BUS_REDIS_* 환경 변수가 없는지 확인합니다.

    $ oc get dc system-sidekiq -o yaml | grep MESSAGE_BUS_REDIS
    Copy to Clipboard Toggle word wrap

2.2.5.3. system-sphinx deploymentconfig에서 MESSAGE_BUS_REDIS_* 변수 제거

  1. system-sphinx 컨테이너에서 MESSAGE_BUS_REDIS_* 변수를 제거합니다.

    • 변수 이름 뒤에 대시를 확인합니다.

      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_URL-
      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_NAMESPACE-
      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_SENTINEL_HOSTS-
      $ oc set env dc/system-sphinx MESSAGE_BUS_REDIS_SENTINEL_ROLE-
      Copy to Clipboard Toggle word wrap
  2. MESSAGE_BUS_REDIS_* 환경 변수가 없는지 확인합니다.

    $ oc get dc system-sphinx -o yaml | grep MESSAGE_BUS_REDIS
    Copy to Clipboard Toggle word wrap

2.2.5.4. system-redis secret에서 MESSAGE_BUS_REDIS_* 변수 제거

  1. system-redis 보안에서 MESSAGE_BUS_REDIS_* 변수를 제거합니다.

    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_URL'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_NAMESPACE'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_SENTINEL_HOSTS'}]"
    $ oc patch secret/system-redis --type=json -p "[{'op': 'remove', 'path': '/data/MESSAGE_BUS_SENTINEL_ROLE'}]"
    Copy to Clipboard Toggle word wrap
  2. MESSAGE_BUS_REDIS_* 환경 변수가 없는지 확인합니다.

    $ oc get secret system-redis -o yaml | grep MESSAGE_BUS
    Copy to Clipboard Toggle word wrap

이 업그레이드는 PostgreSQL 10을 사용하여 외부 시스템 데이터베이스 를 지원합니다. 3scale 업그레이드를 먼저 완료한 다음 PostgreSQL 13으로 업그레이드해야 합니다.

다음 단계

없음. 나열된 단계를 모두 수행한 후 템플릿 기반 배포의 2.11에서 2.12로 3scale 업그레이드가 완료됩니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat