問題タブ [spring-cloud-kubernetes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring Cloud Kubernetes アプリケーションがポッドで実行されていることを検出しない
予想される行動
Spring Cloud Kubernetes のドキュメントによると、Spring アプリケーションがポッドで実行されていることを検出するために必要なのは、spring-cloud-kubernetes-all
依存関係を使用して Spring Cloud Kubernetes をクラスパスに追加することだけです。
これにより、次の 2 つのイベントがトリガーされます。
- 存在する場合、
application-kubernetes.yml
プロファイルがロードされます。 - の Kubernetes 実装は
DiscoveryClient
サービス検出に使用され、デフォルトの Eureka の代わりに KubeDNS を利用します。
そしてここ:
実際の動作
次の yaml を使用して Spring Cloud Kubernetes アプリケーションを起動し、NodePort 経由でそのアクチュエーター エンドポイントにアクセスした後、フォルダーに aが存在するにhttp://minikube-ip:port/actuator/env
もかかわらず、アクティブなプロファイルが設定されていないことがわかります。application-kubernetes.yml
resources
エンドポイントをさらに調査するとhttp://minikube-ip:port/actuator/info
、次のように、Spring アプリケーションがポッド内にあることをまったく認識していないことがわかります。
マイコード
SpringCloudGateway
SpringCloudGateway build.gradle
SpringCloudGateway アプリケーション.yml
SpringCloudGateway アプリケーション-kubernetes.yml
SpringCloudGateway デプロイメント.yml
SpringCloudGateway ポッドのログ
ご覧のとおり、まだ Eureka に接続しようとしています。
バージョン Spring Cloud: Hoxton.SR5
ジブ
ミニキューブ: 1.15.1
K8s: 1.19
ジャワ:11
どんな助けでも大歓迎です!ありがとうございました!