OpenShift AI - 部署动态物体识别应用

OpenShift / RHEL / DevSecOps 汇总目录
说明:本文已经在 OpenShift 4.15 + RHODS 2.7.0 的环境中验证

说明:请先完成《OpenShift AI - 部署静态物体识别 AI 应用》一文的内容。
注意:如无特殊说明,和 OpenShift AI 相关的 Blog 均无需 GPU。

配置 Kafka 环境

创建 Kafka 资源

  1. 使用默认选项安装 AMQ Streams Operator。
  2. 在 object-detect 项目中创建名为 object-detection 的 Kafka 集群实例。
  3. 在 object-detect 项目中创建以下 KafkaTopic 实例。
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: images
  labels:
    strimzi.io/cluster: object-detection
  namespace: object-detect
spec:
  config:
    retention.ms: 604800000
    segment.bytes: 1073741824
  partitions: 1
  replicas: 3
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: objects
  labels:
    strimzi.io/cluster: object-detection
  namespace: object-detect
spec:
  config:
    retention.ms: 604800000
    segment.bytes: 1073741824
  partitions: 1
  replicas: 3
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: notebook-test
  labels:
    strimzi.io/cluster: object-detection
  namespace: object-detect
spec:
  config:
    retention.ms: 604800000
    segment.bytes: 1073741824
  partitions: 1
  replicas: 3
  1. 执行命令查看运行的 kafkatopic。
$ oc get kafkatopic -n object-detect
NAME                                                                                               CLUSTER            PARTITIONS   REPLICATION FACTOR   READY
consumer-offsets---84e7a678d08f4bd226872e5cdd4eb527fadc1c6a                                        object-detection   50           3                    True
images                                                                                             object-detection   1            3					True
notebook-test                                                                                      object-detection   1            3					True
objects                                                                                            object-detection   1            3					True
strimzi-store-topic---effb8e3e057afce1ecf67c3f5d8e4e3ff177fc55                                     object-detection   1            3                    True
strimzi-topic-operator-kstreams-topic-store-changelog---b75e702040b99be8a9263134de3507fc0cc4017b   object-detection   1            3                    True

验证 Kafka 环境

  1. 在 Jupyter Notebook 中克隆 https://github.com/blues-man/object-detection-kafka-consumer。
  2. 打开 object-detection-kafka-consumer 目录下的 1_kafka_consumer.ipynb 和 2_kafka_producer.ipynb 文件,修改 KAFKA_BOOTSTRAP_SERVER 和 KAFKA_SECURITY_PROTOCOL 变量。
KAFKA_BOOTSTRAP_SERVER = os.environ.get('KAFKA_BOOTSTRAP_SERVER', 'object-detection-kafka-brokers.object-detect.svc.cluster.local:9092')
KAFKA_SECURITY_PROTOCOL = os.environ.get('KAFKA_SECURITY_PROTOCOL', 'PLAINTEXT')

其中 KAFKA_BOOTSTRAP_SERVER 变量的值是名为 object-detection 的 Kafka 对象中的 object-detection-kafka-brokers 服务对应的主机名和 tcp-clients 端口。
在这里插入图片描述
在这里插入图片描述

  1. 分别运行 1_kafka_consumer.ipynb 和 2_kafka_producer.ipynb,确认可以向 Kafka 发送和接受消息。
    在这里插入图片描述
    在这里插入图片描述

运行应用

部署新的应用模块

根据下面配置,使用 “从 Git 导入” 的方式部署 object-detection-kafka-consumer 模块。

Git Repo URL :https://github.com/blues-man/object-detection-kafka-consumer
构建器镜像: “Python 3.9 (UBI 8)” 
创建路由:取消选项
CPU资源: 500 millicores - 1000 millicores
内存资源: 2200 Mi - 3000 Mi

为应用模块提供 Kafka 配置

  1. 根据以下 YAML 在 object-detect 项目中创建 Secret,其中 KAFKA_BOOTSTRAP_SERVER 为前面获取到的 object-detection-kafka-brokers 服务对应的地址+端口。
apiVersion: v1
kind: Secret
metadata:
  name: object-detection-kafka
  labels:
    app: object-detection
    app.kubernetes.io/component: object-detection
    app.kubernetes.io/instance: object-detection
    app.kubernetes.io/part-of: object-detection
data:
stringData:
  KAFKA_BOOTSTRAP_SERVER: object-detection-kafka-brokers.object-detect.svc.cluster.local:9092
  KAFKA_TOPIC_IMAGES: images
  KAFKA_TOPIC_OBJECTS: objects
  1. 进入 object-detection-kafka 页面,然后点击 “在工作负载中添加 Secret”。
    在这里插入图片描述
  2. 在弹出窗口中的下拉框中选择 object-detection-ui,然后 “保存”。
    在这里插入图片描述
  3. 这时 object-detection-ui 部署会更新 Pod。
    在这里插入图片描述
  4. 可以在 object-detection-ui 部署的 “环境” 中查看到已添加的名为 object-detection-kafka 的 Secret。
    在这里插入图片描述
  5. 重复以上 2-5 步操作,将名为 object-detection-kafka 的 Secret 添加到 object-detection-kafka-cunsumer 工作负载中。
    在这里插入图片描述
  6. 完成后打开 object-detection-ui 路由地址。
    在这里插入图片描述
  7. 完成后打开 object-detection-ui 路由地址,然后点击下图的图标进入视频模式。在这里插入图片描述
  8. 确认可以对拍摄到的动态物体进行识别。
    在这里插入图片描述

参考

https://redhat-scholars.github.io/rhods-od-workshop/rhods-od-workshop/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值