구성 재정의 지정
Apigee Hybrid 설치 프로그램은 많은 설정에 기본값을 사용합니다. 하지만 기본값이 없는 몇 가지 설정이 있습니다. 다음에 설명된 대로 이 설정에 값을 제공해야 합니다.
일반적으로 구성 재정의는 $HYBRID_FILES/overrides
디렉터리에 overrides.yaml
이라는 파일로 작성됩니다.
$HYBRID_FILES/overrides
디렉터리에overrides.yaml
이라는 새 파일을 만듭니다. 예를 들면 다음과 같습니다.vi $HYBRID_FILES/overrides/overrides.yaml
overrides.yaml
은 고유 Apigee Hybrid 설치에 대한 구성을 제공합니다. 이 단계의 재정의 파일은 첫 번째 설치에 적합한 소규모 하이브리드 런타임 설치를 위한 기본 구성을 제공합니다.overrides.yaml
에서 아래 표시된 필요한 속성 값을 추가합니다. 각 속성에 대한 자세한 설명은 다음과 같습니다.비프로덕션
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" 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 virtualhosts: - name: ENVIRONMENT_GROUP_NAME selector: app: apigee-ingressgateway ingress_name: INGRESS_NAME sslCertPath: ./certs/CERT_NAME.pem sslKeyPath: ./certs/KEY_NAME.key ao: args: # This configuration is introduced in hybrid v1.8 disableIstioConfigInAPIServer: true # This configuration is introduced in hybrid v1.8 ingressGateways: - name: INGRESS_NAME # maximum 17 characters. replicaCountMin: 2 replicaCountMax: 10 # You do not need to set Annotations or LoadBalancerIP if you are creating your own Kubernetes # service for ingress deployment. In prod, it's recommended to create your own Kubernetes service. # See: Expose Apigee ingress gateway. 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의 값은 제공해야 하는 속성 값이며, 다음 표에 설명되어 있습니다.프로덕션 환경의 설치에 대해 프로덕션용 Cassandra 구성에서 Cassandra 데이터베이스에 대한 스토리지 요구사항을 확인합니다.
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" 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 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 ao: args: # This configuration is introduced in hybrid v1.8 disableIstioConfigInAPIServer: true # This configuration is introduced in hybrid v1.8 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 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" cassandra: hostNetwork: false virtualhosts: - name: example-env-group selector: app: apigee-ingressgateway ingress_name: my-ingress-1 sslCertPath: ./certs/keystore.pem sslKeyPath: ./certs/keystore.key ao: args: disableIstioConfigInAPIServer: true 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를 지정할 수 없는 플랫폼에서 이 속성은 무시됩니다. |
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