6. Kubernetes 生态系统意识
本指南前面介绍的所有功能都同样有效,无论您的应用程序是否在
Kubernetes。这对于开发和故障排除非常有帮助。
从开发的角度来看,这允许您启动 Spring Boot 应用程序并调试一个
作为该项目一部分的模块。你不需要在 Kubernetes 中部署它,
因为项目的代码依赖于 Fabric8 Kubernetes Java 客户端,这是一个流畅的 DSL,可以
通过使用http
协议到 Kubernetes 服务器的 REST API。
要禁用与 Kubernetes 的集成,您可以将spring.cloud.kubernetes.enabled
自false
.请注意,当spring-cloud-kubernetes-config
在类路径上,spring.cloud.kubernetes.enabled
应设置在bootstrap.{properties|yml}
(或特定于配置文件的),否则它应该在application.{properties|yml}
(或特定于配置文件的配置文件)。
由于我们设置特定EnvironmentPostProcessor
在spring-cloud-kubernetes-config
,您还需要通过系统属性(或环境变量)禁用该处理器,例如您可以启动
您的申请通过-DSPRING_CLOUD_KUBERNETES_ENABLED=false
(任何形式的松绑也可以)。
另请注意,这些属性:spring.cloud.kubernetes.config.enabled
和spring.cloud.kubernetes.secrets.enabled
仅在设置bootstrap.{properties|yml}
6.1. Kubernetes 配置文件自动配置
当应用程序在 Kubernetes 中作为 Pod 运行时,名为kubernetes
自动激活。
这允许您自定义配置,以定义部署 Spring Boot 应用程序时应用的 Bean
在 Kubernetes 平台中(例如,不同的开发和生产配置)。
6.2. Istio 意识
当您包含spring-cloud-kubernetes-fabric8-istio
模块,将向应用程序添加一个新的配置文件,
前提是应用程序在安装了 Istio 的 Kubernetes 集群中运行。然后,您可以使用
Spring@Profile("istio")
Commentations 和@Configuration
类。
Istio 感知模块使用me.snowdrop:istio-client
与 Istio API 交互,让我们发现流量规则、熔断器等,
使我们的 Spring Boot 应用程序可以轻松地使用这些数据来根据环境动态配置自己。