런타임 영역 구성요소 관리

이 주제에서는 Apigee Hybrid 런타임 영역 구성요소를 구성하고 관리하는 방법을 설명합니다. 구성할 수 있는 런타임 영역 구성요소 목록은 런타임 서비스 구성 개요를 참조하세요.

재정의 파일 정보

하이브리드 런타임을 클러스터에 처음 설치할 때는 구성 재정의 파일을 만들어야 합니다. 이 파일을 사용하면 필요에 따라 기본 구성 값을 재정의하고, 환경을 구성하고, TLS 인증서 및 서비스 계정 키를 참조하고, Kubernetes 노드 풀을 특정 하이브리드 구성요소에 할당하는 일 등을 할 수 있습니다.

하이브리드 설치 단계는 재정의 파일을 만들고 클러스터에 구성을 적용하는 프로세스를 안내합니다. 구성을 나중에 변경하려면 만든 재정의 파일을 수정하고 다시 적용합니다.

구성 변경

하이브리드 런타임 영역 구성요소에 대한 구성을 변경하려면 재정의 파일을 수정하고 apigeectl을 사용하여 변경사항을 적용합니다.

예를 들어 메시지 프로세서에서 복제본 수를 변경하려면 다음 단계를 따르세요.

  1. 재정의 YAML 파일을 엽니다. 하이브리드 런타임을 클러스터에 설치하는 데 사용된 것과 동일한 재정의 파일을 사용해야 합니다.
  2. 파일에서 runtime 요소를 찾습니다. 예를 들면 다음과 같습니다.
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. 필요에 따라 복제본 수 속성을 변경합니다. 예를 들면 다음과 같습니다.
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 4
    ...
  4. apigeectl을 사용하여 클러스터에 변경 사항을 적용합니다.
    apigeectl apply -f ./my_overrides.yaml -c runtime

수정할 수 있는 구성 속성

구성 가능한 속성의 전체 목록은 구성 속성 참조에서 확인할 수 있습니다. 참조에는 수정할 수 있는 속성만 나열됩니다. 참조에 없는 속성을 수정하려고 하면 변경사항이 무시됩니다.

구성 참조 사용 방법

구성 속성 참조는 점 표기법을 사용하여 구성요소를 설명합니다. 여기서 첫 번째 항목은 최상위 요소 이름 다음에 속성 및 하위 속성이 옵니다. 예를 들면 다음과 같습니다.

authz.image.pullPolicy

재정의 파일에서 속성이 적절한 YAML 형식으로 지정됩니다. 위의 예에서 최상위 authz 요소는 왼쪽 들여쓰기 되고 하위 요소 속성은 그 아래에 들여쓰기 됩니다. 또한 YAML에는 각 요소와 하위 요소의 끝에 콜론이 필요합니다.

예를 들어 authz.image.pullPolicy 속성을 Always로 설정하려면 재정의 파일에서 이 YAML 스탠자를 찾아서 설정합니다.

authz:
  image:
    pullPolicy: Always

다른 예에서는 cassandra.auth.admin.password 속성(구성 속성 참조에 나와 있음)이 Cassandra 관리자 비밀번호를 설정하는 데 사용됩니다. 이를 변경하려면 재정의 파일에서 다음 YAML을 찾아 설정합니다.

cassandra:
  auth:
    admin:
      password: abc123

구성 속성 참조는 하이브리드 런타임 영역 구성요소에 설정할 수 있는 모든 속성을 설명합니다. 위에 설명된 패턴을 따라 클러스터에 변경사항을 적용하기 전에 재정의 파일에서 이러한 요소를 수정합니다.

사전 정의된 예시 재정의 파일 사용

하이브리드 런타임을 처음 설치하는 경우 사전 구성된 예시 재정의 파일 중 하나를 Apigee에 사용하는 것이 좋습니다. 이 예는 프로덕션 또는 테스트 설치를 설정하는 것과 같은 특정 설치 시나리오에 대한 전체 구성 속성 집합을 제공합니다. 속성에 적절한 값을 제공하고 클러스터에 재정의 파일 적용을 수행하면 됩니다. 자세한 내용은 재정의 파일 만들기를 참조하세요.

구성 기본값 정보

Apigee는 hybrid_root_dir/config/values.yaml 파일에서 기본 구성요소 구성을 유지합니다. 재정의 파일은 values.yaml와 동일한 YAML 구조를 따릅니다.

재정의 파일에는 일반적으로 values.yaml에 있는 구성 속성의 하위 집합만 포함됩니다. 모든 속성을 수정할 수 있는 것은 아닙니다. 클러스터에 구성을 적용하면 재정의가 기본값과 병합되어 완전한 Kubernetes 클러스터 구성을 만듭니다. 병합된 구성 출력도 참조하세요.

다음 코드는 values.yaml에 있는 mart 구성요소의 기본 구성을 보여줍니다. 일부 값은 기본값이 있지만 sslCertPathsslKeyPath와 같은 다른 값은 그렇지 않습니다. 설치 단계에 설명된 대로 재정의 파일에 이러한 누락된 값을 제공해야 합니다. 기본값을 변경하려면 구성 속성 참조를 확인하여 기본값을 수정할 수 있는지 확인합니다.

...
mart:
  replicaCountMin: 2
  replicaCountMax: 4
  targetCPUUtilizationPercentage: 75
  terminationGracePeriodSeconds: 30
  sslCertPath:
  sslKeyPath:
  hostAlias:
  nodeSelector:
    key:
    value:
  revision: blue
  image:
    url: "google/apigee-mart-server"
    tag: "1.0.0"
    pullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
  initCheckCF:
    resources:
      requests:
        cpu: 10m
  livenessProbe:
    timeoutSeconds: 1
    failureThreshold: 12
    periodSeconds: 5
    initialDelaySeconds: 15
  readinessProbe:
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 2
    periodSeconds: 5
    initialDelaySeconds: 15
  metricsURL: "/v1/server/metrics"
  cwcAppend: |
...

구성요소의 기본값을 수정하고 구성요소가 구성요소 재정의 파일에 아직 없는 경우 YAML을 values.yaml에서 재정의 파일에 복사하여 수정하면 됩니다.

샘플 재정의 파일

Apigee는 하이브리드 배포를 설정하는 데 도움이 되는 일련의 샘플 재정의 파일을 제공합니다. 설치 요구사항과 가장 일치하는 재정의 파일을 복사하고 수정하는 것이 좋습니다.

다음 샘플은 hybrid_root_dir/examples 디렉터리에 포함되어 있습니다.

샘플 재정의 파일 설명
overrides-small.yaml 이 샘플은 빠르게 시작할 때 적합합니다. 최소 권장 공간을 사용하여 하이브리드 런타임 구성요소를 시작합니다. 이 샘플 구성은 기본 설정 및 값에 최대한 의존합니다. 모든 최소 복제본은 1로 설정됩니다.
overrides-medium.yaml 이 샘플은 테스트 및 QA 환경을 시작하는 데 좋은 출발점입니다. 개별 구성요소에는 추가 트래픽을 처리할 수 있는 상위 수준 리소스가 부여됩니다. Cassandra는 성능을 위해 SSD 디스크를 사용합니다. 이 환경에서는 사용자가 개별 노드에 스테이트풀(Stateful) 및 스테이트리스(Stateless) 구성요소를 설치하는 것이 좋습니다. 전용 노드 구성을 참조하세요.
overrides-large.yaml 이 샘플은 사전 프로덕션 및 프로덕션과 같은 고성능 환경을 위한 좋은 시작점입니다. 샘플에는 암호화 키, 비밀번호 등을 설정하는 속성이 포함되어 있습니다. 개별 구성요소는 최소 2개의 복제본을 가집니다.

병합된 구성 출력

apigeectl와 함께 --dry-run 플래그를 사용하여 병합된 구성 파일을 실제로 클러스터에 적용하지 않고 출력할 수 있습니다. 이 옵션은 클러스터에 적용할 내용을 정확히 보여주기 때문에 설치 문제를 디버깅하는 데 유용합니다. 또한 클러스터에 설치 및 구성된 리소스를 참조할 수 있도록 구성을 출력하고 소스 제어에 저장하는 것이 좋습니다.

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

apigeectl apply -f ./my_overrides.yaml --dry-run --print-yaml > apigee-hybrid.yaml

자세한 내용은 apigeectl를 참조하세요.

필요에 따라 여러 재정의 파일 만들기

재정의 파일은 원하는 만큼 만들 수 있으며 각 파일에는 특정 요구사항이 적용됩니다. 예를 들어 프로덕션용 클러스터를 조정하는 재정의 파일과 테스트 클러스터를 만들기 위한 재정의 파일이 있을 수 있습니다. 그런 다음 소스 제어 시스템에서 이러한 파일을 유지할 수 있습니다.

apigeectl과 함께 -f 옵션을 사용하여 재정의 파일의 위치와 이름을 지정합니다. 예를 들면 다음과 같습니다.

apigeectl apply  -f ./test_env_override.yaml

자세한 내용은 apigeectl를 참조하세요.

하이브리드 전용 런타임 영역 구성요소 삭제

클러스터에서 하이브리드 전용 런타임 영역 구성요소를 삭제하려면 apigeectl delete 명령어를 사용합니다. 이러한 구성요소에는 동기화 담당자, mart, 런타임, cassandra, udca가 있습니다. 런타임 구성요소를 설치하는 데 사용한 것과 동일한 재정의 파일을 지정해야 합니다.

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

apigeectl delete -f ./my_overrides.yaml

apigeectl apply 명령어를 사용하여 특정 구성요소를 다시 만들 수 있습니다.

apigeectl apply -c synchronizer -f ./my_overrides.yaml

자세한 내용은 apigeectl를 참조하세요.

특정 구성요소 삭제

특정 구성요소만 삭제하려면 apigeectl delete와 함께 -c 옵션을 사용합니다. 런타임 구성요소를 설치하는 데 사용한 동일한 재정의 파일을 지정해야 합니다.

예를 들어 동기화 담당자 구성요소를 삭제하려면 다음 명령어를 사용합니다.

apigeectl delete -c synchronizer -f ./my_overrides.yaml

그런 다음 apigeectl apply 명령어를 사용하여 구성요소를 다시 만들 수 있습니다.

apigeectl apply -c synchronizer -f ./my_overrides.yaml

자세한 내용은 apigeectl를 참조하세요.

모든 구성요소 삭제

apigeectl init 명령어로 생성된 구성요소를 포함하여 모든 클러스터 구성요소 하이브리드를 삭제하려면 --all 플래그가 지정된 apigeectl delete 명령어를 사용합니다. 런타임 구성요소를 설치하는 데 사용한 것과 동일한 재정의 파일을 지정해야 합니다.

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

apigeectl delete -f ./my_overrides.yaml --all

자세한 내용은 apigeectl를 참조하세요.