Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AccessPoint Operator on Raspberry Pi

RyuSA
July 21, 2021

AccessPoint Operator on Raspberry Pi

Wi-FiのアクセスポイントをCRDで管理できるようにしたKubernetes Operatorを実装した話です
Kubernetes Meetup Tokyo #43

@bell17 さんのKubebuilder資料:https://speakerdeck.com/bells17/kubebuilder-introduction
ブログ:https://ryusa.hatenablog.com/entry/ap-operator-on-raspberrypi
Gtihub:https://github.com/RyuSA/accesspoint-operator

RyuSA

July 21, 2021
Tweet

More Decks by RyuSA

Other Decks in Technology

Transcript

  1. Financial Service Engineer Java & SpringBoot / TypeScript & React

    Docker / Kubernetes : ryusa_eng RyuSA : RyuSA
  2. そこで、hostapd • hostapd = ワイヤレスネットワークインタフェースをAPモードとして管理してくれるソフトウェア • APモード ≒ Wi-Fiアクセスポイント稼働 •

    設定ファイルでSSIDやパスワード、バンド帯などを指定して起動できる • UNIX SocketでAPの状態を確認することができ、可観測性もGood • Raspberry Pi 4をWi-Fi APとして動かすことができる • ポータビリティ(物理)との相性抜群 • hostapd on ラズパイを寝室に配置して電波弱い問題を解決︕ • 先⼈たちの轍を踏んでいけ……︕
  3. Operatorの実装にはKubebuilderを採⽤ • Kubebuilderを使ってAccessPointリソースを監視するOperatorを実装 • KubebuilderはOperatorを実装するためのフレームワークのひとつ • @bells17 さんがHello worldデモをしてくださったのがきっかけ •

    https://speakerdeck.com/bells17/kubebuilder-introduction • 実際にはAccessPointとAccessPointDeviceの2種類のリソースを実装 • Wi-FiのAPには物理側の情報も必要(インタフェースなど)であるため責任を分離した • AccessPointにはSSIDやパスワード、Wi-Fi APのデプロイ先など「利⽤者」が責任を持つ情報を含ませる • AccessPointDeviceにはインタフェースやブリッジなど「管理者」が責任を持つ情報を含ませる • 正しくリソースを分離できてるか……だれか……
  4. 結論︓たのしかった • つまるところ、Kubernetesをhostapdデーモンのランチャーとして使ったサンプルでした • https://github.com/RyuSA/accesspoint-operator • 実運⽤するのであればk3sなどの軽量なディストリビューションを使う⽅がベター • 実はまだ課題⼭積み •

    エンハンスやバグがちょいちょい残ってる • AccessPointDeviceだけ削除しても対応しているDaemonSetが削除されない • Wi-Fiチップの制限を反映できていない(SSIDの数とか) • 特権PodをバラまくDaemonSetってどうなんだろう…… • 継続して適当に実装できたらなぁと👍