[はじめてのRDBOX(9)]rdbox使ってみました:RDBOX(k8s) Publisher アプリ編


はじめに

ROS の初心者が、とっても簡単なROSアプリを作ってみました。(連載記事です)

【ご注意】

  • 画像撮影用アプリは、永遠に撮影を続けます
  • 前回の記事で稼働させた Subscriber アプリは永遠に画像を保存し続けます
  • 当然、ストレージ容量は無限ではありません
  • タイミングを見計らって、今回の一連記事で稼働させるアプリは停止してください

今回の記事の概要

構築手順

k8sラベル付け

  • k8s master に ssh
  • アプリを配置する k8s ノード(今回は Raspberry PI)を確認(get nodes)
  • アプリを配置する k8s ノードを制御するため、k8sノードにラベル付け(label node 'LABEL')
  • 以下(↓)は具体的な手順
$ ssh -i YourKeyFile -l ubuntu YourKubeMaster
Enter passphrase for key 'YourKeyFile':
$ sudo kubectl --kubeconfig /etc/kubernetes/admin.conf get nodes
$ sudo kubectl --kubeconfig /etc/kubernetes/admin.conf label node YourRaperryNode01 node.rdbox.com/type=picam

マニフェスト(yaml)作成

  • 画像撮影用 ROS アプリ(Publisher)コンテナの稼働設定
  • 以下(↓)は具体的な手順
$ ./picam-app-pub-photo.sh | tee picam-app-pub-photo.yaml
#### ここにマニフェスト(yaml)が表示されます(ファイルにも保存される) ###

マニフェスト(yaml) Upload

  1. RDBOX(k8s)のダッシュボードに接続
  2. [+ CREATE] をクリックし、picam-app-pub-photo.yaml を Upload(先ほど表示された YAML データを Copy&Paste しても可)
  3. Pod が配備されるまで、しばらく待つ
  4. 蓄積画像の確認

マニフェスト(yaml)の要点

  • [template]-[spec]-[volumes] にて、デバイスファイル /dev/vchiq をコンテナから利用(mount)可能に設定
    • 画像撮影用 ROS アプリ(Publisher)コンテナから、カメラを操作するため
  • 画像撮影用 ROS アプリ(Publisher)コンテナにて、上記デバイスファイルをマウント
        volumeMounts:
        - mountPath: *var_path_vchiq
          name: picam-dev-photo
  • 画像撮影用 ROS アプリ(Publisher)コンテナにて、特権アクセス(privileged)を許可する
    • デバイスファイル /dev/vchiq が使用可能となる
        securityContext:
          privileged: true

記事リスト

  1. 概要編
  2. 画像参照アプリの構築編
  3. ROSパッケージ作成編
  4. ROS Subscriber編
  5. ROS Publisher編
  6. DockerImage 作成編
  7. RDBOX(k8s) ポート転送編
  8. RDBOX(k8s) Subscriber アプリ編
  9. RDBOX(k8s) Publisher アプリ編(← 今回の記事)
  10. 雑記