1.2. AMQ Streams 自定义资源
使用 AMQ Streams 将 Kafka 组件部署到 OpenShift 集群可以通过自定义资源的应用程序进行配置。自定义资源作为自定义资源定义 (CRD) 添加的 API 实例创建,以扩展 OpenShift 资源。
CRD 充当描述 OpenShift 集群中的自定义资源的配置说明,由 AMQ Streams 提供,用于部署中使用的每个 Kafka 组件,以及用户和主题。CRD 和自定义资源被定义为 YAML 文件。AMQ Streams 发行版提供了 YAML 文件示例。
CRD 还允许 AMQ Streams 资源从原生 OpenShift 功能中获益,如 CLI 访问和配置验证。
1.2.1. AMQ Streams 自定义资源示例 复制链接链接已复制到粘贴板!
CRD 需要集群中的一次性安装来定义用于实例化和管理 AMQ Streams 特定资源的 schema。
在安装 CRD 中添加新的自定义资源类型后,您可以根据规格创建资源实例。
根据集群设置,安装通常需要集群管理员特权。
管理自定义资源的访问权限仅限于 AMQ Streams 管理员。如需更多信息,请参阅 设计 AMQ Streams 管理员。
在 OpenShift 集群中,CRD 定义了一个新的资源 kind
,如 kind:Kafka
。
Kubernetes API 服务器允许根据类型
创建自定义资源,并通过 CRD 了解在添加到 OpenShift 时如何验证和存储自定义资源。
删除 CRD 时,该类型的自定义资源也会被删除。另外,自定义资源(如 pod 和 statefulsets)创建的资源也会被删除。
每个 AMQ Streams 特定的自定义资源符合为资源的类型
的 CRD 定义的架构。AMQ Streams 组件的自定义资源具有通用配置属性,它们在 spec
下定义。
要了解 CRD 和自定义资源之间的关系,让我们来看一下 Kafka 主题的 CRD 示例。
Kafka 主题 CRD
- 1
- 主题 CRD 的元数据、其名称和用于标识 CRD 的标签。
- 2
- 此 CRD 的规格,包括组(域)名称、复数名称和支持的 schema 版本,在 URL 中用于访问该主题 API。其他名称用于在 CLI 中识别实例资源。例如,
oc get kafkatopic my-topic
或oc get kafkatopics
。 - 3
- shortname 可用于 CLI 命令。例如,
oc get kt
可用作缩写而不是oc get kafkatopic
。 - 4
- 对自定义资源使用
get
命令时显示的信息。 - 5
- CRD 的当前状态,如资源的 schema 引用 中所述。
- 6
- OpenAPIV3Schema 验证为创建主题自定义资源提供验证。例如,一个主题需要至少一个分区和一个副本。
您可以识别 AMQ Streams 安装文件提供的 CRD YAML 文件,因为文件名包含一个索引号,后跟 'Crd'。
以下是 KafkaTopic
自定义资源的对应示例。
Kafka 主题自定义资源
自定义资源可以通过平台 CLI 应用到集群。创建自定义资源时,它会使用与 Kubernetes API 的内置资源相同的验证。
创建 KafkaTopic
自定义资源后,在 AMQ Streams 中创建 Topic Operator 会被通知和对应的 Kafka 主题。