Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
IoTっぽいアプリをk3s+Raspberry Piで実行する
Search
taiko19xx
April 26, 2019
Technology
0
330
IoTっぽいアプリをk3s+Raspberry Piで実行する
2019/04/26のCloud Native Sendai #1で発表した資料です
taiko19xx
April 26, 2019
Tweet
Share
More Decks by taiko19xx
See All by taiko19xx
Bedrockで遊ぼう! 短期間で色々開発してみた
taiko19xx
1
130
Incident Managerでインシデント発生時のエスカレーションを自動化する
taiko19xx
0
240
LambdaカスタムランタイムでPHPでもサーバーレス!
taiko19xx
0
76
ハニーポットから見たWebサーバへの攻撃
taiko19xx
0
2.8k
PHPなプロダクトをAmazon ECSで開発運用してる話
taiko19xx
0
1.2k
RaspberryPi+AWSでIoT(っぽ い)GPSロガーを作ってみた
taiko19xx
0
1.5k
PHPからWin32APIをいじってみた
taiko19xx
0
1.7k
Other Decks in Technology
See All in Technology
Grafana MCP serverでなんかし隊 / Try Grafana MCP server
kohbis
0
260
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
Roo CodeとClaude Code比較してみた
pharma_x_tech
1
170
Agent Development Kit によるエージェント開発入門
enakai00
19
2.7k
AIエージェントのフレームワークを見るときの個人的注目ポイント
os1ma
1
400
Kubernetesで作るAIプラットフォーム
oracle4engineer
PRO
2
180
単一Gitリポジトリから独立しました
lycorptech_jp
PRO
0
370
libsyncrpcってなに?
uhyo
0
250
Introduction to Bill One Development Engineer
sansan33
PRO
0
240
プロジェクトマネージャーに最後まで残るたった一つの仕事は交渉
ichimichi
1
180
Autonomous Database サービス・アップデート (FY25)
oracle4engineer
PRO
1
730
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
6.8k
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Invisible Side of Design
smashingmag
299
50k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
2
110
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Rails Girls Zürich Keynote
gr2m
94
13k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Code Review Best Practice
trishagee
68
18k
Building an army of robots
kneath
306
45k
GitHub's CSS Performance
jonrohan
1031
460k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Transcript
IoT”っぽい”アプリを k3s+Raspberry Piで実行する Cloud Native Sendai #01@2019/04/26 @taiko19xx / 木村
俊彦
自己紹介 • 木村俊彦(@taiko19xx) • 主にAzure/AWSの設計構築 • PHP/Node.jsでのバックエンド構築も • 技術系同人誌サークル「杜の都の開発室」主宰 •
https://morinomiyakono.booth.pm/ • 「技術書典」というイベントで本を出しています
None
いつものように Raspberry Piで遊んでいた ある日のこと…
ある日のこと • Raspberry PiでDockerは動く • Kubernetesは動くのか? • 実用的かは別 • 動いたとしてもRaspberry
Piには重荷と予想
None
None
ある日のこと • Kubernetesも思っていた以上の低負荷で動かせる事が判明 • コンテナ動かすだけであれば簡単にできる • せっかくなのでRaspberry Piらしい何かをしたい
“GPIO”にアクセスして “Lチカ”させられないか?
What is GPIO/Lチカ • GPIO = General-purpose input/output • 汎用入出力のこと
• Raspberry Piに沢山ついている”ピン” • Lチカ = LEDチカチカ • LEDを点滅させること • 電子工作の第一歩として有名
KubernetesのPodから 物理デバイスにアクセスする 必要がある
実現するための唯一にして 最大のハードル
本当に可能か?
今回の実験環境 • Raspberry Pi 3B • Raspbian Stretch • k3s
v0.4.0 • Kubernetes v1.14.1-k3s.4 • Docker v18.09.0 • 比較用 • k3sにcontainerdが含まれているので、Docker自体は不要
Docker単体ではどうか? • 可能 • $ docker run -it --rm --device
/dev/gpiomem raspbian/stretch /bin/bash • --device /dev/gpiomem でGPIOが割り当てられてるメモリ領域 へのアクセスを可能にする
None
None
しかしKubernetesには --device相当のオプションが ない
None
None
行けるかと思ったが ダメだった…
最終手段、Privileged • 特権モードを有効にしてホストのデバイスの操作ができる • https://kubernetes.io/docs/concepts/workloads/pods/pod/#priv ileged-mode-for-pod-containers • Kubernetesでは1.11以降でサポート • Dockerにもある(--privileged)
• 全デバイスにアクセスできるので諸刃の剣
None
Lチカのデモ
Kubernetes on Raspberry Piは 実用的か?
正直(まだ)実用的ではない
実用的ではない理由 • 利用できるコンテナが少ない • Raspberry PiはARM(armhf/arm64)アーキテクチャ • 既存のコンテナ(x86_64)が利用できない • 種類がない訳ではない
• カスタマイズする場合のビルドも大変 • Raspberry Pi(もしくは他のARMデバイス)上でビルドする • もしくはクロスプラットフォームビルドを行う必要がある • まだまだ重い • K3sを使えば大分軽くはなるが…
Kubernetesを使うことによる良い面 • 使い慣れたkubectlでデプロイや操作ができる • ビルド問題が解決できている前提 • 管理に利用するツールが一括で済む • SSHで接続してログやサービスの状態を確認する手間が減る •
Podが落ちても自動でリトライしてくれる • スタンドアロンで動作させる時は便利 • IoT機器は基本スタンドアロン
結論 • 何とか物理アクセスは可能 • 1GBしかメモリを積んでいない環境ではまだまだ重荷 • KubernetesやK3sのこれからに期待 • Raspberry Piのような制限のある環境で試行錯誤するのは楽しい
• 休み中のコンテナ入門にいかがでしょうか • 頑張ればクラスタも組めます
ありがとうございました