現在、Apigee と Apigee ハイブリッドのドキュメントを表示しています。
Apigee Edge ドキュメントを表示する
症状
次の症状が見られることがあります。
- クライアント アプリケーションが、Apigee ハイブリッドで API 呼び出しのレスポンスとしてタイムアウト エラーを受け取る。
- Apigee ハイブリッドのインストール中にクラスタに構成(
overrides.yaml)
)を適用している間に、Error from server (invalid)
やThe Job "apigee-resources-install" is invalid
などのエラーが発生する。
エラー メッセージ
次のエラーが発生することがあります。
API 呼び出しのエラー レスポンス
Apigee ハイブリッドの 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 Namespace でエラーまたは保留中状態のジョブ | istio-system Namespace で incomplete/erroneous ジョブを使用すると、istio-ingressgateway サービスが永続的に pending 状態になり、外部 IP アドレスにバインドできなくなる可能性があります。 |
apigee-system Namespace 内のエラーまたは保留状態の apigee-resources-install ジョブ | apigee-system Namespace で incomplete ジョブを使用すると、istio- ingressgateway サービスが永続的に pending 状態になり、外部 IP アドレスにバインドできなくなる可能性があります。 |
外部ロードバランサに割り当てられた IP アドレス範囲が正しくない | istio-operator.yaml ファイルで正しくない IP アドレス範囲が構成されていると、インストール中に istio-ingressgateway サービスが永続的に pending 状態になり、外部 IP アドレスにバインドできなくなる可能性があります。 |
原因: エラー状態または保留状態の istio-system Namespace のジョブ
診断
- 次のコマンドを使用して、
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 アドレスを確認します。たとえば、次のスニペットは、IP アドレスが構成されているistio-operator.yaml
ファイルの場所を示しています。-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 カスタマーケアにご連絡ください。
- Google Cloud プロジェクト ID
- Apigee ハイブリッド組織の名前
- Kubernetes クラスタ名
- Google Cloud プロジェクト名(Kubernetes クラスタが別の 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