对于最新稳定版本,请使用Spring Cloud Kubernetes 5.0.0spring-doc.cadn.net.cn

Kubernetes生态系统意识

本指南前面提到的所有功能都同样有效,无论你的应用是否运行在内部 Kubernetes。这对开发和排查非常有帮助。 从开发角度来看,这让你可以启动 Spring Boot 应用程序并调试一个 该项目所包含的模块。你不必在 Kubernetes 中部署它, 因为该项目的代码依赖于 Fabric8 Kubernetes Java 客户端,该客户端是一个流畅的 DSL,能够 通过以下方式进行沟通httpKubernetes 服务器的 REST API 协议。spring-doc.cadn.net.cn

Kubernetes 的认知基于 Spring Boot API,特别是 ConditionalOnCloudPlatform。 这个属性会自动检测你的应用是否已经部署在 Kubernetes。可以覆盖 该设定通过spring.main.cloud-platform.spring-doc.cadn.net.cn

例如,如果你需要测试某些功能,但不想部署到集群,只需设置:spring.main.cloud-platform=KUBERNETES.这会让春云库伯内特斯就像它部署在真实集群中一样。spring-doc.cadn.net.cn

如果你有Spring-cloud-starter-bootstrap在你的类路径上或正在设置spring.cloud.bootstrap.enabled=true然后 你得设置spring.main.cloud-platform应该设置在启动。{properties|yml}(或者说是特定档案的)。还要注意以下属性:spring.cloud.kubernetes.config.enabledspring.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.spring-doc.cadn.net.cn

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-doc.cadn.net.cn

伊斯提奥觉知

当你包含Spring-cloud-Kubernetes-Fabric8-istio在应用类路径中,会为应用程序添加一个新的配置文件, 前提是该应用运行在安装了 Istio 的 Kubernetes 集群中。然后你可以使用 Spring@Profile(“istio”)你的豆子和@Configuration类。spring-doc.cadn.net.cn

Istio觉知模块me.snowdrop:istio-client与Istio API交互,让我们发现交通规则、断路器等, 这使得我们的 Spring Boot 应用程序能够轻松地利用这些数据,根据环境动态配置自身。spring-doc.cadn.net.cn