コンテナレジストリ高速化の話など: Neco Weekly (2023-09-22号)
Neco Weekly (2023-09-22号)
サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。
今回は第42回目の記事となります。
👀 Notable Articles
大規模Kubernetesクラスタにおけるコンテナレジストリの高速化
我々のチームで受け入れていたインターンシップの学生さんが、その成果をブログにまとめてくれました。
Spegel というストレートレスなコンテナレジストリミラーの導入と、Kubernetes v1.26 で導入された Pod Scheduling Readiness という機能を使ったカスタムコントローラーの開発をおこない、コンテナレジストリの性能計測まで実施しています。
CVSSとその限界
脆弱性を判断するときに CVSS のスコアだけだとなかなか判断が難しいことが多いです。
一方、EPSS では、機械学習を利用してその脆弱性が30日以内に悪用される可能性を数値で表してくれるそうです。
この数値も絶対視できるものではないそうですが、脆弱性をチェックする際には参考にしたいと思います。
Organizing a Go module
Go のプロジェクトのディレクトリ構成についての公式記事が出ていました。
internal パッケージについての言及が多めですね。
Platform Engineering w/ jacopen | fukabori.fm
Platform Engineering の基礎的なところから実践的な話まで、非常に分かりやすくて面白い内容でした。
Kubernetesクラスタ内に大量のServiceリソースがあるとNginxコンテナが起動しなくなる
Kubernetesはデフォルトの挙動として、同じNamespace内にあるServiceリソースの数だけ、コンテナに環境変数を設定します。
また、Nginxコンテナは起動時に、テンプレートファイル内に記載されている環境変数の置換を実行します。envsubst: Argument list too longは、置換する環境変数の量が閾値より多いときに出るエラーです。
トラブルシューティングの記事は面白いですね。
カーネルのレイヤーまで降りていって調査してるのもすごいです。
Soft Reboot
systemd v254 から導入された soft reboot に関しての資料です。
soft reboot を利用することで、カーネルを再起動させずにユーザ空間のみの再起動ができるようになるそうです。
From RSS to WSS: Navigating the Depths of Kubernetes Memory Metrics
コンテナのメモリ使用量を監視する際に container_memory_usage_bytes
を利用すると、期待しているものとは違う結果が得られる場合があります。
多くの場合は container_memory_usage_bytes
から container_memory_cache
を引いた値を利用するのがよさそうです。
KEP: SySched - System call-based scheduling
Pod が使用するシステムコールのリスクに基づいて、Pod のスケジューリングを行うスケジューラプラグインの KEP です。
これを利用することで、ホストカーネルを侵害するような Pod を特定のノードに集めておいて、問題が起きたときの被害の影響範囲を少なくすることができるそうです。
Grafana Pyroscope を用いて Go のアプリケーションで継続的プロファイルしてみた
さっそく Pyroscope v1.0 を試してみた記事です。
フレームグラフの diff が Grafana で確認できるのはとてもよさそうですね。
【インターンレポート】ブローカーの開発でPyroscopeのスケールアウトを可能にした話
こちらは旧 Pyroscope をスケールアウトさせるためにブローカーを開発したという話。
Pyroscope v1.0 の登場でブローカーは不要になったようですが、こういった取り組みをインターンで経験できるのはとてもよいですね。
🛠️ Tools, Frameworks, Libraries
Kustomize v5 の互換性問題
Kustomize v5 では patchesStrategicMerge
が Deprecated となり patches
を利用することが推奨されています。
しかし、現状の patches
では、指定したファイルに複数のリソースのパッチを入れることができません。
以下の PR がリリースされるのを待つ必要がありそうです。
あとがき
今年のインターンシップは期間を2週間から3週間に延ばし、内容もよりチャレンジングなものにしてみました。
メンターの準備も大変だったのですが、我々にとっても非常に有意義な結果を得ることができ、とても良いインターンシップになったと思います。
Discussion