Ciliumに提案した実装がマージされた話など: Neco Weekly (2023-04-07号)
Neco Weekly (2023-04-07号)
サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。
今回は第28回目の記事となります。
👀 Notable Articles
Cilium: Support DSR with Geneve dispatch
我々は Cilium の DSR モードを利用しているのですが、その実装でパフォーマンスに関わる問題が発生していました。
そこで Geneve というトンネリング技術を利用した実装に切り替える Proposal をおこない、その実装が無事にマージされました。
この変更は次の Cilium 1.14 に含まれる予定です。実にめでたいです🎉
昨年から Cilium に数多くのコントリビューションをしていますが、CFP と呼ばれる提案を書いたのは初めてで、実装の規模もこれまでで最も大きいものでした。
Neco チームでは Cilium をがっつり利用しており、これからもいろいろと新機能を提案していくことを計画しています。
Kubernetes 1.27 – What’s new?
恒例の sysdig さんの Kubernetes 1.27 解説記事です。
今回は「#1287 In-Place Update of Pod Resources」や CEL の機能強化、「#3335 Allow StatefulSet to control start replica ordinal numbering」などが気になります!
入門 継続的プロファイリング
まだそれほどメジャーではないですが、要注目の技術「継続的プロファイリング」の記事です。
Parca, Pixie, Grafana Pyroscope という3つのツールの特徴をそれぞれ紹介していてとてもわかりやすい内容でした。
ArgoCDからDatadogに送るログを削減するテクニックと、苦労したこと
コスト削減のため Argo CD のログを削減する話です。
ArgoCD関連のログが毎日300万件以上送られていることがわかりました。
1日300万件ってかなり多いなと思って自分たちの環境を覗いてみたら、1日400万行以上のログが出ていました。
Argo CD はかなりログが多いですね。
かといってINFO ログを削ってしまうと、パフォーマンスの問題が発生したときの調査が難しくなってしまうので、悩ましいところです。
ArgoCDが内部的にlogrusとklog/glogという別のロギングライブラリを利用していることです。
これは困りますよね。
klog は logr インタフェースで別のロガーにログを書き出すこともできるので、いい感じにログをまとめてほしいところです。
The Importance of Logging
どのようなログを出すと良いかという記事です。
この記事は Rust がベースになってますが、他の言語でも参考になる内容です。
例えば URL にクエリを投げるときや、文字列を組み立てるとき、設定を読み込むときなどはログを出すとよいといったことが書かれています。
kube-state-metrics でカスタムリソースのメトリクスを取得する方法
kube-state-metrics でカスタムリソースのメトリクスを取得する方法が詳細に解説されています。
ちゃんとしたドキュメントが用意されていないそうなので、こういう情報はとてもありがたいですね。
自分で開発しているカスタムコントローラーであれば自前でメトリクスを出せば良いのですが、サードパーティのカスタムリソースのメトリクスを収集したいときはとても便利そうです。
🛠️ Tools, Frameworks, Libraries
Grafana Loki 2.8 release: TSDB GA, LogQL enhancements, and a third target for scalable mode
Grafana Loki 2.8 の新機能紹介です。
Loki 2.7 で導入された TSDB index が早くも Experimental じゃなくなりました。
その他にも、LogQL に sort や、特定のラベルがついてるログを落とす drop などの新機能が増えたそうです。
Timoni
CUE 言語をベースとした、マニフェストのパッケージマネージャツールです。
Helm だと対応している箇所のパラメータしか書き換えられなかったりするし、Kustomize だとパッチの書き方がちょっと難しかったりするのですが、Timoni だと一部のパラメータだけ書き換えるのが非常にやりやすそうです。
一方で Kustomize では Upstream のマニフェストにそのままパッチを当てられる Off-the-Shelf Configuration が便利なのですが、Timoni の場合は Upstream のマニフェストを CUE に変換する必要がありそうなので、やや面倒かも?
A Tale of Two Container Image Tools: Skopeo and Crane
コンテナイメージを操作するためのツールの紹介記事です。
コンテナイメージのマニフェストや Blob をみたいときなどに便利なツールですね。
特に crane は CLI としてもライブラリとしても使えるそうです。
あとがき
社内の Kubernetes 1.25 の更新作業がようやく終わったと思ったら、早くも 1.27 がリリース。
ついていくのが本当に大変です😂
Discussion