2.3. 3scale 이미지 업그레이드
이 섹션에서는 3scale 이미지를 업그레이드하는 데 필요한 단계에 대해 설명합니다.
2.3.1. 절차
amp-system
이미지 스트림을 패치합니다.amp-system
이미지 스트림을 패치하려면 3scale 배포에 사용된 데이터베이스를 고려해야 합니다.- 3scale을 Oracle Database와 함께 배포하는 경우 다음 단계를 수행하여 Oracle Database : 1, 2, 4, 8 및 9로 시스템 이미지를 빌드 합니다.
데이터베이스가 다른 경우 다음 명령을 사용하십시오.
$ oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system 2.7"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/system-rhel7:3scale2.7"}, "name": "2.7", "referencePolicy": {"type": "Source"}}}]' $ oc patch imagestream/amp-system --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP system (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.7"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'
이 트리거는
system-app
,system-sphinx
및system-sidekiq
DeploymentConfigs의 재배포를 트리거합니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료됩니다.
amp-apicast
이미지 스트림을 패치합니다.$ oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast 2.7"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/apicast-gateway-rhel7:3scale2.7"}, "name": "2.7", "referencePolicy": {"type": "Source"}}}]' $ oc patch imagestream/amp-apicast --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP APIcast (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.7"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'
이 트리거는
apicast-production
및apicast-staging
DeploymentConfigs의 재배포를 트리거합니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료됩니다.amp-backend
이미지 스트림을 패치합니다.$ oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend 2.7"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/backend-rhel7:3scale2.7"}, "name": "2.7", "referencePolicy": {"type": "Source"}}}]' $ oc patch imagestream/amp-backend --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Backend (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.7"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'
이 트리거는
backend-listener
,backend-worker
,backend-cron
DeploymentConfigs의 재배포를 트리거합니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료됩니다.amp-zync
이미지 스트림을 패치합니다.$ oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync 2.7"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/zync-rhel7:3scale2.7"}, "name": "2.7", "referencePolicy": {"type": "Source"}}}]' $ oc patch imagestream/amp-zync --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "AMP Zync (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.7"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'
-
이 트리거는
zync
및zync-que
DeploymentConfigs의 재배포를 트리거합니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료됩니다.
-
이 트리거는
system-memcached
ImageStream을 패치합니다.$ oc patch imagestream/system-memcached --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System 2.7 Memcached"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/3scale-amp2/memcached-rhel7:3scale2.7"}, "name": "2.7", "referencePolicy": {"type": "Source"}}}]' $ oc patch imagestream/system-memcached --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "System Memcached (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.7"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'
이 트리거는
system-memcache
DeploymentConfig의 재배포를 트리거합니다. 재배포될 때까지 기다린 후 해당 새 Pod가 준비되고 이전 Pod가 종료됩니다.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.7 PostgreSQL"}, "from": { "kind": "DockerImage", "name": "registry.redhat.io/rhscl/postgresql-10-rhel7"}, "name": "2.7", "referencePolicy": {"type": "Source"}}}]' $ oc patch imagestream/zync-database-postgresql --type=json -p '[{"op": "add", "path": "/spec/tags/-", "value": {"annotations": {"openshift.io/display-name": "Zync PostgreSQL (latest)"}, "from": { "kind": "ImageStreamTag", "name": "2.7"}, "name": "latest", "referencePolicy": {"type": "Source"}}}]'
이 패치는 2.7 태그를 포함하도록
zync-database-postgresql
이미지 스트림을 업데이트합니다. 다음 명령을 사용하여 2.7 태그가 생성되었는지 확인할 수 있습니다.$ oc get is zync-database-postgresql
-
이 패치는 이미지에 새 업데이트가 있는 경우
zync-database
DeploymentConfig의 재배포를 트리거할 수도 있습니다. 이 경우 새 Pod가 재배포되고 준비될 때까지 기다린 후 이전 Pod가 종료됩니다.
가 3scale 2.6 설치에 다음 DeploymentConfigs 중 하나 이상 있는 경우 적용되는 DeploymentConfig에 대한 링크를 클릭하여 진행 방법에 대한 자세한 정보를 가져옵니다.
표시되는 릴리스 버전을 업데이트합니다.
$ oc set env dc/system-app AMP_RELEASE=2.7
이렇게 하면
system-app
DeploymentConfig가 다시 배포됩니다. 수행되고 해당 새 Pod가 준비되어 이전 Pod가 종료될 때까지 기다립니다.DeploymentConfigs의 모든 이미지 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" 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