Neco Weekly (2022-11-18号)
Neco Weekly (2022-11-18号)
サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。
今回は第14回目の記事となります。
👀 Notable Articles
GrafanaとCiliumが戦略的提携。eBPFベースの強力な可観測性のCiliumとGrafanaの統合を推進
Cilium の Hubble-ui と Grafana ダッシュボードが連携できるようになったり、HTTP サーバーのメトリクスが Cilium で収集できたり、Cilium のセキュリティーレイヤーの情報が Grafana で表示できるようになるなど、さまざまな連係がおこなわれるようです。
Neco チームでは Grafana と Cilium のどちらも利用しているので、この連携はとても嬉しいですね。
Live and let live with Kluctl and Server Side Apply
Kluctl というツールでは、Server-Side Apply を活用してマニフェストの適用時にコンフリクトが発生したときの対応を柔軟におこなっているそうです。
どういう実装になっているのかとても気になるので、ソースコードを読んでみたいと思っています。
Run MySQL in Kubernetes: Solutions, Pros and Cons
MySQL Operator の比較記事です。
我々が開発している moco も紹介されていました。こうやって取り上げてもらえるのはとてもありがたいですね。
なお、moco に関して比較表の一部に誤りがあったので、PR を投げて修正してもらっているところです。
Extended DNS error support for Unbound
Unbound 1.16.0 から Extended DNS Errors (EDEs) のサポートが追加されたそうです。
これまでは dig コマンドなどを実行したときにクエリが失敗してもその原因がとても分かりにくかったのですが、この変更によりエラーの理由をテキストで表示させることもできるので、デバッグがやりやすくなりそうです。
kube-scheduler-simulatorを本物のK8sクラスターに繋いでスケジューラ実装のデモを行う
kube-scheduler-simulator を本物の Kubernetes クラスターにつないで、スケジューラーの挙動を可視化するという取り組み。
なるほど、そういう使い方があったか!
Last Week in Kubernetes Development
- #113015: Custom resource encryption
- カスタムリソースも Secret と同じように暗号化して etcd に保存できるようになるそうです。
- #112377: refactor sets use generic
- Kubernetes 内部でも generics の利用が進んでいるようですね。
- Pod Disruption Conditions get added via Server Side Apply to avoid race conditions
- Kubernetes 内部でも Server-Side Apply の利用が進んでいるようですね。
- #113274: [KEP-3521] Part 1: New Pod API .spec.schedulingGates
- finalizer の逆で Pod をスケジュールする前の準備をするときに使える機能のようです。
🤝 Events
Revealing BlueStore Corruption Bugs in Containerized Ceph Clusters
サイボウズ sat さんの Ceph Virtual でのプレゼン動画が YouTube に Upload されました。
KubeCon + CloudNativeCon North America 2022
YouTubeのvideoIDが不正です
KubeCon 2022 の動画も公開されました。
TechFeed Experts Night#7 〜 コンテナ技術を語る
TechFeed Experts Night#7 の動画も公開されていました。
いずれも面白い発表ばかりなのでおすすめです。
📘 Books
Internet Routing with BGP
NecoWeekly 2022-10-07号で紹介した BGP の本が発売されたようです。
お手頃価格。
🌠 Trouble Shooting
etcd の lease が動作しない問題
先日 Neco チームでおこなったトラブルシーティングの様子を紹介したいと思います。
- Kubernetes クラスターの利用ユーザーから
kubectl describe node
が妙に遅いという連絡。 -
kubectl
に-v=10
をつけて詳細なログをみてみると、Event リソースの取得に時間がかかっていることが分かる。 - 次に
kubectl get events
を実行してみると、非常にたくさんの Event が返ってくる。 - Event リソースは本来1時間経つと消えるはずだが、1時間以上前の Event も残っている。
- Event の TTL は、APIServer の
--event-ttl
オプションで指定することができるが、デフォルトの設定となっていることを確認。 - Event が一定時間で消える仕組みは etcd の lease 機能を利用しているので、
etcdctl
コマンドを利用して lease の状況を調査。 - ある lease の remaining がマイナスになっているにも関わらず、レコードが消えずに残っている。
- 問題のあった lease の id を使って etcd のログを調べてみると lease の revoke に失敗しているログが定期的に出力されている。
- そのログメッセージで GitHub を検索したところ、該当する問題が最新の etcd で修正されていることを発見: https://github.com/etcd-io/etcd/pull/13172
- etcd を最新版に更新したところ、Event オブジェクトが1時間で削除され、問題は解決。
まとめ
来週開催される CloudNative Days Tokyo 2022 に向けて、絶賛資料作成中です。
Kubernetes の Admission Webhook に関するディープな話をしたいと思うので、興味のある方はぜひご覧ください。
Discussion