이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
이 페이지에서는 클러스터에서 실행되는 Google Kubernetes Engine (GKE) 게이트웨이에서 필요한 트래픽 확장 프로그램을 만들기 위해 APIMExtensionPolicy
를 만드는 방법을 설명합니다.
시작하기 전에
이 작업을 시작하기 전에 다음 단계를 완료하세요.
- GKE 클러스터에 워크로드 아이덴티티가 구성되어 있는지 확인합니다. 필요한 단계는 워크로드 ID 만들기를 참조하세요.
- 클러스터에 GKE 게이트웨이가 구성되어 작동하는지 확인합니다. 자세한 내용은 게이트웨이 배포를 참조하세요.
- Kubernetes용 Apigee Operator를 설치합니다. 설치 안내는 Kubernetes용 Apigee Operator 설치를 참고하세요.
필요한 역할
Kubernetes용 Apigee Operator 설치의 설명대로 서비스 계정에 필요한 역할을 할당한 경우 이러한 작업을 완료하는 데 필요한 추가 IAM 역할이나 권한은 없습니다.
Kubernetes에서 기본 제공되는 역할 기반 액세스 제어(RBAC) 메커니즘을 사용하여 Google Kubernetes Engine 클러스터의 리소스에 대한 작업을 승인할 수 있습니다. 자세한 내용은 역할 기반 액세스 제어를 사용하여 클러스터의 작업 승인을 참조하세요.
APIMExtensionPolicy
만들기
이 단계에서는 APIMExtensionPolicy
를 만들고 클러스터에서 실행되는 GKE 게이트웨이에 적용합니다.
이 정책은 게이트웨이와 연결된 HTTPRoutes
를 통과하는 모든 트래픽을 제어하며 현재 Apigee의 환경 수준에서 flowhook과 유사하게 작동합니다.
APIM 확장 프로그램 정책을 만듭니다.
apim
네임스페이스에global-ext-lb1-apim-policy.yaml
이라는 새 파일을 만듭니다.- 다음 콘텐츠를 새 파일에 복사합니다.
# global-ext-lb1-apim-policy.yaml apiVersion: apim.googleapis.com/v1 kind: APIMExtensionPolicy metadata: name: global-ext-lb1-apim-policy namespace: apim spec: apigeeEnv: ENV_NAME # optional location: global failOpen: false timeout: 1000ms defaultSecurityEnabled: true targetRef: # identifies the Gateway where the extension should be applied name: global-ext-lb1 kind: Gateway namespace: default
여기서 ENV_NAME은 설치 단계 Apigee 환경 만들기에서 만든 Apigee 환경의 이름입니다.
Google Cloud 콘솔의 Apigee 환경 페이지에서 사용 가능한 모든 환경을 확인할 수 있습니다.
- 정책을 적용합니다.
kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml
정책이 적용되면 Kubernetes용 Apigee Operator가 백그라운드에서 네트워킹 리소스를 만듭니다.
- 다음 명령어를 사용하여 APIM 확장 프로그램 정책의 상태를 확인합니다.
kubectl -n apim get APIMExtensionPolicy
출력은 다음과 비슷하게 표시되며
State
가RUNNING
입니다.NAME STATE ERRORMESSAGE global-ext-lb1-apim-policy RUNNING
- 다음 명령어를 사용하여 게이트웨이에 요청을 전송합니다.
curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"
각 항목의 의미는 다음과 같습니다.
GATEWAY_IP_ADDRESS
는 게이트웨이의 IP 주소입니다. 다음 명령어를 사용하여 게이트웨이 IP 주소를 검색할 수 있습니다. 여기서GATEWAY_NAME
은 게이트웨이 이름입니다.kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
HOST_NAME
은 게이트웨이의HTTPRoute
에 정의된 호스트 이름입니다.
- API 확장 프로그램 정책 리소스에서
defaultSecurityEnabled: true
를 설정하여 기본 보안이 사용 설정되어 있으므로 요청이 실패해야 합니다. 다음과 비슷한 응답이 표시됩니다.{"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}
이는 Apigee 확장 프로그램 정책이 활성 상태이고 API 키 적용 및 액세스 토큰 확인이 활성 상태임을 나타냅니다.
다음 단계
- GKE 게이트웨이에 정책을 추가하는 방법 알아보기
- Kubernetes용 Apigee Operator를 제거하는 방법 알아보기