런타임 서비스 확장 및 자동 확장

Kubernetes에서 실행되는 대부분의 서비스는 명령줄 또는 구성 재정의에서 확장할 수 있습니다. overrides.yaml 파일에서 Apigee Hybrid 런타임 서비스에 대한 확장 매개변수를 설정할 수 있습니다.

서비스 구현 방식 확장
Cassandra ApigeeDatastore(CRD) Cassandra 확장을 참조하세요.
인그레스/LoadBalancer 배포 Anthos Service Mesh는 수평형 포드 자동 확장(HPA)을 사용합니다.
Logger DaemonSet DaemonSets는 모든 노드에서 포드의 복제본을 관리하므로 포드 자체를 확장할 때 포드가 확장됩니다.
MART
Apigee Connect
Watcher
ApigeeOrganization(CRD)

구성을 통해 확장하려면 mart, watcher, connectAgent 스탠자에 대한 배포의 replicaCountMin 구성 속성 값을 늘립니다. 예를 들면 다음과 같습니다.

mart:
 replicaCountMin: 2
 replicaCountMax: 1

watcher:
 replicaCountMin: 2
 replicaCountMax: 1

connectAgent:
 replicaCountMin: 2
 replicaCountMax: 1

이 배포는 자동 확장에 수평형 포드 자동 확장 처리를 사용합니다. 배포 객체의 targetCPUUtilizationPercentage 속성을 수직 확장을 위한 기준점으로 설정합니다. 이 값을 초과하면 Kubernetes가 최대 replicaCountMax 값까지 포드를 추가합니다.

구성 속성 설정에 대한 자세한 내용은 런타임 영역 구성요소 관리를 참조하세요.

런타임
동기화 담당자
UDCA
ApigeeEnvironment(CRD) 구성을 통해 확장하려면 재정의 파일에서 udca, synchronizer, runtime 스탠자에 대한 replicaCountMin 속성 값을 늘립니다. 예를 들면 다음과 같습니다.
synchronizer:
 replicaCountMin: 10
 replicaCountMax: 1

runtime:
 replicaCountMin: 10
 replicaCountMax: 1

udca:
 replicaCountMin: 10
 replicaCountMax: 1

참고: 이 변경사항은 재정의 파일의 모든 환경에 적용됩니다. 각 환경의 확장을 맞춤설정하려면 아래의 고급 구성을 참조하세요.

이 배포는 자동 확장에 수평형 포드 자동 확장 처리를 사용합니다. 배포 객체의 targetCPUUtilizationPercentage 속성을 수직 확장을 위한 기준점으로 설정합니다. 이 값을 초과하면 Kubernetes가 최대 replicaCountMax 값까지 포드를 추가합니다.

구성 속성 설정에 대한 자세한 내용은 런타임 영역 구성요소 관리를 참조하세요.

고급 구성

일부 시나리오에서는 고급 확장 옵션을 사용해야 할 수도 있습니다. 시나리오의 예시는 다음과 같습니다.

  • 환경별로 서로 다른 확장 옵션 설정. 예를 들어 env1의 minReplica가 5이고 env2의 minReplica가 2인 경우입니다.
  • 환경 내의 각 구성요소에 서로 다른 확장 옵션 설정. 예를 들어 udca 구성요소의 maxReplica가 5이고 synchronizer 구성요소의 maxReplica가 2인 경우입니다.

다음 예시에서는 kubernetes patch 명령어를 사용하여 runtime 구성요소의 maxReplicas 속성을 변경하는 방법을 보여줍니다.

  1. 다음 명령어와 함께 사용할 환경 변수를 만듭니다.
    export ENV=my-environment-name
    export NAMESPACE=apigee  #the namespace where apigee is deployed
    export COMPONENT=runtime #can be udca or synchronizer
    export MAX_REPLICAS=2
    export MIN_REPLICAS=1
  2. 패치를 적용합니다. 이 예시에서는 kubectlPATH에 있다고 가정합니다.
    kubectl patch apigeeenvironment -n $NAMESPACE \
      $(kubectl get apigeeenvironments -n $NAMESPACE -o jsonpath='{.items[?(@.spec.name == "'$ENV'" )]..metadata.name}') \
      --patch "$(echo -e "spec:\n  components:\n    $COMPONENT:\n      autoScaler:\n        maxReplicas: $MAX_REPLICAS\n        minReplicas: $MIN_REPLICAS")" \
      --type merge
    
  3. 변경된 것을 확인합니다.
    kubectl get hpa -n $NAMESPACE