구성 재정의 지정
Apigee Hybrid 설치 프로그램은 많은 설정에 기본값을 사용합니다. 하지만 기본값이 없는 몇 가지 설정이 있습니다. 다음에 설명된 대로 이 설정에 값을 제공해야 합니다.
시작하기 전에
다음 시나리오를 검토하여 클러스터를 구성할지 여부를 결정하는 것이 좋습니다. 이러한 구성은 선택사항입니다.
- 여러 리전에 하이브리드를 설치하려는 경우 계속하기 전에 멀티 리전 배포를 참조하세요.
- Apigee Hybrid는 Cassandra 사용자를 위한 기본 비밀번호를 제공합니다. 하지만 기본 사용자 비밀번호를 변경하는 것이 좋습니다. 자세한 내용은 Cassandra용 TLS 구성을 참조하세요.
- Cassandra의 스토리지 및 힙 설정을 구성하려면 스토리지 및 힙 설정 구성을 참조하세요.
- 프로덕션 설치 시나리오의 경우 Cassandra용 영구 솔리드 스테이트 디스크(SSD) 스토리지를 구성하세요. Google은 Apigee Hybrid용 로컬 SSD 사용을 지원하지 않습니다. 자세한 내용은 프로덕션 배포를 위한 SSD 스토리지 추가를 참조하세요.
클러스터 구성
일반적으로 구성 재정의는 $HYBRID_FILES/overrides
디렉터리에 overrides.yaml
이라는 파일로 작성됩니다.
$HYBRID_FILES/overrides
디렉터리에overrides.yaml
이라는 새 파일을 만듭니다. 예를 들면 다음과 같습니다.vi $HYBRID_FILES/overrides/overrides.yaml
overrides.yaml
은 고유 Apigee Hybrid 설치에 대한 구성을 제공합니다. 이 단계의 재정의 파일은 첫 번째 설치에 적합한 소규모 하이브리드 런타임 설치를 위한 기본 구성을 제공합니다.overrides.yaml
에서 아래 표시된 필요한 속성 값을 추가합니다. 각 속성에 대한 자세한 설명은 다음과 같습니다.GKE에 Apigee Hybrid를 설치하고 워크로드 아이덴티티를 사용하여 하이브리드 구성요소를 인증하려는 경우 GKE - 워크로드 아이덴티티 탭을 선택하여
overrides.yaml
파일을 구성합니다.다른 모든 설치의 경우 4단계: 서비스 계정 및 사용자 인증 정보 만들기에서 선택한 내용에 따라 비프로덕션, Non-prod 또는 프로덕션 Prod 환경에 대한 탭을 선택합니다.
프로덕션 환경의 설치에 대해 프로덕션용 Cassandra 구성에서 Cassandra 데이터베이스에 대한 스토리지 요구사항을 확인합니다.
GKE - 워크로드 아이덴티티
overrides.yaml
파일에 다음 구조와 구문이 있는지 확인합니다. red, bold italics의 값은 제공해야 하는 속성 값이며, 다음 표에 설명되어 있습니다.GKE에 Apigee Hybrid를 설치하는 경우 Google API, 워크로드 아이덴티티를 인증하고 요청할 수 있는 대안이 있습니다. 워크로드 아이덴티티의 개요는 다음을 참조하세요.
GKE에서 Apigee Hybrid와 함께 워크로드 아이덴티티를 사용하려면 이 템플릿을 사용하고 8단계: 하이브리드 런타임 설치의 단계에 따라 Kubernetes 서비스 계정을 만든 후 이를 4단계: 서비스 계정 및 사용자 인증 정보에서 만든 Google 서비스 계정과 연결합니다.
gcp: region: ANALYTICS_REGION projectID: GCP_PROJECT_ID workloadIdentityEnabled: true k8sCluster: name: CLUSTER_NAME region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org: ORG_NAME instanceID: "UNIQUE_INSTANCE_IDENTIFIER" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 cassandra: hostNetwork: false # false for all GKE installations. # See Multi-region deployment: Prerequisites replicaCount: 3 # Use 1 for demo installations and multiples of 3 for production. # See Configure Cassandra for production for guidelines. backup: enabled: true # Set to true for initial installation. # This triggers apigeectl to create the apigee-cassandra-backup Kubernetes service account. # See Cassandra backup overview for instructions on using cassandra.backup. virtualhosts: - name: ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: INGRESS_NAME sslCertPath: ./certs/CERT_NAME.pem sslKeyPath: ./certs/KEY_NAME.key ingressGateways: - name: INGRESS_NAME # maximum 17 characters. replicaCountMin: 2 replicaCountMax: 10 svcAnnotations: # optional. If you are on AKS, see Known issue #260772383 SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional envs: - name: ENVIRONMENT_NAME logger: enabled: false # Set to false for all GKE installations.
비프로덕션
overrides.yaml
파일에 다음 구조와 문법이 있는지 확인합니다. red, bold italics의 값은 제공해야 하는 속성 값이며, 다음 표에 설명되어 있습니다.Google Cloud 프로젝트 리전과 Kubernetes 클러스터 리전에 대한 플랫폼은 서로 다릅니다. Apigee Hybrid를 설치할 플랫폼을 선택합니다.
gcp: region: ANALYTICS_REGION projectID: GCP_PROJECT_ID k8sCluster: name: CLUSTER_NAME region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org: ORG_NAME instanceID: "UNIQUE_INSTANCE_IDENTIFIER" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 cassandra: replicaCount: 1 # Use 1 for non-prod or "demo" installations and multiples of 3 for production. # See Configure Cassandra for production for guidelines. hostNetwork: false # Set to false for single region installations and multi-region installations # with connectivity between pods in different clusters, for example GKE installations. # Set to true for multi-region installations with no communication between # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal, # AKS, EKS, and OpenShift installations. # See Multi-region deployment: Prerequisites virtualhosts: - name: ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: INGRESS_NAME sslCertPath: ./certs/CERT_NAME.pem sslKeyPath: ./certs/KEY_NAME.key ingressGateways: - name: INGRESS_NAME # maximum 17 characters. replicaCountMin: 2 replicaCountMax: 10 svcAnnotations: # optional. If you are on AKS, see Known issue #260772383 SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional envs: - name: ENVIRONMENT_NAME serviceAccountPaths: synchronizer: NON_PROD_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-non-prod.json" udca: NON_PROD_SERVICE_ACCOUNT_FILEPATH runtime: NON_PROD_SERVICE_ACCOUNT_FILEPATH mart: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH connectAgent: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH metrics: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH udca: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH watcher: serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH logger: enabled: false # Set to false to disable logger for GKE installations. # Set to true for all platforms other than GKE. # See apigee-logger in Service accounts and roles used by hybrid components. serviceAccountPath: NON_PROD_SERVICE_ACCOUNT_FILEPATH
프로덕션
overrides.yaml
파일에 다음 구조와 구문이 있는지 확인합니다. red, bold italics의 값은 제공해야 하는 속성 값이며, 다음 표에 설명되어 있습니다.Google Cloud 프로젝트 리전과 Kubernetes 클러스터 리전에 대한 플랫폼은 서로 다릅니다. Apigee Hybrid를 설치할 플랫폼을 선택합니다.
gcp: region: ANALYTICS_REGION projectID: GCP_PROJECT_ID k8sCluster: name: CLUSTER_NAME region: CLUSTER_LOCATION # Must be the closest Google Cloud region to your cluster. org: ORG_NAME instanceID: "UNIQUE_INSTANCE_IDENTIFIER" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 cassandra: hostNetwork: false # Set to false for single region installations and multi-region installations # with connectivity between pods in different clusters, for example GKE installations. # Set to true for multi-region installations with no communication between # pods in different clusters, for example GKE On-prem, GKE on AWS, Anthos on bare metal, # AKS, EKS, and OpenShift installations. # See Multi-region deployment: Prerequisites replicaCount: 3 # Use multiples of 3 for production. # See Configure Cassandra for production for guidelines. storage: capacity: 500Gi resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M # Minimum storage requirements for a production environment. # See Configure Cassandra for production. virtualhosts: - name: ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: INGRESS_NAME sslCertPath: ./certs/CERT_NAME.pem sslKeyPath: ./certs/KEY_NAME.key ingressGateways: - name: INGRESS_NAME # maximum 17 characters. See Known issue 243167389. replicaCountMin: 2 replicaCountMax: 10 svcAnnotations: # optional. If you are on AKS, see Known issue #260772383 SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE envs: - name: ENVIRONMENT_NAME serviceAccountPaths: synchronizer: SYNCHRONIZER_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-synchronizer.json" udca: UDCA_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json" runtime: RUNTIME_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-runtime.json" mart: serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-mart.json" connectAgent: serviceAccountPath: MART_SERVICE_ACCOUNT_FILEPATH # Use the same service account for mart and connectAgent metrics: serviceAccountPath: METRICS_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-metrics.json" udca: serviceAccountPath: UDCA_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-udca.json" watcher: serviceAccountPath: WATCHER_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-watcher.json" logger: enabled: false # Set to false to disable logger for GKE installations. # Set to true for all platforms other than GKE. # See apigee-logger in Service accounts and roles used by hybrid components. serviceAccountPath: LOGGER_SERVICE_ACCOUNT_FILEPATH # For example: "./service-accounts/GCP_PROJECT_ID-apigee-logger.json"
예
다음 예시에서는 예시 속성 값이 추가된, 완료된 재정의 파일을 보여줍니다.
gcp: region: us-central1 projectID: hybrid-example k8sCluster: name: apigee-hybrid region: us-central1 org: hybrid-example instanceID: "my_hybrid_example" ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.11.2-hotfix.2" # Required for Apigee hybrid v1.11.2 cassandra: hostNetwork: false replicaCount: 3 virtualhosts: - name: example-env-group selector: app: apigee-ingressgateway ingress_name: my-ingress-1 sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key ingressGateways: - name: my-ingress-1 replicaCountMin: 2 replicaCountMax: 10 envs: - name: test serviceAccountPaths: synchronizer: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-synchronizer.json udca: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-udca.json runtime: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-runtime.json mart: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-mart.json connectAgent: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, example-hybrid-apigee-mart.json metrics: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-metrics.json udca: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-udca.json watcher: serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, my-hybrid-project-apigee-watcher.json logger: enabled: false # Set to "false" for GKE. Set to "true" for all other Kubernetes platforms. serviceAccountPath: ./service-accounts/my-hybrid-project-apigee-non-prod.json # for production environments, LOGGER_SERVICE_ACCOUNT_NAME.json
- 완료되면 파일을 저장합니다.
다음 표에서는 재정의 파일에 제공해야 하는 각 속성 값을 설명합니다. 자세한 내용은 구성 속성 참조를 참조하세요.
변수 | 설명 |
---|---|
ANALYTICS_REGION | GKE에서 클러스터가 실행되는 동일한 리전으로 이 값을 설정해야 합니다. 다른 모든 플랫폼에서 애널리틱스 지원을 가진 클러스터에 가장 가까운 애널리틱스 리전을 선택합니다(파트 1, 2단계: 조직 만들기의 테이블 참조).
이전에 환경 변수 |
GCP_PROJECT_ID | apigee-logger 및 apigee-metrics 가 데이터를 푸시하는 Google Cloud 프로젝트를 식별합니다. 환경 변수 PROJECT_ID 에 할당된 값입니다. |
CLUSTER_NAME | Kubernetes 클러스터 이름입니다. 환경 변수 CLUSTER_NAME 에 할당된 값입니다. |
CLUSTER_LOCATION | 클러스터가 실행 중인 리전입니다. 1단계: 클러스터 만들기에서 클러스터를 만든 리전입니다.
이전에 환경 변수 |
ORG_NAME | Apigee 하이브리드 조직의 ID입니다. 환경 변수 ORG_NAME 에 할당된 값입니다. |
UNIQUE_INSTANCE_IDENTIFIER | 이 인스턴스를 식별하는 고유한 문자열입니다. 문자와 숫자 조합을 최대 63자(영문 기준)까지 사용할 수 있습니다. 동일한 클러스터에 여러 조직을 만들 수 있지만 |
ENVIRONMENT_GROUP_NAME | 환경이 할당된 환경 그룹의 이름입니다.
프로젝트 및 조직 설정 - 3단계: 환경 그룹 만들기에서 만든 그룹입니다. 환경 변수 ENV_GROUP 에 할당된 값입니다.
|
CERT_NAME KEY_NAME |
5단계: TLS 인증서 만들기에서 이전에 생성한 자체 서명 TLS 키 및 인증서 파일의 이름을 입력합니다. 이러한 파일은 base_directory/hybrid-files/certs 디렉터리에 있어야 합니다.
예를 들면 다음과 같습니다.
sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key |
INGRESS_NAME | 배포의 Apigee 인그레스 게이트웨이의 이름입니다. 다음 요구사항을 충족하는 이름이면 됩니다.
구성 속성 참조의 |
SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE | (선택사항) 기본 인그레스 서비스의 주석을 제공하는 키-값 쌍입니다. 주석은 부하 분산기 유형을 내부 또는 외부로 설정하는 등, 클라우드 플랫폼에서 하이브리드 설치를 구성하는 데 사용됩니다.
주석은 플랫폼마다 다릅니다. 필수 및 추천 주석은 플랫폼 문서를 참조하세요. 이 섹션을 사용하지 않는 경우 주석 처리하거나 삭제합니다. |
SVC_LOAD_BALANCER_IP | (선택사항) 부하 분산기에 대해 예약한 IP 주소입니다.
부하 분산기 IP 주소 지정을 지원하는 플랫폼에서 이 IP 주소로 부하 분산기가 생성됩니다.
부하 분산기 IP를 지정할 수 없는 플랫폼에서 이 속성은 무시됩니다.
이 섹션을 사용하지 않는 경우 주석 처리하거나 삭제합니다. |
ENVIRONMENT_NAME | 프로젝트 및 조직 설정 - 3단계: 환경 그룹 만들기에 설명된 대로 UI에서 환경을 만들 때 사용한 이름과 동일한 이름을 사용합니다. |
*_SERVICE_ACCOUNT_FILEPATH | service-accounts/ 디렉터리에 있는 서비스 계정 JSON 파일의 경로 및 파일 이름 계정입니다. 이름에는 서비스 계정 파일에 대한 경로가 포함되어야 합니다. 전체 경로이거나 hybrid-files/ 디렉터리 기준의 상대 경로일 수 있습니다. 상대 경로를 포함할 경우 hybrid-files/ 디렉터리에서 이 구성을 적용하는 명령어인 apigeectl 을 호출해야 합니다.
비프로덕션 환경의 경우 단일 서비스 계정의 이름은 프로덕션 환경의 경우 하이브리드 런타임 설정 - 4단계: 서비스 계정 및 사용자 인증 정보 만들기에서
프로덕션 환경 서비스 계정의 기본 이름은 다음과 같습니다.
|
요약
구성 파일은 하이브리드 구성요소를 클러스터에 배포하는 방법을 Kubernetes에 지정합니다. 그런 후 Apigee 런타임 및 관리 영역이 통신을 수행할 수 있도록 동기화 담당자 액세스를 사용 설정합니다.
1 2 3 4 5 6 (다음) 7단계: 동기화 담당자 액세스 사용 설정 8 9 10