此版本仍在开发中,尚未被视为稳定版本。如需最新的稳定版本,请使用 Spring Cloud Kubernetes 3.1.4spring-doc.cn

Kubernetes 生态系统感知

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

Kubernetes 感知基于 Spring Boot API,特别是 ConditionalOnCloudPlatform。 该属性将自动检测你的应用程序当前是否部署在 kubernetes 中。可以覆盖 该设置通过 .spring.main.cloud-platformspring-doc.cn

例如,如果您需要测试某些功能,但不想部署到集群,则只需设置 : 即可。这将使它就像部署在真实集群中一样。spring.main.cloud-platform=KUBERNETESspring-cloud-kubernetesspring-doc.cn

如果您在 Classpath 上 或 正在设置 则 您将必须设置应在(或特定于配置文件的那个)。另请注意,这些属性: 并且仅在您在 Classpath 上或正在设置 时生效。spring-cloud-starter-bootstrapspring.cloud.bootstrap.enabled=truespring.main.cloud-platformbootstrap.{properties|yml}spring.cloud.kubernetes.config.enabledspring.cloud.kubernetes.secrets.enabledbootstrap.{properties|yml}spring-cloud-starter-bootstrapspring.cloud.bootstrap.enabled=true

3.0.x 中的重大更改

在之前的 Spring Cloud Kubernetes 版本中,Kubernetes 感知是使用 property 实现的。这 属性已删除,因此不受支持。相反,我们使用 Spring Boot API:ConditionalOnCloudPlatform。 如果需要显式启用或禁用此感知,请使用 .3.0.xspring.cloud.kubernetes.enabledspring.main.cloud-platform=NONE/KUBERNETESspring-doc.cn

  • 另一个重大变化是加载 configmaps/secrets 所需的额外动词。例如:listspring-doc.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 运行时,会自动激活名为 Spring 的配置文件。 这使您可以自定义配置,以定义在部署 Spring Boot 应用程序时应用的 bean 在 Kubernetes 平台中(例如,不同的开发和生产配置)。kubernetesspring-doc.cn

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