6. Kubernetes 生态系统意识

本指南前面描述的所有功能都同样有效,无论您的应用程序是否在 Kubernetes 的 Kubernetes。这对于开发和故障排除非常有帮助。 从开发的角度来看,这允许您启动 Spring Boot 应用程序并调试一个 的模块。您无需在 Kubernetes 中部署它, 因为项目的代码依赖于 Fabric8 Kubernetes Java 客户端,它是一个流畅的 DSL,可以 使用协议与 Kubernetes Server 的 REST API 进行通信。httpspring-doc.cn

要禁用与 Kubernetes 的集成,您可以设置为 。请注意,when is on the classpath 时,应设置在 (或特定于配置文件的 one),否则应位于 in (或特定于 profile 的 one)。 由于我们在 中设置特定 的方式,您还需要通过系统属性(或环境变量)禁用该处理器,例如,您可以启动 你的应用程序通过 (任何形式的松散绑定也可以工作)。 另请注意,这些属性:并且仅在spring.cloud.kubernetes.enabledfalsespring-cloud-kubernetes-configspring.cloud.kubernetes.enabledbootstrap.{properties|yml}application.{properties|yml}EnvironmentPostProcessorspring-cloud-kubernetes-config-DSPRING_CLOUD_KUBERNETES_ENABLED=falsespring.cloud.kubernetes.config.enabledspring.cloud.kubernetes.secrets.enabledbootstrap.{properties|yml}spring-doc.cn

6.1. Kubernetes Profile 自动配置

当应用程序在 Kubernetes 中作为 Pod 运行时,会自动激活名为 Spring 的配置文件。 这使您可以自定义配置,以定义在部署 Spring Boot 应用程序时应用的 bean 在 Kubernetes 平台中(例如,不同的开发和生产配置)。kubernetesspring-doc.cn

6.2. Istio 感知

当您将模块包含在应用程序类路径中时,将向应用程序添加新的配置文件。 前提是应用程序在安装了 Istio 的 Kubernetes 集群中运行。然后,您可以使用 spring 注解。spring-cloud-kubernetes-fabric8-istio@Profile("istio")@Configurationspring-doc.cn

Istio 感知模块用于与 Istio API 交互,让我们发现流量规则、熔断器等, 使我们的 Spring Boot 应用程序能够轻松使用这些数据,以便根据环境动态配置自身。me.snowdrop:istio-clientspring-doc.cn