KubeCon EU 2023の気になる発表、ログの圧縮や検索を効率化するCLPなど: Neco Weekly (2023-03-31号)
Neco Weekly (2023-03-31号)
サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。
今回は第27回目の記事となります。
👀 Notable Articles
Reducing Logging Cost by Two Orders of Magnitude using CLP
UberがCLP (Compressed Log Processor) という仕組みを利用して、ログ基盤の改善をおこなっているという記事です。
CLPはログの特徴を生かした方法で圧縮しているため圧縮効率が非常に高く、さらには圧縮したログを展開しなくても検索ができるという特徴があるそうです。
やや長い記事ですが、仕組みが詳細に説明されていてとても面白かったです。
CLPは論文がUSENIX OSDIに通っているので学術的にもしっかりとしたもののようです。
こういう仕組みがGrafana Lokiに入ってくれるとうれしいのですが、検討が進められているかどうかの情報は得られませんでした。
Leverage Phase 2 Plugins API to allow creation and usage of external plugins
前回のNeco Weeklyで、Google Summer Code Program 2023のKubebuilderの開発テーマを紹介しましたが、こちらは2つめのテーマです。
現在Kubebuilderではプラグインを開発およびメンテしやすくする仕組みの開発が進められていますが、このテーマではテストやドキュメントやサンプルを充実させてより使いやすくしていくようです。
マイクロサービスの障害で胃を痛めないための「シン・オブザーバビリティ基盤」をOpenTelemetryで作る
OpenTelemetry, Grafana, Lok, Tempoを利用して、ログとトレース、メトリクスとトレースを関連付ける方法を紹介している記事です。
コーディング方法や設定方法がとても詳しく解説されていてわかりやすい内容でした。
Better gRPC な Connect に乗り換える - Go言語編
grpc-goからconnect-goへのマイグレーションを実行したという記事。
我々も現在はgrpc-goを利用しているので、connect-goを試してみたいと思っているところです。
Last Week in Kubernetes Development
- #113218: Add certificates.k8s.io/v1alpha1 ClusterTrustBundle
KEP-3257で、ClusterTrustBundleという仕組みの開発が進められています。
API ServerやAdmission Webhookなどが利用する証明書を発行した認証局の信頼情報は、現在いくつかの異なる仕組みで配布されていますが、このKEPの提案が実現するとClusterTrustBundleというリソースで配布できるようになるそうです。
kube-proxy の externalTrafficPolicy=Local の改善
我々もexternalTrafficPolicy=Local周りには悩まされることが多いので、とても興味深い記事でした。
🛠️ Tools, Frameworks, Libraries
Vault Secrets Operator: A new method for Kubernetes integration
Hashicorp公式のVault Operatorがリリースされました。
まだベータ版なので機能が限定的な部分もあるようですが、後発なので他のOSSよりも使いやすくなっているのではないかと期待しています。
Grafana Operator v5
これまでGrafana Operatorでは1つのGrafanaしか立てられなかったのですが、v5では複数のGrafanaが立てられるようになるようです。
Boot and upgrade via container images
コンテナイメージからOSの起動をできるようにするプロジェクトとのこと。
通常のコンテナはホストとカーネルを共有していますが、bootcではコンテナイメージに含まれるカーネルを使って起動するようです。
An AI assisted kubectl helper
ChatGPTをつかって、自然言語からkubectlのコマンドを作ってくれるツール。
🤝 Events
KubeCon + CloudNativeCon Europe 2023
KubeCon + CloudNativeCon Europe 2023のスケジュールが公開されていたので、気になる発表をピックアップしてみました。
特に個人的に要注目な発表には★マークをつけています。
-
Updates and Best-Practices in Kubebuilder and Controller-Tools
- Kubebuilderのプラグインの作り方とか。
-
It Is More Than Just Correlation - A Debug Journey
- korrel8: アラート、メトリクス、ログ、トレースなどの異なるデータソース間の情報の相関を見つけるツール。
-
Node Resource Management: The Big Picture
- Kubernetesのリソース管理の全体像を解説
-
How We Securely Scaled Multi-Tenancy with VCluster, Crossplane, and Argo CD
- vCluster、Crossplane、Argo CDを活用したマルチクラスター環境の話。
-
Past, Present, and Future of eBPF in Cloud Native Observability
- eBPFがCilium Hubble、Pixie、Parcaでどのように使われているか、将来どうなっていくかという話。
-
Choose Your Own Adventure: The Treacherous Trek to Development
- アプリケーションを開発してそれを開発環境で動かすというものなんだけど、視聴者の投票によってストーリーが変わるらしい。
-
Argo CD Core - A Pure GitOps Agent for Kubernetes
- Argo CD Coreの話。
-
How to Make Your K8s Cluster Survive When It Has No Internet Access: Airgap Reflection in a Cloud Native World
- インターネットアクセスが制限されている環境でKubernetesクラスタを動かすテクニック
-
The Hacker's Guide to Kubernetes
- Kubernetesを乗っ取るデモ
- ★On the Hunt for Etcd Data Inconsistencies
- etcdのデータ不整合問題への取り組み。
- ★Hazardous Defaults: Managing Cardinality and Performance for Your Logging Stack
- Promtail、Loki、Grafanaでのパフォーマンス問題への取り組み
- ★Tales from on-Call: Fun with Operating Etcd at Scale
- etcdの運用知見
-
Cilium Updates, News, Roadmap, and in the Wild
- Cilium最新情報
-
Defining A Common Observability Query Language and Other Observability TAG Updates
- PromQLやLogQLなどを標準化する話?
- ★Making Sense of Your Vital Signals: The Future of Pod and Containers Monitoring
- コンテナメトリクスについて、詳細な仕組みの解説や、今後Kubernetesでどう変化していくのかという話
-
Adopting Network Policies in Highly Secure Environments
- Cilium Network Policyの話
- ★Unlocking Argo CD’s Hidden Tools for Chaos Engineering - Featuring VCluster and More
- Argo CDのスケール、隠されたツール、カオスエンジニアリングなどいろいろな話
-
Story of Our Transition to a Custom Kubernetes Operator for an API Gateway
- Kubernetes Operator開発の実例
-
Revamping Kubernetes with Contextual and Structured Logging, a Deep Dive
- Kubernetesの構造化ログの話
-
Kubernetes Database Operators Landscape
- Kubernetesのデータベースオペレーターに関するパネルディスカッション
- ★Setting up Etcd with Kubernetes to Host Clusters with Thousands of Nodes
- 数千台規模のノードを扱う環境でのetcdの運用知見
- ★How to Develop a Robust Operator for Day-2 (Lesson Learned on KubeVirt/HCO)
- ステートフルなアプリケーションを管理するオペレーターを管理する中で学んだロバストなオペレーターを開発する際の知見
-
Apiserver-Only Clusters for Fun and Profit
- APIServerだけでオペレーターを実行する話
-
The Day We Delete(d) Production
- プロダクション環境で1/3のワークロードが消える事故が起きたときの話
-
Continuous Profiling Your Production Kubernetes Deployments Running at Scale
- Continuous Profilingの話。
-
Mission-Critical PostgreSQL Databases on Kubernetes
- Kubernetes上で数テラバイトのPostgreSQLを運用している話
-
The Path to Self Contained CRDs
- CELの話
-
1M Lines of YAML: Wrangling Kubernetes Configuration for Hundreds of Teams
- 大規模なマニフェスト管理の話
-
Autoscaling Elastic Kubernetes Infrastructure for Stateful Applications Using Proxyless gRPC and Istio
- HTTP Cookieを使ってステートフルなセッション管理を実現する話
-
Surviving Day 2 - How to Troubleshoot Kubernetes Networking
- Kubernetesネットワークのトラブルシューティング手法を紹介
-
The Next Log4jshell?! Preparing for CVEs with eBPF!
- eBPFを使えばLog4jshellも監視できたんだよという話
-
Tilt Your World! Lessons Learned in Improving Dev Productivity with Tilt
- Tiltを使った環境開発構築の話
-
Effortless Open Source Observability with Cilium, Prometheus and Grafana
- Ciliumのメトリクスやトレースデータを使って、アプリケーションのモニタリングをおこなう話
-
Future of Service Mesh - Sidecar or Sidecarless or Proxyless?
- サービスメッシュにおけるサイドカーレスやプロキシレスなどに関する議論
🐤 Tweets
GitHub Actionsのstepごとの時間の内訳をtracingデータとして出力する
Neco Weekly 2023-02-10号では、CIの実行結果やログをPrometheusやLokiに集めるという記事を紹介しましたが、トレースデータを集めるのもとてもよさそうですね。
これは真似してみたい。
k9sのsternプラグイン
サイボウズラボユースで開発されたルーティングソフトウェア
データセンターネットワークの新しいトポロジー Dragonfly
あとがき
最近、OpenTelemetryの話題をあちこちで見かけるようになってきました。
KubeCon EU 2023でもOpenTelemetryを扱った発表が多い印象です。
流行の兆しが感じられますね。
Discussion