第 9 章 将 Spring Boot 与 Kubernetes 集成
Spring Cloud Kubernetes 插件目前使您能够集成 Spring Boot 和 Kubernetes 的以下功能:
9.1. Spring Boot Externalized 配置
在 Spring Boot 中,外部化 配置是可让您将来自外部源的配置值注入 Java 代码的机制。在您的 Java 代码中,使用 @Value
注释(注入单个字段)或 @ConfigurationProperties
注释(注入 Java bean 类的多个属性)通常启用注入。
配置数据可能来自各种不同的源(或 属性源)。特别是,通常在项目的 application.properties
文件中设置配置属性(或 application.yaml
文件)。
9.1.1. Kubernetes ConfigMap
Kubernetes ConfigMap 是向已部署的应用程序提供配置数据的机制。ConfigMap 对象通常在 YAML 文件中定义,然后上传到 Kubernetes 集群,使配置数据可用于部署的应用程序。
9.1.2. Kubernetes Secret
Kubernetes Secret 是为部署的应用程序提供敏感数据(如密码、证书等)的机制。
9.1.3. Spring Cloud Kubernetes Plug-In
Spring Cloud Kubernetes 插件实现 Kubernetes 和 Spring Boot 之间的集成。在原则上,您可以使用 Kubernetes API 从 ConfigMap 访问配置数据。但是,与 Spring Boot 外部配置机制直接集成 Kubernetes ConfigMap 更为方便,因此 Kubernetes ConfigMap 的行为是 Spring Boot 配置的替代属性源。这基本上是 Spring Cloud Kubernetes 插件提供的内容。
9.1.4. 启用带有 Kubernetes 集成的 Spring Boot
您可以通过将 Kubernetes 集成作为 Maven 依赖项添加到 pom.xml
文件来启用 Kubernetes 集成。
流程
通过将以下 Maven 依赖项添加到 Spring Boot Maven 项目的 pom.xml 文件中来启用 Kubernetes 集成。
<project ...> ... <dependencies> ... <dependency> <groupId>io.fabric8</groupId> <artifactId>spring-cloud-kubernetes-core</artifactId> </dependency> ... </dependencies> ... </project>
要完成集成,
- 在 Java 源代码中添加一些注解
- 创建 Kubernetes ConfigMap 对象
- 修改 OpenShift 服务帐户权限,以允许您的应用程序读取 ConfigMap 对象。
其他资源
- 如需了解更多详细信息,请参阅 运行 ConfigMap 属性源的 Tutorial。