📌

TiltによるKubernetesコントローラーの高速開発など: Neco Weekly (2023-03-03号)

2023/03/06に公開

Neco Weekly (2023-03-03号)

サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。

今回は第25回目の記事となります。

👀 Notable Articles

Rapid Kubernetes Controller Development with Tilt

https://skarlso.github.io/2023/02/25/rapid-controller-development-with-tilt/

Kubernetes のカスタムコントローラー開発で Tilt を利用する際の様々なテクニックを紹介している記事です。
Tiltfile 内で利用する設定をファイルから読み込む方法、Flux を使う方法、Live Update の方法、delve によるデバッグの方法などが紹介されています。

私も以前おなじような記事を書いたのですが、上記の記事のほうが詳細に書かれているのでおすすめです。

https://zenn.dev/zoetro/articles/fba4c77a7fa3fb

Introducing KWOK: Kubernetes WithOut Kubelet

https://www.kubernetes.dev/blog/2023/03/01/introducing-kwok/

NecoWeekly 2022-11-25号 でも介した KWOK の記事です。
ユースケースにも書いてある通り、数千台規模のクラスターの検証が少ないリソースの環境でも試せるというのがとても便利ですね。

Introducing Service Weaver: A Framework for Writing Distributed Applications

https://opensource.googleblog.com/2023/03/introducing-service-weaver-framework-for-writing-distributed-applications.html

コードを書くときはモノリスなアプリケーションとして書き、デプロイするときは自動的にマイクロサービスに分割して配置してくれるというフレームワーク。
デプロイ先は現状ではローカルか GKE しかないようですが、Deployer の実装が増えると他のクラウド環境などにも対応できるようです。
軽くドキュメントを見たところ、メトリクスやトレーシングを出力するための API も提供されているようでした。
デプロイ時にコード生成がおこなわれたりするのでデバッグが大変そうな印象ですが、なかなか面白そうなフレームワークです。

Running Databases on Kubernetes

https://questdb.io/blog/databases-on-k8s/

Kubernetes 上でのデータベース運用について論じている記事。
本格的なデータベースの管理には、バックアップ、復元、レプリケーション、高可用性、クラスタリングなどの Day 2 Operations が必要であり、これらは Kubernetes の基本機能だけでは実現できず、オペレーターなどの追加のコードが必要となります。
そのため、Kubernetes 上でデータベースを扱う場合は、時間、経験、パフォーマンス要件、使いやすさ、コストなどを考慮した上で採用しましょう、といった内容でした。

In-place Pod Vertical Scaling feature

http://lwkd.info/2023/20230301

Pod を再起動することなくリソースの割り当てを変更する機能が、ついに Kubernetes 本体にマージされたそうです。
現状はコア機能の実装のみのようですが、今後の展開が楽しみですね。

Introducing the XYZ chart: A three-dimensional way to visualize your data in Grafana

https://grafana.com/blog/2023/02/24/introducing-the-xyz-chart-a-three-dimensional-way-to-visualize-your-data-in-grafana/

Grafana で3次元のグラフを表示するパネルの紹介。
3次元データが有用なケースはあまりピンときませんが、Grafana の表現力がますます向上していてとてもいいですね。

🛠️ Tools, Frameworks, Libraries

manifests.io

https://www.manifests.io/kubernetes/1.26

Kubernetes の公式ドキュメントのロードが重たいため、軽量なものをつくったそうです。
任意の CRD にも対応可能なので、自作のカスタムコントローラーのドキュメントページに使うのもよいかもしれません。

Markdown defined task runner.

https://github.com/joerdav/xc

Markdown に記述しておいたタスクを順次実行してくれるツール。
手動オペレーションするときにこういうツールがあると便利なんですよね~。

📘 Books

入門モダンLinux

https://satoru-takeuchi.hatenablog.com/entry/2023/03/01/224800

来月出版される Learning Modern Linux の翻訳本。
「ちょうどいい感じのちょっとだけマニアックな知識」を概観できる書籍とのこと。
とても面白そうです😀

🤝 Events

Kubernetes基盤を自律的に支えるController化の実装Tips @Forkwell エンジニア文化祭 2023

https://speakerdeck.com/masayaaoyama/forkwell-202303-amsy810-k8s

Kubernetes のカスタムコントローラーで実装すべき内容がカテゴライズされて丁寧に説明されていて、わかりやすくてとてもよい資料でした。

あとがき

CI/CD Conference 2023 前夜祭 (前夜ではない) において弊チームのメンバーが発表をおこないました。
発表を見られなかった方も、資料が公開されているので是非ご覧になってみてください。

https://speakerdeck.com/yamatcha/onpuremisuk8sji-pan-womarugoto-vmdejia-xiang-hua-sitajian-zheng-huan-jing-tosonohuo-yong

サイボウズ Necoチーム 😺

Discussion