🐾

Neco Weekly (2022-10-21号)

2022/10/24に公開

Neco Weekly (2022-10-21号)

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

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

👀 Notable Articles

Server Side Apply Is Great And You Should Be Using It

https://kubernetes.io/blog/2022/10/20/advanced-server-side-apply/

Kubernetes の Server-Side Apply (SSA) の利点や、カスタムコントローラや CI/CD などで SSA がどのように活用できるのかを紹介している記事です。

さらに Future work として、metadata.managedFields を解析して誰がどのフィールドでコンフリクトしているかを確認し、コンフリクトを無視するかどうか決定する機能があげられていました。
SSA がより高機能になっていくのは非常に楽しみですね。

Kubernetes: When to Use, and When to Avoid, the Operator Pattern

https://thenewstack.io/kubernetes-when-to-use-and-when-to-avoid-the-operator-pattern/

Kubernetes の Operator を作るとメンテナンスが大変だし、セキュリティが問題になることもあるので、Operator を避けて Helm Chart で済ませたほうが良いケースもあるよという主張の記事。
Neco チームも Operator をたくさん開発していてメンテナンスがそこそこめんどくさいので、この記事の主張に同意できる部分もありますね。

Testing Production Kubernetes Controllers

https://superorbital.io/journal/testing-production-controllers/

Kubernetes のカスタムコントローラのテストとして、Fake client, Evntest, end-to-end Test の3つの方法を紹介している記事。
それぞれの詳しい実装方法や、どのように使い分けると良いのかが紹介されています。

Envoy Gateway

https://gateway.envoyproxy.io/index.html

Envoy による Kubernetes の Gateway API 実装です。

Contour と競合するのかなと思ったのですが、どうやらそうではなさそうです。
以下の記事によると、Contour のメンテナも Envoy Gateway の開発に参加しており、Gateway API の開発は Envoy Gateway として開発し、既存の Contour の開発は今後も継続していくそうです。

https://blogs.vmware.com/opensource/2022/05/16/contour-and-community-build-new-envoy-gateway/

Kubernetes Enhancement Proposals (KEPs)

https://www.kubernetes.dev/resources/keps/

Kubernetes の新機能に対する提案である KEP (Kubernetes Enhancement Proposal) 用の Web サイトが公開されていました。
タイトルや SIG で絞り込むこともできるので便利ですね。

👀 Notable PRs

Cilium: Support DSR with IPIP in CNI mode

Cilium を利用すると kube-proxy を利用せずに Kubernetes のサービスへのアクセスが可能になります。
kube-proxy のように iptables や ipvs ではなく、Cilium では BPF を用いているため、レイテンシーやスループットを大幅に改善することができます。
さらにサービスの定義変更が反映されるまでのオーバーヘッドを小さくできるというメリットもあります。

https://docs.cilium.io/en/stable/gettingstarted/kubeproxy-free/

この kube-proxy replacement の DSR (Direct Server Return) モードを有効にすると、サービスのIPアドレスとポートが SYN パケットの IP ヘッダの Options にエンコードされます。
しかし未知の IP Options が含まれるパケットは、ネットワークスイッチでソフトウェア処理される場合があり、大量のパケットを捌くことができないという問題があります。

そこで以下の PR では、IP over IP (IPIP) トンネリングを利用して、DSR モードを実現しようとしています。

https://github.com/cilium/cilium/pull/18449

残念ながら上記の PR はクローズされてしまっているのですが、Neco チームとしてはこの問題を解決するために Cilium にコントリビュートしていきたいと考えています。

あとがき

いよいよ 10/24 より KubeCon + CloudNativeCon North America 2022 が始まりますね。
Neco Weekly 2022-08-05号で注目セッションをあげているので、よろしければ参考にしてみてください。

https://zenn.dev/cybozu_neco/articles/neco-weekly-2022-08-05#kubecon-+-cloudnativecon-north-america-2022

サイボウズ Necoチーム 😺

Discussion