|
对于最新稳定版本,请使用Spring Cloud Kubernetes 5.0.0! |
Kubernetes生态系统意识
本指南前面提到的所有功能都同样有效,无论你的应用是否运行在内部
Kubernetes。这对开发和排查非常有帮助。
从开发角度来看,这让你可以启动 Spring Boot 应用程序并调试一个
该项目所包含的模块。你不必在 Kubernetes 中部署它,
因为该项目的代码依赖于 Fabric8 Kubernetes Java 客户端,该客户端是一个流畅的 DSL,能够
通过以下方式进行沟通httpKubernetes 服务器的 REST API 协议。
Kubernetes 的认知基于 Spring Boot API,特别是 ConditionalOnCloudPlatform。
这个属性会自动检测你的应用是否已经部署在 Kubernetes。可以覆盖
该设定通过spring.main.cloud-platform.
例如,如果你需要测试某些功能,但不想部署到集群,只需设置:spring.main.cloud-platform=KUBERNETES.这会让春云库伯内特斯就像它部署在真实集群中一样。
如果你有Spring-cloud-starter-bootstrap在你的类路径上或正在设置spring.cloud.bootstrap.enabled=true然后
你得设置spring.main.cloud-platform应该设置在启动。{properties|yml}(或者说是特定档案的)。还要注意以下属性:spring.cloud.kubernetes.config.enabled和spring.cloud.kubernetes.secrets.enabled只有在设置时才会生效启动。{properties|yml}当你拥有Spring-cloud-starter-bootstrap在你的类路径上或正在设置spring.cloud.bootstrap.enabled=true. |
3.0.x 中的重大变更
在3.0.xKubernetes 意识通过以下方式实现spring.cloud.kubernetes.enabled财产。这
财产被移除且无支撑。相反,我们使用 Spring Boot API:ConditionalOnCloudPlatform。
如果需要明确启用或关闭这种意识,请使用spring.main.cloud-platform=NONE/KUBERNETES.
-
另一个关键变化是
列表加载 configmaps/secret 需要动词。例如:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-role
rules:
- apiGroups: ["", "extensions", "apps", "discovery.k8s.io"]
resources: ["configmaps", "pods", "services", "endpoints", "secrets", "endpointslices"]
verbs: ["get", "list", "watch"]
Kubernetes 配置文件自动配置
当应用程序作为 Kubernetes 中的一个 pod 运行时,一个名为Kubernetes会自动激活。
这允许你自定义配置,定义在 Spring Boot 应用部署时应用的 BEANS
在Kubernetes平台上(例如,不同的开发和生产配置)。
伊斯提奥觉知
当你包含Spring-cloud-Kubernetes-Fabric8-istio在应用类路径中,会为应用程序添加一个新的配置文件,
前提是该应用运行在安装了 Istio 的 Kubernetes 集群中。然后你可以使用
Spring@Profile(“istio”)你的豆子和@Configuration类。
Istio觉知模块me.snowdrop:istio-client与Istio API交互,让我们发现交通规则、断路器等,
这使得我们的 Spring Boot 应用程序能够轻松地利用这些数据,根据环境动态配置自身。