12.4. 使用 Fabric8 Karaf 功能
Fabric8 提供对 Apache Karaf 的支持,使其更易于开发用于 Kubernetes 的 OSGi 应用程序。
Fabric8 的重要功能如下:
- 解析 Blueprint XML 文件中的占位符不同。
- 环境变量
- 系统属性
- 服务
- Kubernetes ConfigMap
- Kubernetes Secret
- 使用 Kubernetes 配置映射来动态更新 OSGi 配置管理。
- 为 OSGi 服务提供 Kubernetes 健康检查。
12.4.1. 添加 Fabric8 Karaf 功能 复制链接链接已复制到粘贴板!
要使用该功能,请将 fabric8-karaf-features
依赖项添加到项目 POM 文件中。
流程
-
打开项目的
pom.xml
文件并添加fabric8-karaf-features
依赖项。
fabric8 karaf 功能将安装到 Karaf 服务器中。
12.4.2. 添加 Fabric8 Karaf Core 捆绑包功能 复制链接链接已复制到粘贴板!
捆绑包 fabric8-karaf-core
提供了 Blueprint 和 ConfigAdmin 扩展使用的功能。
流程
打开项目的
pom.xml
,并将fabric8-karaf-core
添加到startupFeatures
部分。<startupFeatures> ... <feature>fabric8-karaf-core</feature> ... </startupFeatures>
<startupFeatures> ... <feature>fabric8-karaf-core</feature> ... </startupFeatures>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这将在自定义 Karaf 发行版中添加
fabric8-karaf-core
功能。
12.4.3. 设置 Property Placeholder 服务选项 复制链接链接已复制到粘贴板!
捆绑包 fabric8-karaf-core
会使用以下接口导出服务 PlaceholderResolver
:
PlaceholderResolver
服务充当不同属性占位符解析策略的收集器。默认情况下提供的解析策略列在表 解析策略 中。要设置属性占位符服务选项,您可以使用系统属性或环境变量或两者。
流程
要访问 OpenShift 上的 ConfigMap 需要查看权限。为服务帐户添加查看权限。
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 secret 挂载到 Pod,因为通过 API 访问 secret 可能会被限制。
Pod 上作为卷挂载可用的 secret 映射到名为 secret 的目录,如下所示
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.4.4. 添加自定义属性占位符解析器 复制链接链接已复制到粘贴板!
您可以添加自定义占位符解析器来支持特定需求,如自定义加密。您还可以使用 PlaceholderResolver
服务将解析器提供给 Blueprint 和 ConfigAdmin。
流程
将以下 mvn 依赖项添加到项目
pom.xml
中。pom.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 实施 PropertiesFunction 接口,并使用 SCR 将其注册为 OSGi 服务。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以按照如下所示引用配置管理中的解析器:
属性
my.property = $[myResolver:value-to-resolve]
my.property = $[myResolver:value-to-resolve]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.4.5. 解决方案策略列表 复制链接链接已复制到粘贴板!
PlaceholderResolver
服务充当不同属性占位符解析策略的收集器。它默认提供的解析策略列在表中。
- 解决方案策略列表
prefix | 示例 | 描述 |
|
| 从 OS 环境变量查找 属性。 |
`sys |
| 从 Java JVM 系统属性中查找 属性。 |
'service |
| 使用服务命名约定从 OS 环境变量查找属性。 |
|
| 使用服务命名约定从 OS 环境变量查找属性,仅返回 hostname 部分。 |
|
| 使用服务命名约定从 OS 环境变量查找 属性,仅返回端口部分。 |
|
| 从 Kubernetes ConfigMap(通过 API)查找属性 |
|
| 从 Kubernetes Secret(通过 API 或卷挂载)查找属性 |
12.4.6. Property Placeholder 服务选项列表 复制链接链接已复制到粘贴板!
属性占位符服务支持以下选项:
- 属性占位符服务选项列表
名称 | default | 描述 |
---|---|---|
| $[ | 占位符前缀 |
| ] | 占位符后缀 |
| null | 以逗号分隔的映射 secret 的路径列表 |
| false | 通过 API 启用/禁用 secret |