用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を入力してログイン

请确保在登录控制台后,可以通过顶部的栏目切换到管理员和开发者模式。

image.png

建造已经完成。太简单了以至于让我感到惊讶。能够在几个指令内完成执行真是令人感动。

卡夫卡建立了一個(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

结束

你认为怎么样呢?
由于是企业使用,所以文献可能比较少…
然而,我认为作为执行基础,也存在着人权的有与无,
如果能对某人有所帮助,我将感到幸福。

广告
将在 10 秒后关闭
bannerAds