비공개 이미지 저장소 사용

이 문서에서는 비공개 컨테이너 이미지 저장소의 이미지를 사용하도록 Apigee Hybrid를 구성하는 방법을 설명합니다.

개요

모든 Apigee Hybrid 런타임 이미지는 Google Cloud Container Registry(GCR)에서 호스팅됩니다. 어떠한 이유로든 비공개 이미지 컨테이너 저장소를 사용하려면 GCR에서 이미지를 다운로드하여 비공개 저장소에 푸시하고 overrides.yaml 파일에서 기본 이미지 위치를 재정의하면 됩니다.

구성 단계

Apigee Hybrid 이미지에 비공개 이미지 컨테이너 저장소를 사용하려면 다음 단계를 따르세요. 이 단계를 수행하고 비공개 저장소에 있는 이미지를 성공적으로 사용하려면 Apigee Hybrid 설치 절차를 숙지해야 합니다. 일반적인 시나리오에서는 새 하이브리드 설치의 일부로 비공개 저장소를 구성합니다.

  1. Apigee Hybrid 이미지를 GCR에서 비공개 저장소로 푸시합니다. 이 단계를 수행하려면 apigee-push-pull 유틸리티를 사용하는 것이 좋습니다.

    이 단계를 수동으로 수행하려면 Docker를 설치하고 다음과 같이 docker pull 명령어를 사용해야 합니다. 각 이미지 이름에 올바른 태그를 추가해야 합니다. 예를 들어 apigee-synchronizer의 태그는 아래와 같이 1.10.5입니다.

    1. apigeectl/tools/ 디렉터리에서 apigee-pull-push.sh 유틸리티--list 옵션을 사용하여 현재 프로젝트에 있는 모든 이미지의 최신 목록을 가져옵니다.
      apigee-pull-push.sh --list

      다음과 비슷한 결과가 출력됩니다.

      apigee:
                gcr.io/apigee-release/hybrid/apigee-mart-server:1.10.5
                gcr.io/apigee-release/hybrid/apigee-synchronizer:1.10.5
                gcr.io/apigee-release/hybrid/apigee-runtime:1.10.5
                gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client:1.10.5
                gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra:1.10.5
                gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility:1.10.5
                gcr.io/apigee-release/hybrid/apigee-udca:1.10.5
                gcr.io/apigee-release/hybrid/apigee-connect-agent:1.10.5
                gcr.io/apigee-release/hybrid/apigee-watcher:1.10.5
                gcr.io/apigee-release/hybrid/apigee-operators:1.10.5
                gcr.io/apigee-release/hybrid/apigee-installer:1.10.5
                gcr.io/apigee-release/hybrid/apigee-redis:1.10.5
                gcr.io/apigee-release/hybrid/apigee-diagnostics-collector:1.10.5
                gcr.io/apigee-release/hybrid/apigee-diagnostics-runner:1.10.5
                gcr.io/apigee-release/hybrid/apigee-mint-task-scheduler:1.10.5
              third party:
                gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent:1.10.1
                gcr.io/apigee-release/hybrid/apigee-prom-prometheus:v2.48.0
                gcr.io/apigee-release/hybrid/apigee-stackdriver-prometheus-sidecar:0.9.0
                gcr.io/apigee-release/hybrid/apigee-kube-rbac-proxy:v0.15.0
                gcr.io/apigee-release/hybrid/apigee-envoy:v1.27.0
                gcr.io/apigee-release/hybrid/apigee-prometheus-adapter:v0.11.2
                gcr.io/apigee-release/hybrid/apigee-asm-ingress:1.17.8-asm.4-distroless
                gcr.io/apigee-release/hybrid/apigee-asm-istiod:1.17.8-asm.4-distroless
                gcr.io/apigee-release/hybrid/apigee-fluent-bit:2.2.0
              
    2. docker pull 명령어를 사용하여 apigee-systemapigee 네임스페이스에 필요한 이미지를 가져옵니다.

      apigee-system 네임스페이스

      • apigee-installer
      • apigee-kube-rbac-proxy
      • apigee-operators

      사용자의 apigee 네임스페이스

      • apigee-asm-ingress
      • apigee-asm-istiod
      • apigee-cassandra-backup-utility
      • apigee-connect-agent
      • apigee-diagnostics-collector
      • apigee-diagnostics-runner
      • apigee-envoy
      • apigee-fluent-bit
      • apigee-hybrid-cassandra-client
      • apigee-hybrid-cassandra
      • apigee-mart-server
      • apigee-prom-prometheus
      • apigee-prometheus-adapter
      • apigee-redis
      • apigee-runtime
      • apigee-stackdriver-logging-agent
      • apigee-stackdriver-prometheus-sidecar
      • apigee-synchronizer
      • apigee-udca
      • apigee-watcher

      예를 들면 다음과 같습니다.

      docker pull gcr.io/apigee-release/hybrid/apigee-installer:1.10.5
    3. 이미지를 가져와 태그를 지정한 후 비공개 저장소에 푸시합니다. docker push를 참조하세요.
  2. apigeeapigee-system 네임스페이스에 Kubernetes 보안 비밀을 만듭니다.

    클러스터에 이러한 네임스페이스가 없으면 이 단계를 수행하기 전에 만들어야 합니다.

    보안 비밀을 만드는 단계는 명령줄에서 사용자 인증 정보를 제공하여 보안 비밀 만들기를 참조하세요. 예를 들어 apigee-system 네임스페이스에 보안 비밀을 만들려면 다음을 실행합니다.

    kubectl create secret docker-registry SECRET_NAME -n apigee-system \
      --docker-server=YOUR_REGISTRY_SERVER \
      --docker-username=YOUR_DOCKER_USERNAME \
      --docker-email=YOUR_DOCKER_EMAIL \
      --docker-password="YOUR_DOCKER_PASSWORD)"

    apigee 네임스페이스에서 보안 비밀을 만들려면 다음 안내를 따르세요.

    kubectl create secret docker-registry SECRET_NAME -n apigee \
      --docker-server=YOUR_REGISTRY_SERVER \
      --docker-username=YOUR_DOCKER_USERNAME \
      --docker-email=YOUR_DOCKER_EMAIL \
      --docker-password="YOUR_DOCKER_PASSWORD)"
  3. overrides.yaml 파일에 보안 비밀을 추가합니다. 재정의 파일 생성은 하이브리드 설치 단계에 설명되어 있습니다. 자세한 내용은 클러스터 구성을 참조하세요.
    imagePullSecrets:
      - name: SECRET_NAME
  4. 비공개 저장소에 저장된 이미지의 이미지 URL로 overrides.yaml 파일을 업데이트합니다. 저장소에 저장된 각 구성요소에는 image:url 요소가 있습니다. 이 요소를 사용하여 각 구성요소 이미지의 URL을 지정합니다. 예를 들면
    mart:
      serviceAccountPath: /installdir/hybrid-files/service-accounts/hybrid-apigee-non-prod.json
      image:
        url: my-docker.pkg.dev/hybrid-1/registry-name/apigee-mart-server
    입니다.

    이 패턴을 따라 overrides.yaml 파일의 각 최상위 하이브리드 구성요소를 비공개 저장소 이미지 URL로 업데이트합니다. 재정의 파일의 전체 예시는 $APIGEECTL_HOME/examples/private-overrides.yaml 디렉터리에 하이브리드 설치와 함께 제공됩니다.

이제 비공개 이미지를 사용하여 새 하이브리드 설치를 완료하거나 기존 설치를 업데이트할 수 있습니다. 자세한 내용은 Apigee Hybrid 설치 단계를 참조하세요.

비공개 저장소에서 cert-manager 설치

비공개 저장소에서 cert-manager를 설치하려면 Helm으로 설치를 참조하세요. 호환성을 보장하기 위해 Apigee Hybrid 설치 안내에 지정된 것과 동일한 버전의 cert-manager를 설치하는 것이 중요합니다.