139. Kubernetes 生态系统意识

无论您的应用程序是否在 Kubernetes 内运行,上述所有功能都可以很好地运行。这对于开发和故障排除确实很有帮助。从开发的角度来看,这非常有用,因为您可以启动 Spring Boot 应用程序并调试该项目的模块之一。不需要在 Kubernetes 中部署它,因为该项目的代码依赖于Fabric8 Kubernetes JavaClient 端,它是一种能够使用http协议与 Kubernetes Server 的 REST API 进行通信的流畅 DSL。

139.1 Kubernetes 配置文件自动配置

当应用程序在 Kubernetes 中作为 Pod 运行时,名为kubernetes的 Spring 配置文件将自动被激活。这使开发人员可以自定义配置,定义在 Kubernetes 平台 中部署 Spring Boot 应用程序时将应用的 Bean(例如不同的 dev 和 prod 配置)

139.2 Istio 意识

如果将``spring-cloud-kubernetes-istio''模块包含在应用程序 Classpath 中,则如果该应用程序在安装了Istio的 Kubernetes 集群中运行,则将向该应用程序添加新的配置文件。然后,您可以在 Bean 和 @ Configuration 中使用 spring @ Profile(“ istio”) 注解。

Istio 感知模块使用 me.snowdrop:istio-client 与 Istio API 进行交互,使我们能够发现流量规则,断路器等。使我们的 Spring Boot 应用程序可以轻松使用此数据来动态地配置自身根据环境。