11단계: Helm을 사용하여 Apigee Hybrid 설치

이 단계에서는 Helm을 사용하여 다음 Apigee Hybrid 구성요소를 설치합니다.

  • Apigee 운영자
  • Apigee 데이터 스토어
  • Apigee 원격 분석
  • Apigee Redis
  • Apigee 인그레스 관리자
  • Apigee 조직
  • Apigee 환경

각 환경에 대한 차트를 한 번에 하나씩 설치합니다. 구성요소를 설치하는 순서가 중요합니다.

설치 전 참고사항

  1. Helm v3.14.2 이상을 아직 설치하지 않았으면 Helm 설치의 안내를 따릅니다.
  2. Apigee Hybrid는 차트를 설치하거나 업그레이드하기 전에 Helm 가드레일을 사용하여 구성을 확인합니다. 이 섹션의 각 명령어 출력에서 가드레일 관련 정보를 확인할 수 있습니다. 예를 들면 다음과 같습니다.

    # Source: apigee-operator/templates/apigee-operators-guardrails.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: apigee-hybrid-helm-guardrail-operator
      namespace: apigee-system
      annotations:
        helm.sh/hook: pre-install,pre-upgrade
        helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
      labels:
        app: apigee-hybrid-helm-guardrail
    

    helm upgrade 명령어가 실패하면 가드레일 출력을 사용해서 원인을 진단할 수 있습니다. 가드레일로 문제 진단을 참조하세요.

  3. Helm 업그레이드/설치 명령어를 실행하기 전에 명령어 끝에 --dry-run를 추가하여 Helm 테스트 실행 기능을 사용하세요. 지원되는 명령어, 옵션, 사용을 나열하려면 helm install --h를 확인하세요.
  4. Apigee Helm 마이그레이션 도구를 사용하여 apigeectl 관리에서 Helm 관리로 마이그레이션한 클러스터에 차트를 설치하는 경우 다음의 모든 명령어에서 --atomic 플래그를 생략하세요.

설치 단계

  1. 적절한 버전의 Helm이 있는지 확인합니다.

    helm version

    이 설치에 필요한 Helm 버전은 v3.14.2 이상입니다. 표시된 버전이 만족스럽지 않으면 아래 명령어를 실행하여 Helm을 업그레이드하세요. get_helm.sh 스크립트가 최신 버전을 가져와 설치합니다.

    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
    chmod 700 get_helm.sh
    ./get_helm.sh

    그런 다음 Helm 버전을 다시 확인합니다.

    helm version
  2. APIGEE_HELM_CHARTS_HOME 디렉터리로 이동합니다. 해당 디렉터리에서 다음 명령어를 실행합니다.
  3. Apigee Operator/Controller를 설치합니다.

    테스트 실행을 수행합니다.

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      --atomic \
      -f overrides.yaml \
      --dry-run
    

    차트를 설치합니다.

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      --atomic \
      -f overrides.yaml
    

    Apigee 운영자 설치를 확인합니다.

    helm ls -n apigee-system
    
    NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                                       APP VERSION
    operator   apigee-system   3          2023-06-26 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.12.3   1.12.3
    

    가용성을 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee-system get deploy apigee-controller-manager
    
    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    apigee
    -controller-manager   1/1     1            1           7d20h
  4. Apigee 데이터 스토어를 설치합니다.

    테스트 실행을 수행합니다.

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml \
      --dry-run
    

    차트를 설치합니다.

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml
    

    다음 단계로 진행하기 전에 상태를 확인하여 apigeedatastore가 실행 중인지 확인합니다.

    kubectl -n apigee get apigeedatastore default
    
    NAME      STATE       AGE
    default   running    2d
  5. Apigee 원격 분석을 설치합니다.

    테스트 실행을 수행합니다.

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml \
      --dry-run
    

    차트를 설치합니다.

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml
    

    상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeetelemetry apigee-telemetry
    
    NAME               STATE     AGE
    apigee
    -telemetry   running   2d
  6. Apigee Redis를 설치합니다.

    테스트 실행을 수행합니다.

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml \
      --dry-run
    

    차트를 설치합니다.

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml
    

    상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeeredis default
    
    NAME      STATE     AGE
    default   running   2d
  7. Apigee 인그레스 관리자를 설치합니다.

    테스트 실행을 수행합니다.

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml \
      --dry-run
    

    차트를 설치합니다.

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml
    

    가용성을 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get deployment apigee-ingressgateway-manager
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee
    -ingressgateway-manager   2/2     2            2           2d
  8. Apigee 조직을 설치합니다. 셸에서 $ORG_NAME 환경 변수를 설정한 경우 이를 다음 명령어에 사용할 수 있습니다.

    테스트 실행을 수행합니다.

    helm upgrade $ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml \
      --dry-run
    

    차트를 설치합니다.

    helm upgrade $ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f overrides.yaml
    

    해당 조직의 상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeeorg
    
    NAME                      STATE     AGE
    apigee
    -org1-xxxxx          running   2d
  9. 환경을 설치합니다.

    한 번에 환경 하나만 설치해야 합니다. --set env=ENV_NAME으로 환경을 지정합니다. 셸에서 $ENV_NAME 환경 변수를 설정한 경우 이를 다음 명령어에 사용할 수 있습니다.

    테스트 실행을 수행합니다.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=$ENV_NAME \
      -f overrides.yaml \
      --dry-run
    

      ENV_RELEASE_NAMEapigee-env 차트의 설치 및 업그레이드를 추적하는 데 사용되는 이름입니다. 이 이름은 설치 내 다른 Helm 출시 이름과 다르게 고유해야 합니다. 일반적으로 ENV_NAME과 동일합니다. 그러나 환경의 이름이 환경 그룹과 동일한 경우 환경과 환경 그룹에 서로 다른 출시 이름(예: dev-env-releasedev-envgroup-release)을 사용해야 합니다. Helm의 출시에 관한 자세한 내용은 Helm 문서의 주요 개념 3가지를 참조하세요.

    차트를 설치합니다.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=$ENV_NAME \
      -f overrides.yaml
    

    해당 환경의 상태를 확인하여 실행 중인지 확인합니다.

    kubectl -n apigee get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee
    -org1-dev-xxx            running     2d
  10. 환경 그룹(virtualhosts)을 설치합니다.
    1. 한 번에 환경 그룹(virtualhost) 하나만 설치해야 합니다. --set envgroup=ENV_GROUP으로 환경 그룹을 지정합니다. 셸에서 $ENV_GROUP 환경 변수를 설정한 경우 이를 다음 명령어에 사용할 수 있습니다. overrides.yaml 파일에 언급된 환경 그룹마다 다음 명령어를 반복합니다.

      테스트 실행을 수행합니다.

      helm upgrade $ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml \
        --dry-run
      

        ENV_GROUP_RELEASE_NAMEapigee-virtualhosts 차트의 설치 및 업그레이드를 추적하는 데 사용되는 이름입니다. 이 이름은 설치 내 다른 Helm 출시 이름과 다르게 고유해야 합니다. 일반적으로 ENV_GROUP과 동일합니다. 그러나 환경 그룹의 이름이 설치의 환경과 동일한 경우 환경 그룹과 환경에 서로 다른 출시 이름(예: dev-envgroup-releasedev-env-release)을 사용해야 합니다. Helm의 출시에 관한 자세한 내용은 Helm 문서의 주요 개념 3가지를 참조하세요.

      차트를 설치합니다.

      helm upgrade $ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml
      
    2. ApigeeRoute(AR) 상태를 확인합니다.

      virtualhosts를 설치하면 Apigee 감시자가 컨트롤 플레인에서 환경 그룹 관련 세부정보를 가져온 후 내부적으로 ApigeeRoute(AR)를 만드는 ApigeeRouteConfig(ARC)가 생성됩니다. 따라서 해당 AR의 상태가 실행 중인지 확인합니다.

      kubectl -n apigee get arc
      
      NAME                                STATE   AGE
      apigee
      -org1-dev-egroup                       2d
      kubectl -n apigee get ar
      
      NAME                                        STATE     AGE
      apigee
      -org1-dev-egroup-xxxxxx                running   2d

다음 단계

워크로드 아이덴티티를 사용하여 설치

GKE에 Apigee Hybrid를 설치하고 서비스 계정을 인증하도록 워크로드 아이덴티티를 구성하는 경우 다음 단계에서 클러스터의 Kubernetes 서비스 계정과 Google 서비스 계정 간에 연결을 구성합니다.

1 2 3 4 5 6 7 8 9 10 11 (다음) 12단계: 워크로드 아이덴티티 설정

기타 모든 설치

다음 단계에서는 Apigee 인그레스 게이트웨이를 구성하고 프록시를 배포하여 설치를 테스트합니다.

(다음) 1단계: Apigee 인그레스 노출 2