Apigee 및 Apigee Hybrid 문서입니다.
Apigee Edge 문서 보기
증상
다음 증상 중 하나가 관찰될 수 있습니다.
- 클라이언트 애플리케이션에 Apigee Hybrid에 대한 API 호출의 응답으로 제한 시간 오류가 발생합니다.
- Apigee Hybrid 설치 중 클러스터에 구성(
overrides.yaml)
을 적용하는 동안Error from server (invalid)
또는The Job "apigee-resources-install" is invalid
와 같은 오류가 관찰됩니다.
오류 메시지
다음 오류 중 하나가 관찰될 수 있습니다.
API 호출에 대한 오류 응답
Apigee Hybrid에 대한 API 요청이 다음 오류 메시지와 함께 실패할 수 있습니다.
* Connection failed * connect to 34.84.67.39 port 443 failed: Operation timed out * Failed to connect to example.apis.com port 443: Operation timed out * Closing connection 0 curl: (7) Failed to connect to example.apis.com port 443: Operation timed out
클러스터에 구성(overrides.yaml)을 적용할 때 관찰되는 오류
설치 중 클러스터에 구성(overrides.yaml
파일)을 적용할 때 다음 오류 중 하나가 관찰될 수 있습니다.
오류 1번
apigeectl init -f overrides/overrides.yaml
... ... Error from server (Invalid): error when applying patch: to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-10-1.4.6", Namespace: "istio-system" to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-11-1.4.6", Namespace: "istio-system" to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-14-1.4.6", Namespace: "istio-system"
오류 2번
apigeectl init -f overrides/overrides.yaml
... ... The Job "apigee-resources-install" is invalid: spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"apigee-resources-install", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0,
가능한 원인
이러한 오류는 istio-ingressgateway
서비스가 pending
상태에 있고 아래 표시된 것처럼 외부 IP 주소에 바인딩될 수 없을 때 발생할 수 있습니다.
kubectl get services -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.198.5.104 <pending> 15020:31927/TCP, 12h 80:31381/TCP, 443:31391/TCP, 31400:31401/TCP, 15443:32623/TCP
istio-ingressgateway
서비스가 pending
상태가 되는 가능한 원인은 다음과 같습니다.
원인 | 설명 |
---|---|
istio-system 네임스페이스에서 erroneous/pending 상태의 작업 | istio-system 네임스페이스에서 incomplete/erroneous 작업은 istio-ingressgateway 서비스를 영구적으로 pending 상태로 만들고 외부 IP 주소에 바인딩될 수 없도록 만들 수 있습니다. |
apigee-system 네임스페이스에서 erroneous/pending 상태의 apigee-resources-install 작업 | apigee-system 네임스페이스에서 incomplete 작업은 istio- ingressgateway 서비스를 영구적으로 pending 상태로 만들고 외부 IP 주소에 바인딩될 수 없도록 만들 수 있습니다. |
외부 부하 분산기에 할당된 잘못된 IP 주소 범위 | 잘못된 IP 주소 범위가 istio-operator.yaml 파일에 구성되어 istio-ingressgateway 서비스를 pending 상태로 만들고 설치 중 외부 IP 주소에 바인딩될 수 없도록 만들 수 있습니다.
|
원인: istio-system 네임스페이스에서 erroneous/pending 상태의 작업
진단
- 다음 명령어를 사용하여
istio-system
네임스페이스에서 작업의 상태를 확인합니다.kubectl get jobs -n istio-system
- 작업 상태는
complete
여야 합니다. 작업 상태가erroneous/pending
상태이면 이것이 문제의 원인입니다.
해결 방법
- 작업이
pending
또는erroneous
상태이면 다음 명령어를 사용하여 이를 삭제합니다.kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
overrides.yaml
파일을 적용하여 설치를 다시 실행합니다.apigeectl apply -f overrides.yaml
원인: apigee-system 네임스페이스의 apigee-resources-install 작업이 오류 상태일 수 있음
진단
- 다음 명령어를 사용하여
apigee-system
네임스페이스에서 작업의 상태를 확인합니다.kubectl get jobs -n apigee-system
- 작업 상태는
complete
여야 합니다. 작업 상태가erroneous/pending
상태이면 이것이 문제의 원인입니다. 다음 샘플 출력은apigee-resources-install
작업이 성공적으로 완료된 것을 보여줍니다.kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
해결 방법
- 작업이
pending
또는erroneous
상태이면 다음 명령어를 사용하여 이를 삭제합니다.kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
overrides.yaml
파일을 적용하여 설치를 다시 실행합니다.apigeectl apply -f overrides.yaml
원인: 외부 부하 분산기에 할당된 잘못된 IP 주소 범위
진단
istio- operator.yaml
파일에서 부하 분산기에 대해 구성된 IP 주소를 확인합니다. 예를 들어 다음 스니펫은istio-operator.yaml
파일에서 IP 주소가 구성된 위치를 보여줍니다.-name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: 10.195.24.23
istio-ingressgateway
서비스는istio-operator.yaml
파일에서 유형별로 표시된 부하 분산기로 구성됩니다. ASM 설치 중 부하 분산기는 구성된 IP 주소로 생성되고istio- ingressgateway
서비스와 통신하도록 연결됩니다. 따라서 구성된 IP 주소가 올바르고 부하 분산기에 대해 예약되어 있어야 합니다.- 네트워크팀에 연락하여
loadBalancerIP
에 대해 구성된 IP 주소가 올바른지 확인합니다. 올바르지 않으면 부하 분산기 서비스가 IP 주소에 바인딩할 수 없습니다. 이렇게 하면istio-ingressgateway
서비스가 영구적으로pending
상태가 됩니다.
해결 방법
- 네트워크 팀과 협력하여
istio- operator.yaml
파일에서 올바른 IP 주소를 구성합니다. - ASM 설치를 다시 실행하고
overrides.yaml
파일을 적용합니다.apigeectl apply -f overrides.yaml
진단 정보 수집 필요
위 안내를 따른 후에도 문제가 지속되면 다음 진단 정보를 수집한 후 Google Cloud Customer Care에 문의하세요.
- Google Cloud 프로젝트 ID
- Apigee Hybrid 조직의 이름
- Kubernetes 클러스터 이름
- kubernetes 클러스터가 다른 Google Cloud 프로젝트에 있는 경우 Google Cloud 프로젝트 이름
overrides.yaml
파일- ASM 설치 중에 사용된
Istio-operator .yaml
파일 istio-system
네임스페이스의 각istio-ingressgateway
Pod에서 로그를 수집합니다.kubectl logs NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.log
istio-system
네임스페이스에서 각 Pod의 설명을 수집합니다.kubectl describe pod NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.yaml
istio-system
네임스페이스에서 서비스 목록을 수집합니다.kubectl get svc -n istio-system