Spring CloudNetflixコンテナを使用してGKEでIngressを定義する方法
Spring CloudNetflix上に構築されたマイクロサービスアーキテクチャがあります。
- business-owner-serviceは、ポート8763で実行されるSpring Bootアプリを指します。ポート転送が完了すると、business-owner-service:80はポート8763にリダイレクトします。
- customer-serviceは、ポート8766で実行されるSpring Bootアプリを指します。customer-service:80-> 8766
Spring Cloud Zuulゲートウェイを介してアーキテクチャを呼び出すと、アーキテクチャは正しく実行されますが、Ingressを設定したいと思います。
私の正確な構成は次のとおりです。
イングレス
入力パスの構成
問題は、イングレスにすべてのバックエンドサービスが異常にあり、何が間違っているのかわからないことです。Ingressを機能させるには、何をする必要がありますか?
編集:コメントごとに、カスタマーサービスポッドのreadinessProbeを次のように定義しようとしました。
これは機能せず、更新された構成を再確認しようとすると、readinessProbeが表示されません。これはバグだと思いますが、プローブが更新されているかどうかを確認する方法がわかりません。
また、アクチュエータ/ヘルスGETはZuulゲートウェイを介して実行されています。
回答
私の場合の解決策となったのは、readinessProbeではなくヘルスチェックの構成でした。入力バックエンドサービス用に自動的に作成されたヘルスチェックを更新して、/ actuator / healthを指すようにしました。これはうまくいった
GKE入力コントローラーは、ポッド展開で定義された準備プローブを使用してヘルスチェックを実行します。スプリングブーツアクチュエータを使用して、以下のように準備プローブを追加します
spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10