Apigee 인그레스 게이트웨이 관리

Apigee Hybrid 버전 1.8부터 Apigee Hybrid는 Apigee 인그레스 게이트웨이를 사용하여 하이브리드용 인그레스 게이트웨이를 제공합니다.

Apigee 인그레스 게이트웨이 구성

overrides.yaml에서 인그레스 게이트웨이를 구성할 수 있습니다. 예를 들면 다음과 같습니다.

구문

ingressGateways:
- name: INGRESS_NAME
  replicaCountMin: REPLICAS_MIN
  replicaCountMax: REPLICAS_MAX
  resources:
    requests:
      cpu: CPU_COUNT_REQ
      memory: MEMORY_REQ
    limits:
      cpu: CPU_COUNT_LIMIT
      memory: MEMORY_LIMIT
  svcAnnotations:  # optional. See Known issue 243599452.
    SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
  svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional

ingressGateways:
- name: prod1
  replicaCountMin: 2
  replicaCountMax: 100
  resources:
    requests:
      cpu: 1
      memory: 1Gi
    limits:
      cpu: 2
      memory: 2Gi
  svcAnnotations:  # optional. See Known issue 243599452.
    networking.gke.io/load-balancer-type: "Internal"
  svcLoadBalancerIP: 198.252.0.123 
  • INGRESS_NAME은 인그레스 게이트웨이 배포의 이름입니다. 다음 요구사항을 충족하는 이름이면 됩니다.
    • 최대 길이는 17자(영문 기준)입니다.
    • 소문자 영숫자 문자, '-' 또는 '.'만 포함해야 합니다.
    • 영숫자 문자로 시작해야 합니다.
    • 영숫자 문자로 끝나야 합니다.

    구성 속성 참조는 ingressGateways[].name을 참조하세요.

  • REPLICAS_MINREPLICAS_MAX: 설치에서 Apigee 인그레스 게이트웨이의 최소 및 최대 복제본 수입니다. 구성 속성 참조의 ingressGateways[].replicaCountMiningressGateways[].replicaCountMax를 참조하세요.
  • CPU_COUNT_REQMEMORY_REQ: 설치에서 Apigee 인그레스 게이트웨이의 각 복제본에 대한 CPU 및 메모리 요청입니다.

    구성 속성 참조의 ingressGateways[].resources.requests.cpuingressGateways[].resources.requests.memory를 참조하세요.

  • CPU_COUNT_LIMITMEMORY_LIMIT: 설치에서 Apigee 인그레스 게이트웨이의 각 복제본에 대한 최대 CPU 및 메모리 한도입니다.

    구성 속성 참조의 ingressGateways[].resources.limits.cpuingressGateways[].resources.limits.memory를 참조하세요.

  • SVC_ANNOTATIONS_KEY SVC_ANNOTATIONS_VALUE(선택사항):

    기본 인그레스 서비스의 주석을 제공하는 키-값 쌍입니다. 주석은 부하분산기 유형을 내부 또는 외부로 설정하는 등, 클라우드 플랫폼에서 하이브리드 설치를 구성하는 데 사용됩니다. 예를 들면 다음과 같습니다.

    ingressGateways:
      svcAnnotations:
        networking.gke.io/load-balancer-type: "Internal"

    주석은 플랫폼마다 다릅니다. 필수 및 추천 주석은 플랫폼 문서를 참조하세요.

    구성 속성 참조의 ingressGateways[].svcAnnotations를 참조하세요.
  • SVC_LOAD_BALANCER_IP(선택사항): 부하 분산기 IP 주소 지정을 지원하는 플랫폼에서 이 IP 주소로 부하 분산기가 생성됩니다. 부하 분산기 IP를 지정할 수 없는 플랫폼에서 이 속성은 무시됩니다. 구성 속성 참조의 ingressGateways[].svcLoadBalancerIP를 참조하세요.

Apigee 인그레스 게이트웨이 구성 적용

apigeectl을 사용하여 조직 범위에 변경사항을 적용합니다.

$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --org

관리 작업

Apigee 인그레스 게이트웨이에 대한 몇 가지 일반적인 관리 작업은 다음과 같습니다.

Apigee 인그레스 게이트웨이 확장

재정의 파일의 다음 속성을 업데이트합니다.

  • ingressGateways[].replicaCountMax
  • ingressGateways[].replicaCountMin

자세한 내용은 구성 속성 참조의 ingressGateways를 참조하세요.

apigeectl apply --org를 사용하여 변경사항을 적용합니다.

리소스 할당 업데이트

재정의 파일의 다음 속성을 업데이트합니다.

  • ingressGateways[].resources.limits.cpu
  • ingressGateways[].resources.limits.memory
  • ingressGateways[].resources.requests.cpu
  • ingressGateways[].resources.requests.memory

자세한 내용은 구성 속성 참조의 ingressGateways를 참조하세요.

apigeectl apply --org를 사용하여 변경사항을 적용합니다.

Apigee 인그레스 게이트웨이 서비스 업데이트

재정의 파일의 다음 속성을 업데이트합니다.

  • ingressGateways[].svcAnnotations
  • ingressGateways[].svcLoadBalancerIP

자세한 내용은 구성 속성 참조의 ingressGateways를 참조하세요.

apigeectl apply --org를 사용하여 변경사항을 적용합니다.

기본 Apigee 인그레스 게이트웨이 서비스에 대해 loadbalancer 사용 중지

인그레스 게이트웨이 배포에 사용되는 커스텀 Kubernetes 서비스를 만드는 경우 기본 Kubernetes 서비스에서 부하 분산기 생성을 사용 중지할 수 있습니다. 재정의 파일에서 ingressGateways[].svcType 속성을 ClusterIP로 업데이트합니다. 예를 들면 다음과 같습니다.

ingressGateways:
  - name: my-ingress-gateway
    replicaCountMin: 2
    replicaCountMax: 10
    svcType: ClusterIP

apigeectl apply --org를 사용하여 변경사항을 적용합니다.

TLS 및 mTLS 구성

인그레스 게이트웨이에서 TLS 및 mTLS 구성을 참조하세요.

SNI 이외의 클라이언트 사용 설정

SNI 이외의 클라이언트와 HTTP 클라이언트 사용 설정을 참조하세요.

추가 Apigee 인그레스 게이트웨이 설치

overrides.yaml 파일에서 여러 인그레스 게이트웨이를 추가할 수 있습니다. ingressGateways 구성 속성은 배열입니다. 자세한 내용은 구성 속성 참조의 ingressGateways를 참조하세요.

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

ingressGateways:
- name: fruit
  replicaCountMin: 2
  replicaCountMax: 10

- name: meat
  replicaCountMin: 2
  replicaCountMax: 10

apigeectl apply --org를 사용하여 변경사항을 적용합니다.

가상 호스트를 Apigee 인그레스 게이트웨이 배포에 매핑

선택기 라벨을 사용하여 가상 호스트를 Apigee 인그레스 게이트웨이 배포에 매핑할 수 있습니다. 다음 예시에서 가상 호스트 spam-vhmeat 라벨이 지정된 인그레스 게이트웨이에서 실행되고 다른 두 가상 호스트는 fruit 인그레스 게이트웨이에서 실행되도록 구성됩니다. 추가 Anthos Service Mesh 게이트웨이 설치에 설명된 대로 인그레스 게이트웨이에 라벨을 올바르게 지정해야 합니다.

virtualhosts:
- name: spam-vh
  sslCertPath: cert-spam.crt
  sslKeyPath: cert-spam.key
  selector:
    app: apigee-ingressgateway
    ingress_name: meat
- name: banana-vh
  sslCertPath: cert-banana.crt
  sslKeyPath: cert-banana.key
  selector:
    app: apigee-ingressgateway
    ingress_name: fruit
- name: plum-vh
  sslCertPath: cert-plum.crt
  sslKeyPath: cert-plum.key
  selector:
    app: apigee-ingressgateway
    ingress_name: fruit

    

Apigee 인그레스 게이트웨이 배포에 커스텀 암호 모음 추가

Apigee Hybrid는 TLS v1.2 암호 모음을 지원합니다. TLS v1.0 또는 v1.1을 사용하는 경우 재정의 파일의 virtualhosts.cipherSuites 속성을 사용하여 Apigee 인그레스 게이트웨이 배포에 커스텀 암호 모음을 추가할 수 있습니다.

예를 들어 TLS v.1.1을 지원하려면 다음을 수행합니다.

virtualhosts:
- name: ENV_GROUP_NAME
  minTLSProtocolVersion: "1.1"
  cipherSuites:
  - "ECDHE-ECDSA-AES128-GCM-SHA256"
  - "ECDHE-RSA-AES128-GCM-SHA256"
  - "ECDHE-ECDSA-AES256-GCM-SHA384"
  - "ECDHE-RSA-AES256-GCM-SHA384"
  - "ECDHE-ECDSA-CHACHA20-POLY1305"
  - "ECDHE-RSA-CHACHA20-POLY1305"
  - "ECDHE-ECDSA-AES128-SHA"
  - "ECDHE-RSA-AES128-SHA"
  - "ECDHE-ECDSA-AES256-SHA"
  - "ECDHE-RSA-AES256-SHA"
  ...

예를 들어 TLS v.1.0을 지원하려면 다음을 수행합니다.

virtualhosts:
- name: ENV_GROUP
  minTLSProtocolVersion: "1.0"
  cipherSuites:
  - "ECDHE-ECDSA-AES128-GCM-SHA256"
  - "ECDHE-RSA-AES128-GCM-SHA256"
  - "ECDHE-ECDSA-AES256-GCM-SHA384"
  - "ECDHE-RSA-AES256-GCM-SHA384"
  - "ECDHE-ECDSA-CHACHA20-POLY1305"
  - "ECDHE-RSA-CHACHA20-POLY1305"
  - "ECDHE-ECDSA-AES128-SHA"
  - "ECDHE-RSA-AES128-SHA"
  - "ECDHE-ECDSA-AES256-SHA"
  - "ECDHE-RSA-AES256-SHA"
  ...

인그레스 액세스 로그 맞춤설정

istiod.accessLogFileistiod.accessLogFormat 구성 속성을 사용하여 Apigee 인그레스 게이트웨이 액세스 로그 대상 및 형식을 맞춤설정할 수 있습니다. 다음 예시에서는 출력이 istiod.accessLogFile의 기본값인 /dev/stdout로 전송됩니다.

istiod:
  accessLogFormat: '{"request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","status":"%RESPONSE_CODE%"}'

istiod.accessLogFile 및 빈 값을 할당하여 Apigee 인그레스 게이트웨이 액세스 로깅을 사용 중지할 수 있습니다. 예를 들면 다음과 같습니다.

istiod:
  accessLogFile: ''

FAQ

다른 네임스페이스에 있는 기존 Anthos Service Mesh/Istio 설치에서 이것이 어떻게 작동하나요?
Apigee가 전용 네임스페이스에 설치되어 있는 한 Apigee 인그레스 게이트웨이를 클러스터에 이미 있는 Anthos Service Mesh/Istio 설치와 함께 실행할 수 있습니다. Apigee 인그레스 게이트웨이는 apiserver에 구성을 저장하지 않으므로 충돌이 발생하지 않습니다.
Apigee 인그레스 게이트웨이 구성요소를 업그레이드해야 하는 사람은 누구인가요?
Apigee 인그레스 게이트웨이 구성요소의 업그레이드는 Apigee에서 처리되며 정기적인 하이브리드 업그레이드 및 패치 출시 중에 수행됩니다.
Apigee 인그레스 게이트웨이에서 포트 80을 노출하려면 어떻게 해야 하나요?
포트 80은 Apigee 인그레스 게이트웨이에서 지원되지 않습니다. Anthos Service Mesh에서 Apigee 인그레스 게이트웨이로 마이그레이션하고 커뮤니티 게시물의 안내에 따라 포트 80을 사용 설정하면 Apigee 인그레스 게이트웨이에서 작동하지 않습니다.