用ROSA构建Kafka应用程序
辛苦了。
今天我在ROSA上尝试构建Kafka应用程序。
不过,我并不是按照教程的方式来做,而是按照自己想要的架构进行操作,希望能对其他人有所帮助。
假如不具备前提条件。
尽管我努力诚实地尝试了一下,但是参考了各方文章并进行了剪切和粘贴,感觉不可避免地有些杂乱。所以,请务必访问这个出色的参考源。因此,我在这里只保留了执行的命令的日志。(这里的目的是为了能够针对所要做的事情进行精确执行,并保持各篇文章的一致性,将其作为备忘录。)
我想要做的事情 (wǒ zuò de
-
- ROSA使いたかった
-
- PythonでKafkaアプリケーション
- コードは内緒なので、Git等に挙げるのではなく、Dockerイメージを利用。ただし、ローカルにDockerBuildの用意はない。(Openshiftでやってくれや、の精神)
参考来源
-
- ROSA構築
Kafka構築(AMQ)
https://kenta-kosugi.medium.com/openshift-amq-streams-apache-kafka-quarkus-で実現するアプリケーション-17481f0dd63d
Kafkaアプリケーション
https://github.com/dpkp/kafka-python
ビルド
https://thinkit.co.jp/article/15696
客户
Windows10
※命令是一样的,所以即使是在Mac上也可以完成。
事前准备 (Shì
如果按照前面提到的参考来源网站进行操作,基本上就可以完成了。
尽管rosa命令和oc命令需要下载,但为了方便起见,我们不将它们添加到路径中。
因为每个命令都是使用相对路径执行的,所以请根据需要进行相应的解读。
AWS方面的准备
-
- AWSコンソールからROSAを開いて、Openshiftの有効化を実行
- CLIをダウンロード(上記の通りパスは通さず解凍するのみです。)
红帽方面的准备
-
- OpenshiftはRedhat製品ですので、Redhat側にアカウント作成が必要です。アカウントは作っておきましょう。
私はRHELをDeveloperで使いたかったので登録済でした。
CLI的准备
CLI的准备工作如下(一口气输入以下命令)。
-
- rosa確認
-
- rosaログイン
-
- ocダウンロード・解凍
- quota確認
# 確認
> .\rosa.exe version
1.0.9
# ログイン
> .\rosa.exe init
### RedhatのページからAPIToken取得 ###
# OCダウンロード
> .\rosa download oc
### ファイルをダウンロードしたら解凍 ###
# quota確認
> .\rosa verify quota --region=ap-northeast-1
### クオータを確認 ###
ROSA构建
现在,由于事前准备工作已经完成,我们可以开始创建ROSA集群了。(非常简单。)
-
- ROSA構築
-
- 管理ユーザ作成
- ログイン
请耐心等待,因为ROSA构建可能需要大约1小时的时间。
# ROSA構築
> .\rosa create cluster --cluster-name rosa-cluster --watch
# 管理ユーザ作成
> .\rosa create admin --cluster=rosa-cluster
# ログイン
### 上記管理ユーザ作成時に" oc login https://----"といった出力が出てくるので、それを実行
### ただし、ここでも絶対パスなので、注意。以下実行例
> .\ oc login https://api.rosa-cluster-----
### また、上記管理ユーザ作成から5~10分ぐらい待つ必要あり。
既经过集群的创建和运营准备,所以接下来(为了后续的Kafka构建),我们登录到网络控制台。
- 以下にアクセスし、左バーからClustersを選択し、作成したクラスターを選択。
-
- 右上に記載のある、OpenConsoleをクリック
- ログイン画面で、上記管理ユーザ作成した時のID/Passwordを入力してログイン
请确保在登录控制台后,可以通过顶部的栏目切换到管理员和开发者模式。
建造已经完成。太简单了以至于让我感到惊讶。能够在几个指令内完成执行真是令人感动。
卡夫卡建立了一個(AMQ)系統。
接下来,我们将在Openshift上构建运行的Kafka。
这次我们将在Openshift上构建AMQStreams(即Apache Kafka)。
以下几乎与下述内容相同,但请注意以下几点。
-
- 事前にプロジェクトを作成しておきます。
左バーのホーム -> プロジェクト 右上のプロジェクトの作成
OperatorHubはOpenshiftのクラスターのコンソールにて、管理者モードで開くことができます。
OperatorHubでいくつか出てきますが、”Red Hat Integration – AMQ Streams”を選択します。
Kafkaを作成するときの名前はこの後使いますので、意識して決めましょう。
よくわからなかったので私は”kafka-service”としてしまいました。今回はこれで進めます。
実施するのは、”AMQ Streams on OpenShift”の項目だけで大丈夫です。”QUARKUS kafka-quickstart のビルドと Docker イメージ化”以降の項目はいったん実施不要です。(今回はPythonを利用するので)
请一定尝试并参考Quarkus上述网站的内容,因为它非常有价值。
卡夫卡应用程序
接下来是关于Kafka应用程序。由于Openshift是基于容器的,所以应用程序是按照常规方式编写的,但最终会被容器化。
再提一个要求,我不想安装Docker,所以请在Openshift上进行构建。
先暫時寫了以下連接到Kafka的程式碼。
由於各種原因,無法張貼完整的文本,如果有需要的話,我可以準備公開。
from kafka import KafkaProducer
broker_host = "kafka-service-kafka-bootstrap:9092"
producer = KafkaProducer(bootstrap_servers=broker_host)
consumer = KafkaConsumer(
"counter",
bootstrap_servers=[broker_host])
关键点是broker_host部分。之前我们创建的Kafka实例是名为”kafka-service”的,所以在末尾加上”-kafka-bootstrap”来配置。
如果上述AMQ构建已完成,我们可以使用这个名字解析。因为在Openshift中,可以通过服务名进行名称解析。
那么,让我们立即进行构建吧。
但是,并不是在本地执行,而是将构建注册到Openshift,并让其执行。
> .\oc.exe new-build --name=<AppName> --strategy=docker --binary --namespace=<ProjectName>
> .\oc.exe start-build <AppName> --from-dir=. --follow --namespace=<ProjectName>
接下来,您可以通过Web控制台注册应用程序。
-
- Openshiftウェブコンソールを開く
-
- 左上のロールにて、Developerを選択する。
-
- 左バーの追加 -> コンテナーイメージを選択
- イメージのデプロイで、「内部レジストリーからのイメージストリームタグ」を選択し、先ほどビルドしたイメージを選択
如果这样做,您将会看到拓扑已打开,并且应用程序正在运行。尽管也可以通过命令完成,但我尝试使用控制台。
如果部署了Web应用程序,您也可以从拓扑图中打开URL。
結束時的清潔打掃
完成验证后,请不要忘记执行以下操作,删除资源。
# 作成リソースの削除
> .\rosa delete cluster --cluster=rosa-cluster --watch
# ROSAの残骸すべて削除
> .\rosa init --delete-stack
结束
你认为怎么样呢?
由于是企业使用,所以文献可能比较少…
然而,我认为作为执行基础,也存在着人权的有与无,
如果能对某人有所帮助,我将感到幸福。