Slide 1

Slide 1 text

© 2020, Ryoma Fujiwara, All Rights Reserved k3sで作ったクラスタ作ったクラスタかったクラスタからクラスタからから PCのカメラを触ってカメラを触ってみる触ってみるってみる Tea pod418 藤原涼馬

Slide 2

Slide 2 text

© 2020 Ryoma Fujiwara, All rights reserved 自己紹介 ● 藤原 涼馬(@RYoMa_0RYoMa_0923) – インフラエンジニア@RYoMa_0東京駅近辺 & フリーランスエンジニア・コンサルタからント(Tea pod 418) – 職歴 ● ユーザ系系SIer R&D (2011年4月~2015年12月) ● インフラエンジニア@RYoMa_0丸の内のカメラを触って内(2016年1月〜) ● フリーランスエンジニア・コンサルタからント(2018年4月~) – 他 ● Rancher JPコアメンバー ● Japan Container Days v18.12 / Cloud Native Days Tokyo セッションスピーカー&運営スタッフスタからッフ ● RancherによるKubernetes活用完全ガイド 著者ガイド 著者(第二部担当)

Slide 3

Slide 3 text

© 2020 Ryoma Fujiwara, All rights reserved 概要 ● k3s*1で作ったクラスタ立ち上げたシングち上げたシングル上げたシングルノげたクラスタからシングルノードk8sクラスタからを触ってみる使ってって ノートPCのカメラを触ってカメラからMJPGを触ってみる配信*2してみます。 最終的にブラウザで動にブラウザ系で作ったクラスタ動画が流れれば成功が流れれば成功流れれば成功れれば成功成功 *1 RancherLabのカメラを触って開発している軽量している軽量k8sディストリビューション(https://github.com/rancher/k3s) *2mjpg-streamerのカメラを触ってフォーク(https://github.com/jacksonliam/mjpg-streamer) を触ってみる使っています

Slide 4

Slide 4 text

© 2020 Ryoma Fujiwara, All rights reserved mjpg-streamer Pod 全ガイド 著者体の構成のカメラを触って構成 mjpg-streamer Container /dev/video0 volume-device mjpg-streamer-lb Service (type: LoadBalancer*) ノード側ののカメラを触って デバイス TCP: 8080で作ったクラスタ外部に公開

Slide 5

Slide 5 text

© 2020 Ryoma Fujiwara, All rights reserved k3sのカメラを触って導入 $ wget https://github.com/rancher/k3s/releases/download/v1.17.0%2Bk3s.1/k3s $ chmod +x k3s $ sudo mv k3s /usr/local/bin/k3s $ sudo k3s server $ sudo k3s kubectl get nodes NAME STATUS ROLES AGE VERSION fujiwara-xps-13-9380 Ready master 82s v1.17.0+k3s.1 $ wget https://github.com/rancher/k3s/releases/download/v1.17.0%2Bk3s.1/k3s $ chmod +x k3s $ sudo mv k3s /usr/local/bin/k3s $ sudo k3s server 別ターミナルで確タからーミナルで作ったクラスタ確認

Slide 6

Slide 6 text

© 2020 Ryoma Fujiwara, All rights reserved mjpg-streamer Podのカメラを触って導入 ● ポイント – 遺憾ながらながらSecurityContextで作ったクラスタprivileged: true ● https://github.com/honkiko/k8s-hostdev-plugin        あたクラスタからりを触ってみる導入するともっとセキュアに導入で作ったクラスタきそう。 – /dev/video0を触ってみるボリュームとしてマウントとしてマウント apiVersion: v1 kind: Pod metadata: name: mjpg-streamer labels: app: mjpg-streamer spec: containers: - image: fufuhu/mjpg-streamer:docker- meetup imagePullPolicy: Always name: mjpg-streamer securityContext: privileged: true ports: - containerPort: 8080 volumeMounts: - mountPath: /mnt/video0 name: volume-device volumes: - name: volume-device hostPath: path: /dev/video0

Slide 7

Slide 7 text

© 2020 Ryoma Fujiwara, All rights reserved Mjpg-streamer-lb (type: LoadBalancer)のカメラを触って導入 ● k3sで作ったクラスタはデフォルトでデフォルトで作ったクラスタtraefikが流れれば成功導入されているのカメラを触ってで作ったクラスタ、デデ フォルトで作ったクラスタtype:Ingressやtype:LoadBalancerが流れれば成功使ってえる apiVersion: v1 kind: Service metadata: name: mjpg-streamer-lb spec: type: LoadBalancer selector: app: mjpg-streamer ports: - protocol: TCP port: 8080 targetPort: 8080

Slide 8

Slide 8 text

© 2020 Ryoma Fujiwara, All rights reserved デモ

Slide 9

Slide 9 text

© 2020 Ryoma Fujiwara, All rights reserved まとめ ● Kubernetesクラスタから内のカメラを触ってノードのカメラを触ってカメラを触ってみる使ってってMJPGのカメラを触って 配信が流れれば成功出来た。たクラスタから。 – 色々仕組みを組み合わせみを触ってみる組みを組み合わせみ合わせると監視カわせると監視カメラやらビデカメラやらビデオ会会 議やらもできそうやらもで作ったクラスタきそうで作ったクラスタすね。 – OpenCVと組みを組み合わせみ合わせると監視カわせるといろいろと面白いことをでいことを触ってみるで作ったクラスタ きそうで作ったクラスタすね ● k3sで作ったクラスタ作ったクラスタかる!軽量k8sエッジコンピューティング環境(組みを組み合わせみ合わせると監視カわせてみたクラスタから例) https://speakerdeck.com/fufuhu/k3sdezuo-ru-qing-liang-k8setuzikonpiyuteinguhuan-jing

Slide 10

Slide 10 text

© 2020 Ryoma Fujiwara, All rights reserved 参考 ● 今回利用したクラスタからソースコード – https://github.com/Fufuhu/docker-camera-manipulation