在 OpenShift 中使用 AMQ Streams
在 OpenShift Container Platform 中使用 AMQ Streams 2.1
摘要
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 入门概述
使用 Red Hat AMQ Streams 创建和设置 Kafka 集群,然后将您的应用程序和服务连接到这些集群。
本指南论述了如何在 OpenShift Container Platform 上安装和开始使用 AMQ Streams。您可以在 OpenShift Web 控制台中从 OperatorHub 安装 AMQ Streams Operator。AMQ Streams operator 了解如何安装和管理 Kafka 组件。从 OperatorHub 安装提供 AMQ Streams 的标准配置,它可让您利用自动更新。
安装 AMQ Streams Operator 时,它提供安装 Kafka 组件实例的资源。安装 Kafka 集群后,您可以启动生成和使用消息。
如果部署需要更大的灵活性,可以使用 AMQ Streams 提供的安装工件。有关使用安装工件的更多信息,请参阅在 OpenShift 中部署和升级 AMQ Streams。
1.1. 使用 OperatorHub
OperatorHub 是用于安装 Operator 的 OpenShift Container Platform 的 Web 控制台界面。使用 OperatorHub,您可以直接从 OpenShift Web 控制台安装 AMQ Streams Operator。
您可以选择以以下一种方式安装 AMQ Streams operator:
- 仅限 AMQ Streams operator
- 直接安装 AMQ Streams operator。
- Red Hat Integration operator (已弃用)
- 如果您有一个多个 Red Hat Integration 订阅,您可以使用 Red Hat Integration operator 安装和更新 AMQ Streams operator,以及所有订阅的 Red Hat Integration 组件的 operator。如需更多信息,请参阅安装 Red Hat Integration Operator。
Red Hat Integration Operator 已被弃用,并将在以后的版本中删除。它可从 OpenShift 4.6 中的 OperatorHub 向 4.10 提供。
1.2. 先决条件
使用 AMQ Streams 开始需要满足以下先决条件。
- 您有红帽帐户。
- 已安装了 JDK 11 或更高版本。
- OpenShift 4.6 到 4.10 集群可用。
-
OpenShift
oc
命令行工具已安装并配置为连接到正在运行的集群。
入门步骤基于 OpenShift Web 控制台中的 OperatorHub,但您也可以使用 OpenShift oc
CLI 工具执行某些操作。您需要使用 oc
工具连接到 OpenShift 集群。
-
您可以通过点击
'?'
help 菜单,然后点 Command Line Tools 来安装oc
CLI 工具。 -
您可以通过点击您的配置集名称,然后从 web 控制台复制所需的
oc login
详情,然后 复制登录命令。
1.3. 其他资源
第 2 章 从 OperatorHub 安装 AMQ Streams Operator
您可以使用 OpenShift Container Platform Web 控制台中的 OperatorHub 安装并订阅 AMQ Streams Operator。
此流程描述了如何创建项目,并将 AMQ Streams Operator 安装到该项目中。项目是命名空间的表示。对于可管理性,最好使用命名空间来分隔功能。
确保使用正确的更新频道。如果您位于受支持的 OpenShift 版本,则默认 stable 频道安装 AMQ Streams 通常是安全的。但是,我们不推荐在 stable 频道中启用自动更新。自动升级将在升级前跳过所有必要的步骤。仅在特定于版本的频道中使用自动升级。
先决条件
-
使用具有
cluster-admin
或strimzi-admin
权限的账户访问 OpenShift Container Platform Web 控制台。
流程
在 OpenShift Web 控制台中进入到 Home > Projects 页面,再创建一个用于安装的项目(命名空间)。
在这个示例中,我们使用名为
amq-streams-kafka
的项目。- 进入 Operators > OperatorHub 页面。
在 Filter by keyword 框中输入关键字以查找 Red Hat Integration - AMQ Streams operator。
operator 位于 Streaming 和 Messaging 目录中。
- 点 Red Hat Integration - AMQ Streams 显示 Operator 信息。
- 阅读有关 Operator 的信息,再点 Install。
在 Install Operator 页面中,从以下安装和更新选项中选择:
更新频道 :选择 Operator 的更新频道。
- (默认) stable 频道包含所有最新的更新和发行版本,包括主版本、次版本和微版本,这些版本被认为经过充分测试和稳定。
- amq-streams-X.x 频道包含主发行版本的次要和微版本更新,其中 X 是主版本的版本号。
- amq-streams-X.Y.x 频道包含次要发行本版本的微版本更新,其中 X 是主版本的版本号,Y 是次版本号。
Installation Mode :选择您创建的项目,以便在特定命名空间中安装 Operator。
您可以将 AMQ Streams Operator 安装到集群中的所有命名空间(默认选项)或特定命名空间。我们建议您将特定命名空间专用于 Kafka 集群和其他 AMQ Streams 组件。
- 更新批准 :默认情况下,AMQ Streams Operator 由 Operator Lifecycle Manager (OLM)自动升级到最新的 AMQ Streams 版本。另外,如果您希望手动批准将来的升级,请选择 Manual。如需更多信息,请参阅 OpenShift 文档中的 Operator 指南。
点 Install 将 Operator 安装到所选命名空间中。
AMQ Streams Operator 将 Cluster Operator、CRD 和基于角色的访问控制(RBAC)资源部署到所选命名空间中。
Operator 就绪可用后,进入 Operators > Installed Operators 来验证 Operator 是否已安装到所选命名空间中。
状态将显示为 Succeeded。
现在,您可以使用 AMQ Streams operator 部署 Kafka 组件,从 Kafka 集群开始。
第 3 章 使用 AMQ Streams operator 部署 Kafka 组件
在 Openshift 上安装时,AMQ Streams Operator 使 Kafka 组件可从用户界面安装。
以下 Kafka 组件可用于安装:
- Kafka
- Kafka Connect
- Kafka MirrorMaker
- Kafka MirrorMaker 2
- Kafka 主题
- Kafka 用户
- Kafka Bridge
- Kafka Connector
- Kafka Rebalance
您可以选择组件并创建实例。您至少创建一个 Kafka 实例。这个步骤描述了如何使用默认设置创建 Kafka 实例。您可以在执行安装前配置默认安装规格。
创建其他 Kafka 组件实例的过程相同。
先决条件
- AMQ Streams Operator 安装在 OpenShift 集群上。
流程
在 Web 控制台中导航到 Operators > Installed Operators 页面,然后点 Red Hat Integration - AMQ Streams 来显示 Operator 详情。
在 Provided APIs 中,您可以创建 Kafka 组件的实例。
点 Kafka 下的 Create instance 创建 Kafka 实例。
默认情况下,您将创建一个名为
my-cluster
的 Kafka 集群,它有三个 Kafka 代理节点和三个 ZooKeeper 节点。集群使用临时存储。点 Create 开始安装 Kafka。
等待状态变为 Ready。
第 4 章 创建 OpenShift 路由以访问 Kafka 集群
创建 OpenShift 路由以访问 OpenShift 之外的 Kafka 集群。
此流程描述了如何在 OpenShift 环境外将 Kafka 集群公开给客户端。在 Kafka 集群公开后,外部客户端可以从 Kafka 集群生成和使用信息。
要创建 OpenShift 路由,route
监听程序添加到 OpenShift 上安装的 Kafka 集群的配置中。
OpenShift Route 地址包括 Kafka 集群的名称、侦听器的名称以及它在其中创建的命名空间的名称。例如,my-cluster-kafka-listener1-bootstrap-amq-streams-kafka
(<cluster_name>-kafka-<listener_name>-bootstrap-<namespace>)。请注意,地址的整个长度不超过 63 个字符的最大值。
先决条件
- 您已在 OpenShift 上创建 Kafka 集群。
-
您需要 OpenJDK
keytool
管理证书。 -
(可选)您可以使用 OpenShift
oc
CLI 工具执行一些步骤。
流程
- 在 Web 控制台中进入到 Operators > Installed Operators 页面,然后点 Red Hat Integration - AMQ Streams 来显示 Operator 详情。
- 选择 Kafka 页面来显示已安装的 Kafka 集群。
点您要配置的 Kafka 集群的名称查看其详情。
在这个示例中,我们使用名为
my-cluster
的 Kafka 集群。-
选择 Kafka 集群的
my-cluster
的 YAML 页面。 添加路由侦听器配置,以创建名为
listener1
的 OpenShift 路由。侦听器配置必须设置为
route
类型。您可以在 Kafka 配置中的listeners
中添加监听程序配置。外部路由监听程序配置
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: amq-streams-kafka spec: kafka: # ... listeners: # ... - name: listener1 port: 9094 type: route tls: true # ...
客户端通过端口 443 连接默认的路由器端口,但流量会被路由到您配置的端口,本例中为 9094。
- 保存更新的配置。
选择 Kafka 集群
my-cluster
的 Resources 页面,以查找客户端需要的连接信息。在 Resources 页面中,您将查找路由监听程序和您连接到 Kafka 集群所需的公共集群证书的详情。
-
点为 Kafka 集群创建的
my-cluster-kafka-listener1-bootstrap
路由名称来显示路由详情。 记录主机名。
主机名在 Kafka 客户端中使用端口 443 指定,作为连接到 Kafka 集群的 bootstrap 地址。
您还可以通过进入到 Networking > Routes 并选择
amq-streams-kafka
项目来找到 bootstrap 地址。或者,您可以使用
oc
工具提取 bootstrap 详情。提取 bootstrap 信息
oc get routes my-cluster-kafka-listener1-bootstrap -o=jsonpath='{.status.ingress[0].host}{"\n"}'
返回到 Resources 页面,然后点
my-cluster-cluster-ca-cert
的名称以显示用于访问 Kafka 集群的 secret 详情。ca.crt
证书文件包含 Kafka 集群的公共证书。您需要证书才能访问 Kafka 代理。
生成
ca.crt
公共证书文件的本地副本。您可以复制证书的详细信息,或使用 OpenShift
oc
工具提取证书。提取公共证书
oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > ca.crt
使用
keytool
为公共集群证书创建本地信任存储。创建本地信任存储
keytool -keystore client.truststore.jks -alias CARoot -import -file ca.crt
出现提示时,创建用于访问 truststore 的密码。
truststore 在 Kafka 客户端中指定,用于身份验证对 Kafka 集群的访问。
现在,您已准备好开始发送和接收信息。
第 5 章 从主题发送和接收信息
向在 OpenShift 上安装的 Kafka 集群发送或接收信息。
此流程描述了如何使用 Kafka 客户端生成和使用信息。您可以将客户端部署到 OpenShift,或将本地 Kafka 客户端连接到 OpenShift 集群。您可以使用其中一个或这两个选项来测试 Kafka 集群安装。对于本地客户端,您可以使用 OpenShift 路由连接访问 Kafka 集群。
您将使用 oc
命令行工具来部署并运行 Kafka 客户端。
先决条件
- 您已在 OpenShift 上创建 Kafka 集群。
- 您已创建了路由,供外部访问在 OpenShift 中运行的 Kafka 集群。
- 您可以从 AMQ Streams 软件下载页面访问 Red Hat AMQ Streams 归档的最新版本。
从部署到 OpenShift 集群的 Kafka 客户端发送和接收信息
将生成者和消费者客户端部署到 OpenShift 集群。然后,您可以使用客户端从同一命名空间中的 Kafka 集群发送和接收信息。部署使用 AMQ Streams 容器镜像来运行 Kafka。
使用
oc
命令行界面部署 Kafka producer。本例部署一个 Kafka 生成者,它连接到 Kafka 集群
my-cluster
名为
my-topic
的主题被创建。将 Kafka producer 部署到 OpenShift
oc run kafka-producer -ti \ --image=registry.redhat.io/amq7/amq-streams-kafka-31-rhel8:2.1.0 \ --rm=true \ --restart=Never \ -- bin/kafka-console-producer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 \ --topic my-topic
- 从命令提示符输入多个信息。
-
在 OpenShift web 控制台中进入到 Home > Projects 页面,然后选择
amq-streams-kafka
项目。 -
从 pod 列表中,点
kafka-producer
以查看 producer pod 详情。 - 选择 Logs 页面,以检查您输入的消息是否存在。
使用
oc
命令行界面部署 Kafka 用户。将 Kafka 使用者部署到 OpenShift
oc run kafka-consumer -ti \ --image=registry.redhat.io/amq7/amq-streams-kafka-31-rhel8:2.1.0 \ --rm=true \ --restart=Never \ -- bin/kafka-console-consumer.sh \ --bootstrap-server my-cluster-kafka-bootstrap:9092 \ --topic my-topic \ --from-beginning
消费者使用生成给
my-topic
的消息。- 从命令提示符,确认您在使用者控制台中看到传入的信息。
-
在 OpenShift web 控制台中进入到 Home > Projects 页面,然后选择
amq-streams-kafka
项目。 -
从 pod 列表中,点
kafka-consumer
查看使用者 pod 详情。 - 选择 Logs 页面,以检查您消耗的消息是否存在。
从本地运行的 Kafka 客户端发送和接收信息
使用命令行界面在本地机器上运行 Kafka 制作者和使用者。
从 AMQ Streams 软件下载页下载并提取 AMQ Streams < version > 安装和示例文件 存档。
将文件解压缩到任何目的地。
打开命令行界面,并使用主题
my-topic
和 TLS 的身份验证属性启动 Kafka 控制台制作者。添加使用 OpenShift 路由访问 Kafka 代理所需的属性。
- 将主机名和端口 443 用于您正在使用的 OpenShift 路由。
使用密码并引用您为代理证书创建的信任存储。
启动本地 Kafka producer
kafka-console-producer.sh \ --bootstrap-server my-cluster-kafka-listener1-bootstrap-amq-streams-kafka.apps.ci-ln-50kcyvt-72292.origin-ci-int-gce.dev.rhcloud.com:443 \ --producer-property security.protocol=SSL \ --producer-property ssl.truststore.password=password \ --producer-property ssl.truststore.location=client.truststore.jks \ --topic my-topic
- 在运行制作者的命令行界面中键入您的消息。
- 按 enter 来发送邮件。
打开新的命令行界面标签页或窗口,并启动 Kafka 控制台使用者来接收信息。
使用与生成者相同的连接详情。
启动本地 Kafka 消费者
kafka-console-consumer.sh \ --bootstrap-server my-cluster-kafka-listener1-bootstrap-amq-streams-kafka.apps.ci-ln-50kcyvt-72292.origin-ci-int-gce.dev.rhcloud.com:443 \ --consumer-property security.protocol=SSL \ --consumer-property ssl.truststore.password=password \ --consumer-property ssl.truststore.location=client.truststore.jks \ --topic my-topic --from-beginning
- 确认您在使用者控制台中看到传入的信息。
- 按 Crtl+C 退出 Kafka 控制台生成者和消费者。
附录 A. 使用您的订阅
AMQ Streams 通过软件订阅提供。要管理您的订阅,请访问红帽客户门户中的帐户。
访问您的帐户
- 转至 access.redhat.com。
- 如果您还没有帐户,请创建一个帐户。
- 登录到您的帐户。
激活订阅
- 转至 access.redhat.com。
- 导航到 My Subscriptions。
- 导航到 激活订阅 并输入您的 16 位激活号。
下载 Zip 和 Tar 文件
要访问 zip 或 tar 文件,请使用客户门户网站查找下载的相关文件。如果您使用 RPM 软件包,则不需要这一步。
- 打开浏览器并登录红帽客户门户网站 产品下载页面,网址为 access.redhat.com/downloads。
- 在 INTEGRATION AND AUTOMATION 目录中找到 AMQ Streams for Apache Kafka 项。
- 选择所需的 AMQ Streams 产品。此时会打开 Software Downloads 页面。
- 单击组件的 Download 链接。
修订于 2022-11-27 07:43:25 +1000