🍉

Neco Weekly (2022-09-08号)

2022/09/12に公開

Neco Weekly (2022-09-08号)

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

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

✨ News

サイボウズサマーインターン2022 報告 〜 Kubernetes基盤開発コース&ストレージコース

https://blog.cybozu.io/entry/2022/09/07/135414

Necoチームとストレージチームにて、2週間のサマーインターンを実施しました。
今年もかなり面白い経験をしてもらえたのではないかと思います。

技術文書の書き方

弊チームの若手メンバー向けに技術文書の書き方勉強会を実施しました。
以下は勉強会で利用した資料です。

勉強会の中では以下のような質疑応答がありました。

  • ランダムメモを書く際の「難しい」の基準は?
    • 自分が難しいと思ったものについて書けば良い。
  • 書いてはいけないドキュメントはある?
    • メンテナンスさえできていれば、基本的には書いていけないものはほとんどない。
  • 文書のメンテナンスは誰がやるべき?
    • ソースコードを変更する際に同じPRでドキュメントも直すべき。ソースコードを書き換えた人がドキュメントも修正する。ドキュメントの修正ができてない場合はレビューで指摘する。
    • ソースコードへの依存が強いドキュメントはメンテが大変なので、できるだけ自動生成に頼る。メンテが難しいものはドキュメントを書かない。
  • 新しいソフトウェアを理解するときはどこから読めばいい?
    • まずはアーキテクチャから理解するのがよい。
  • アーキテクチャを解説している文書がなかったら?
    • 今後ソフトウェアのメンテをしていく上で必要だと判断したなら、後からでも書けば良い。

また、上記の資料の中では紹介されていませんが、cobraというCLIツールを開発するためのフレームワークにも、ドキュメントを自動生成する機能があります。

👀 Notable Articles

READYFORのOSSポリシーを公開しました

https://tech.readyfor.jp/entry/2022/09/01/120000

サイボウズ、ZOZOさん、READYFORさんのOSSポリシーの違いを解説している記事です。
著作権の帰属範囲を図示して解説してくれているので非常に分かりやすいですね。

[Kubernetes 1.25] Alpha: Pod内でのUser Namespaceを試してみた

https://qiita.com/junya19862/items/ca6964baaaaafe603aba

先々週号でも紹介したKubernetes 1.25の新機能であるUser Namespaceを試している記事です。
実際に手を動かして動作確認してくれている記事は非常にありがたいですね。

Introducing Ambient Mesh

https://istio.io/latest/blog/2022/introducing-ambient-mesh/

Istioがサービスメッシュのアーキテクチャとして、Ambient Meshという新しい方式を発表しました。

サービスメッシュのアーキテクチャについては、2022-07-22号2022-08-05号でも紹介してきました。
Ciliumはサイドカーフリーの方式を選べるようになり、一方でLinkerdはサイドカー方式がよいと言っています。
今後どうなっていくのか要注目です。

Kubernetes API Server Bypass Risks

https://kubernetes.io/docs/concepts/security/api-server-bypass-risks/

KubernetesのAPI ServerではRBACやAdmission Webhookを利用することで、誰でも自由にリソースを書き換えることはできないようになっています。
しかし、それらをバイパスして攻撃する手段があります。
このブログ記事ではAPI Serverをバイパスする手段と、それを防ぐための方法について解説しています。

NecoチームではCKEというKubernetesクラスタ構築ツールを自作していますが、上記の記事で紹介されている対策は実施済みなので特に問題なさそうです。

🛠️ Tools

controller-runtime v0.13.0

https://github.com/kubernetes-sigs/controller-runtime/releases/tag/v0.13.0

controller-runtime v0.13.0がリリースされました。
個人的には以下の新機能に注目です。

  • komega: add EqualObject matcher (#1833)

これは、テストを書くときにKubernetesのオブジェクトを比較するためのMatcherの実装です。
オブジェクトを比較するときに一部のメタデータを無視したり、特定のパスのフィールドのみを比較したりできるようです。

あとがき

無事サマーインターンが終了し、チームとしても一息つけそうです。
なお、インターンの課題として開発したKubernetesカスタムコントローラに関しては、改めてブログ等で紹介したいと思っています。

サイボウズ Necoチーム 😺

Discussion