Module 03 · Managing Applications with Kubernetes
Service Binding服务绑定(Service Binding)
定义与目标
什么是服务绑定?
服务绑定是应用程序消费外部服务或后端服务(Backing Services)所需的过程。
- 外部服务包括:REST APIs、数据库、事件总线(event buses)等。
核心目标与角色
| 角色 | 目标 |
|---|---|
| 配置管理 | 管理后端服务的配置和凭证(configuration and credentials)。 |
| 数据保护 | 保护敏感数据。 |
| 自动提供凭证 | 自动将服务凭证作为 Kubernetes Secret 提供给您。 |
| 应用调用 | 通过将应用程序绑定到 Deployment 来消费外部服务,应用代码随后使用这些凭证调用相应的服务。 |
绑定外部服务到 Kubernetes 集群
本节以 IBM Cloud Service 为例,介绍服务绑定的步骤。
步骤概览
服务绑定可以快速为 IBM Cloud 服务创建服务凭证,并将其存储在集群的 Kubernetes Secret 中。
- 资源置备 (Provision):置备(provision)服务实例。
- 服务绑定 (Bind):将服务绑定到集群,以创建使用公共云服务端点的服务凭证。
- 凭证存储 (Store):将凭证存储在 Kubernetes Secret 中。
- 应用配置 (Configure):配置您的应用程序以访问 Kubernetes Secret 中的服务凭证。
演示示例:Tone Analyzer Service

以 Tone Analyzer Service 为例进行讲解。该服务使用语言分析来检测给定文本的语气(tone)。
- 服务提供了 JavaScript SDK。
- 您将服务绑定到 Deployment,使凭证自动可用。
- 代码随后使用绑定中的凭证调用 Tone Analyzer Service。
绑定流程与代码验证
步骤 1: 置备服务实例
- 使用命令行界面(CLI)创建服务实例。
- 或通过 IBM Cloud 网站上的目录置备服务实例。

步骤 2: 绑定服务到集群
- 使用
service bind命令将新创建的服务实例绑定到您的集群。 - IBM Cloud Service Binding 会自动创建一个包含服务凭证的 Kubernetes Secret。
- 服务实例的凭证是 Base64 编码的,并以 JSON 格式存储在 Secret 中。
步骤 3: 验证 Secret 对象

服务绑定到集群后,您可以通过以下方式验证 Secret 对象:
- 使用
Get Secrets命令,显示 Kubernetes 集群中的所有 Secrets。 - 通过 Kubernetes Dashboard 用户界面或 IBM Cloud Kubernetes Service 检索相同的 Secrets。
步骤 4: 在应用程序中使用凭证
要访问 Secret 中的数据,您可以选择以下任一方法:
选项 A: 挂载为卷 (Volume Mount)
- 根据置备规范(Step 1)将 Secret 作为卷(Volume)挂载到 Pod 中。
- 此操作会在 Volume Mounts 目录中创建一个 JSON 格式的文件,名为
binding。 - 该
binding文件包含访问 IBM Cloud 服务所需的所有信息和凭证。

- 此操作会在 Volume Mounts 目录中创建一个 JSON 格式的文件,名为
选项 B: 引用为环境变量 (Environment Variables)
- 在环境变量中引用 Secret。
binding.API Key、binding.username和binding.password等环境变量对应于 Watson Tone Analyzer 服务实例的 API Key、用户名和密码。- 代码片段示例:一个 Node.js 应用程序在 Express.js 应用程序内部使用这些环境变量来调用服务。

总结要点
- 将外部服务绑定到您的 Deployment 会自动提供在代码中使用该服务的凭证。
- 凭证以 Secret 的形式存储,可以通过卷挂载(Volume Mounts)或环境变量(Environment Variables)来消费。
- 服务绑定管理后端服务的配置和凭证,同时保护敏感数据。
- 您可以通过以下方式配置应用程序以使用存储在 Secret 中的凭证:
- 将 Secret 挂载为 Pod 的卷。
- 在环境变量中引用 Secret。