Neco Weekly (2022-08-19号)
Neco Weekly (2022-08-19号)
サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。
今回は第4回目の記事となります。
✨ New Features
Argo CD: Introduces Server-Side Apply as sync option
Argo CD 2.5 でマニフェストを適用する際に Server-Side Apply [1]方式が選べるようになります。
現在の Argo CD では、マニフェストを適用する際に Strategic Merge Patch 方式[2]が利用されています。
Strategic Merge Patch 方式では、前回適用したマニフェストを annotation に保持しています。
そのため、 annotation に保存可能な 256KiB を超えるサイズのマニフェストを適用できないという問題がありました。
CRD や Grafana のダッシュボード設定ファイルは 256KiB を超えることも多く、Argo CD でこれらのマニフェストを扱うためには工夫が必要でした。
Sever-Side Apply 方式であれば 256KiB の制限はなくなり、1MiB 程度のマニフェストでも扱えるようになります。
とても欲しかった機能なのでリリースが待ち遠しいです。
👀 Notable Articles
For the love of god, stop using CPU limits on Kubernetes
Kubernetes で Pod には CPU Limits を指定するなという主張です。
CPU Limits を指定すると、ノード単位では CPU に空きがあってもスロットリングが発生しパフォーマンスを劣化させるケースがあります。
一方で、CPU Requests を指定していれば、cgroup の cpu.shares
(cgroup v2 では cpu.weight
) により、最低限の CPU 割り当ては保証されます。
そのため、CPU Limits は指定せず、 CPU Requests のみを指定しておくのがよいと主張しています。
とはいえ、CPU Limits を指定しないと Pod の QoS Class を指定できず、CPU の占有(CPU Pinning)もできなくなってしまうので、単純に CPU Limits の指定をやめるというわけにはいきませんね。
📘 Books
The BDD Books - Discovery
Neco チームでは、普段テストを書くときに Ginkgo という BDD(Behavior Driven Development) フレームワークを使っているのですが、そういえば BDD についてちゃんと理解していないなと思い、この本を手に取りました。
この本によると、BDD はテスト手法ではなく、開発側とビジネス側が協調するための開発スタイルであるとのことでした。
Ginkgo を使っているだけでは BDD をやってるとは言えないということですね。
とはいえ、ユースケースを発見し、それを定式化して、自動テストに落とし込むというスタイルは、普段我々がおこなっている開発スタイルとも近いものがあり、参考になる点もいくつかありました。
ちなみに、我々が Ginkgo を選んだのは Kubebuilder が採用していたからなのですが、Kubebuilder では以下のような理由で Ginkgo を採用したようです。
🛠️ Tools, Frameworks, Libraries
KUTTL
Kubernetes Operator をテストするためのツール。
入力となるマニフェスト、Kubernetes オブジェクトに対する操作、期待する結果をすべて YAML 形式で宣言的に書くことができるようです。
実際に使ってみないと使い勝手は分かりませんが、簡易的なテストを書きたい場合には便利なのかもしれません。
🤝 Events
CloudNative Security Conference 2022
-
Simplify Cloud Native Security with Trivy
- Trivy によるセキュリティ対策の話
- Trivy ってコンテナイメージのセキュリティチェックツールだと思ってたんですが、それ以外にもいろんなスキャンができると知って驚きました。
-
eBPFで実現するコンテナランタイムセキュリティ
- eBPF の基本的なところから丁寧に解説されていました。
Black Hat 2022
- Blackhat 2022の総括 -トレンドとハイライト
-
Return to sender Detecting kernel exploits with eBPF
- eBPFを使って Kernel Exploit を検知する話。
- 攻撃者が脆弱性を利用してカーネルに侵入したら eBPF を無効化する方法はいくつもあるし、パフォーマンスへの影響も大きい。
最近は様々な分野で eBPF が利用されはじめていますが、2022-08-05号で紹介したようにサービスメッシュのサイドカーレス方式に関する問題などもありましたし、どこでも利用できる万能の技術ではないんだなあという感想を持ちました。
あとがき
8月22日から、サイボウズサマーインターン2022 Kubernetes基盤コースが始まります。
このインターンの学生さん向けにGinkgo/Gomegaを利用したKubernetes Operatorのテスト手法について書きました。
学生さん向けとは言いつつも、面白いネタもいくつか紹介しているので、ぜひご覧ください。
Discussion