🌠

Neco Weekly (2022-11-18号)

2022/11/18に公開

Neco Weekly (2022-11-18号)

サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。

今回は第14回目の記事となります。

👀 Notable Articles

GrafanaとCiliumが戦略的提携。eBPFベースの強力な可観測性のCiliumとGrafanaの統合を推進

https://www.publickey1.jp/blog/22/grafanaciliumebpfciliumgrafana.html

Cilium の Hubble-ui と Grafana ダッシュボードが連携できるようになったり、HTTP サーバーのメトリクスが Cilium で収集できたり、Cilium のセキュリティーレイヤーの情報が Grafana で表示できるようになるなど、さまざまな連係がおこなわれるようです。
Neco チームでは Grafana と Cilium のどちらも利用しているので、この連携はとても嬉しいですね。

Live and let live with Kluctl and Server Side Apply

https://kubernetes.io/blog/2022/11/04/live-and-let-live-with-kluctl-and-ssa/

Kluctl というツールでは、Server-Side Apply を活用してマニフェストの適用時にコンフリクトが発生したときの対応を柔軟におこなっているそうです。
どういう実装になっているのかとても気になるので、ソースコードを読んでみたいと思っています。

Run MySQL in Kubernetes: Solutions, Pros and Cons

https://www.percona.com/blog/run-mysql-in-kubernetes-solutions-pros-and-cons/

MySQL Operator の比較記事です。
我々が開発している moco も紹介されていました。こうやって取り上げてもらえるのはとてもありがたいですね。

なお、moco に関して比較表の一部に誤りがあったので、PR を投げて修正してもらっているところです。
https://github.com/percona/k8spxc-docs/pull/9

Extended DNS error support for Unbound

https://blog.apnic.net/2022/11/14/extended-dns-error-support-for-unbound/

Unbound 1.16.0 から Extended DNS Errors (EDEs) のサポートが追加されたそうです。
これまでは dig コマンドなどを実行したときにクエリが失敗してもその原因がとても分かりにくかったのですが、この変更によりエラーの理由をテキストで表示させることもできるので、デバッグがやりやすくなりそうです。

kube-scheduler-simulatorを本物のK8sクラスターに繋いでスケジューラ実装のデモを行う

https://www.miraxia.com/engineers-blog/demonstrating-your-k8s-scheduler-with-kube-scheduler-simulator-in-a-real-cluster/

kube-scheduler-simulator を本物の Kubernetes クラスターにつないで、スケジューラーの挙動を可視化するという取り組み。
なるほど、そういう使い方があったか!

Last Week in Kubernetes Development

http://lwkd.info/2022/20221102

  • #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 の利用が進んでいるようですね。

http://lwkd.info/2022/20221108

  • #113274: [KEP-3521] Part 1: New Pod API .spec.schedulingGates
    • finalizer の逆で Pod をスケジュールする前の準備をするときに使える機能のようです。

🤝 Events

Revealing BlueStore Corruption Bugs in Containerized Ceph Clusters

https://youtu.be/ENvDbgX4n38

サイボウズ sat さんの Ceph Virtual でのプレゼン動画が YouTube に Upload されました。

KubeCon + CloudNativeCon North America 2022

YouTubeのvideoIDが不正ですhttps://www.youtube.com/c/cloudnativefdn/videos

KubeCon 2022 の動画も公開されました。

TechFeed Experts Night#7 〜 コンテナ技術を語る

https://techfeed.io/events/techfeed-experts-night-7

TechFeed Experts Night#7 の動画も公開されていました。
いずれも面白い発表ばかりなのでおすすめです。

📘 Books

Internet Routing with BGP

https://twitter.com/iljitsch/status/1592139062563180545

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 に関するディープな話をしたいと思うので、興味のある方はぜひご覧ください。

サイボウズ Necoチーム 😺

Discussion