KubeCon NA 2023 のセッション紹介など: Neco Weekly (2023-11-10号)
Neco Weekly (2023-11-10号)
サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。
今回は第44回目の記事となります。
👀 Notable Articles
Kubernetes And Kernel Panics
カーネルパニックが発生してノードが落ちたときに、その上で動いてた Pod がなぜ落ちたのか分からず困ってしまうことがあります。
Netflix では、 netconsole という仕組みを使ってカーネルパニックが起きたという情報を UDP で送信し、そのメッセージを受け取ったコントローラが対象のノード上の Pod のアノテーションに落ちた理由の情報を付与する仕組みを作っているそうです。
ハードウェアのタイムスタンプを使用してネットワークの待ち時間を測定する方法
2 つのノード間のネットワークレイテンシは ping コマンドを使って計測できますが、 ping の結果からカーネルや NIC 内でパケットの処理にどれだけの時間を使っているかという情報を得ることはできません。
この記事では、ハードウェアタイムスタンプを使うことでそれらの情報を得る方法について記事で紹介しています。
Upgradable Read Write Lock for Go
Redis Server の実装では、 SUNIONSTORE, SDIFFSTORE, ZDIFFSTORE などの重たい処理の中でロックしているが、読み取った値処理する時間が長いだけで実際の書き込み処理にはそんなに時間がかかっていません。
しかし標準の RWMutex では、書き込み時だけ Lock することはできないので、全体を Lock する必要がありパフォーマンスがでないという問題があります。
そこで、 Read Lock から Write Lock に途中でアップグレードできる Lock の仕組みを作った話を紹介している記事です。
🛠️ Tools, Frameworks, Libraries
Kubernetesスペシャリストが注目する関連ツール探求
「Kubernetesスペシャリストが注目する関連ツール探求」という連載が始まるとのことでとても楽しみです。
KRR は Neco Weekly 2023-04-28号 でも紹介していて、気になっているツールです。
Mesh your Kubernetes cluster to the rest of your network with the Tailscale Kubernetes operator
Tailscale の Kubernetes コントローラが公開されました。
LoadBalancerService で spec.loadBalancerClass: tailscale
を指定すると、 Tailscale のネットワークに接続される Service が作成されるようになります。
これにより、 Service をインターネットに公開はしたくないけど EC2 等パブリッククラウドからの通信をしたい場合などにとても便利そうですね。
Stop Setting CPU and Memory Requests in Kubernetes
Kubernetes でユーザーに Pod の CPU/Memory を設定させるのは柔軟じゃないし、プラットフォームとして抽象化した機能を提供するべきではないかという話です。
この記事で紹介されている StormForge という製品を使うと、機械学習を使って適切な Requests/Limits を設定してくれるようです。
🤝 Events
KubeCon + CloudNativeCon NA 2023
KubeCon + CloudNativeCon NA 2023 が開催されました。
また、セッションの動画は YouTube で公開されています。
興味深かった発表をいくつか紹介します。
Building Better Controllers - John Howard, Google
Istio を例に挙げ、Kubernetes のコントローラー開発は難しいという話をしています。
そこで Istio 向けに効率的にコントローラーを作るためのフレームワークを開発しているそうです。
Collection インタフェースにより、 Informer、メモリ、ファイルなどのインプットを共通的に扱えたり、差分をうまくマージして適用するような機能があるそうです。
PR はこちらのようです: https://github.com/istio/istio/pull/45426
How to Carefully Replace Thousands of Nodes Every Day - Adrien Trouillaud & Ryan McNamara, Datadog
アップグレードや退役や故障対応によるノード交換を自動化する方法についての発表です。
故障の検出方法や、PDB を利用した再起動の制御など、非常に興味深い内容になっています。
あとがき
2023/12/11~12に開催される Cloud Native Days Tokyo 2023 において、弊チームのメンバーが以下のセッションを行います。
Cilium で発生したトラブルをどのように解決し、コントリビュートしていったのかを紹介する予定です。
興味のある方はぜひご参加ください。
Discussion