🎊

Neco Weekly (2023-02-03号)

2023/02/06に公開

Neco Weekly (2023-02-03号)

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

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

👀 New Releases

Go 1.20 is released!

https://go.dev/blog/go1.20

Go 1.20 がリリースされました。
今回のリリースでは context パッケージに WithCancelCauseCause が追加され、context をキャンセルした理由が取得できるようになったり、os/exec パッケージの Command 構造体に CancelWaitDelay が追加され、丁寧に終了処理が書けるようになったり、地味にうれしい機能が多い印象です。
他にもアリーナなどの気になる機能が盛りだくさん。

以下の記事の解説がとてもわかりやすいのでおすすめです。

Stern v1.23

https://twitter.com/superbrothers/status/1619883629492187143

Kubernetes のログツール Stern v1.23 がリリースされました。
新機能がたくさんありますが、特に <resource>/<name> 形式のクエリが扱えるようになったのはうれしいですね。

New in Grafana Tempo 2.0: Apache Parquet as the default storage format, support for TraceQL

https://grafana.com/blog/2023/02/01/new-in-grafana-tempo-2.0-apache-parquet-as-the-default-storage-format-support-for-traceql/

Tempo 2.0 では TraceQL の導入と、新しいバックエンドである Apache Parquet が導入されるとのこと。
TraceQL は特定のトレースデータを取得するためのクエリ言語です。
Apache Parquet はトレースデータを保持するためのストレージバックエンドで、オープンなフォーマットでデータが保存されるため、いろいろなツールからトレースデータが使いやすくなるみたいです。

Kustomize v5.0.0

https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0

Kustomize v5.0 がリリースされました。
新機能としては、出力するリソースの順番を制御できるようになったのがとても便利そうです。
Breaking Changes もたくさん含まれているのでアップグレードの際には注意しましょう。

👀 Notable Articles

Linuxコンテナの「次」としてのWebAssembly、の解説

https://zenn.dev/koduki/articles/9f86d03cd703c4

最近は Kubernetes 界隈でも WASM が注目されていますが、どのような問題を解決するために WASM を導入しようとしているのかという話をわかりやすく紹介しています。

etcd: getting 30% more write/s

https://zendesk.engineering/etcd-getting-30-more-write-s-318bcdbf7774

EBS のボリュームタイプを gp2 から gp3 にしたら etcd の書き込み性能が30%上がったという話。
ただし etcd では同期書き込みをおこなう必要があるので、スペックに記載されている IOPS ほどの性能は出ないとのこと。

Generating SBOMs for Your Image with BuildKit

https://www.docker.com/blog/generate-sboms-with-buildkit/
https://github.blog/2023-01-26-setting-the-foundations-for-compliance/

前回の NecoWeekly でも紹介した BuildKit 0.11 の Attestations に関する記事。
これは SBOM や SLSA Provenance のようなコンテナイメージがどんなコンポーネントを含んでいるのかや、どのように作られたのかという情報をコンテナイメージに含めるというものです。

なお、以下のような問題も起きていたようなので注意ですね。

GitHub Actions – Updating the default GITHUB_TOKEN permissions to read-only

https://github.blog/changelog/2023-02-02-github-actions-updating-the-default-github_token-permissions-to-read-only/

GitHub Actions の GITHUB_TOKEN のデフォルト権限がリードオンリーに変わるとのこと。
なお、既存のリポジトリに影響はなく、Organization やリポジトリごとに個別にデフォルト設定を変更することができるそうです。

🛠️ Tools, Frameworks, Libraries

Kubernetes での Job 実行機能を拡張する "Furiko" について

https://qiita.com/yosshi_/items/133832849d6ed851297a

Kubernetes の Job/CronJob を機能強化した OSS です。
ジョブを実行する日時の範囲を指定できたり、指定時間内のランダムなタイミングで実行できたり、実行に失敗したら別のノードでリトライできたり、数多くの便利な機能を搭載していてなかなかよさそうです。

DBのスキーマをKubernetesのカスタムリソースとして管理するやつ。

https://github.com/schemahero/schemahero

データベースのスキーマを Kubernetes のカスタムリソースで扱えるようにするオペレーター実装。
現在のところ PostgreSQL, MySQL, CockroachDB, Cassandra, SQLite に対応しているようです。

我々が開発している MySQL Operator MOCO にもこういう機能が欲しいと考えていたので、うまく連携させられるといいなあ。

KubeWatch

https://home.robusta.dev/blog/kubewatch-2-0-released

Kubernetes のリソースを監視して、いつ何がデプロイされたとかバージョンアップされたなどの情報を知ることができるツール。
Slack をはじめ、さまざまな通知先に対応しているようです。

QuestDB

https://questdb.io/blog/questdb-cloud-metrics-kubernetes/

Prometheus のバックエンドに利用可能な時系列データベース実装。
問い合わせる際に PromQL ではなく SQL を利用できるようです。

📘 Books

『マスタリングLinuxシェルスクリプト 第2版』、こういう1冊手元に有るとずっと使える本はちゃんと買っておきたいですね

https://blog.magnolia.tech/entry/2023/01/21/211338

普段シェルスクリプトを書く機会は多いもののいつも適当に書いてるので、こういう書籍を読んでちゃんと勉強しておくべきなんでしょうね。

あとがき

CI/CD Conference 2023 には Neco チームから 2 件のプロポーザルを出していたのですが、どちらとも不採択でした。ざんねん😔
https://event.cloudnativedays.jp/cicd2023/talks

サイボウズ Necoチーム 😺

Discussion