2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

k3s-io/kineがPostgreSQLに作成するテーブルのスキーマ

Posted at

k3s-io/kine(Kubernetes用のetcd互換ストア)は、PostgreSQL上に**kine**という単一のテーブルを作成し、Kubernetesのデータを保存します (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub)。以下、このテーブルの詳細なスキーマを示します。

テーブル名

カラム名とデータ型

kineテーブルには以下のカラムが存在します。それぞれのカラム名とデータ型は次のとおりです(必要に応じて簡単な説明を付記します)。

※上記のうちidカラムにはPRIMARY KEY制約が付与されています(BIGSERIALには暗黙的にシーケンスkine_id_seqが作成され、自動採番されます) (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub)。

インデックスおよび制約

kineテーブルでは、パフォーマンスと一意性を確保するために複数のインデックスと制約が定義されています。

以上のインデックス構成により、KineはPostgreSQL上でのKubernetesデータの読み書きを高速化しています。

スキーママイグレーション(変更履歴)

Kineではバージョンアップに伴いスキーマ変更が行われた経緯があります。公式ドキュメントのK3sリリースノートによれば、Kine v0.13.0でPostgreSQL使用時のパフォーマンス改善のためスキーマが更新されています (v1.32.X | K3s)。新規にデータベースを作成する場合は自動で新スキーマが適用され、既存データベースについては環境変数KINE_SCHEMA_MIGRATION=2を指定して起動することでスキーマ変更を適用できます (v1.32.X | K3s)。

具体的な変更点として、Kineのソースコード中のマイグレーション定義では次のようなスキーマ変更が含まれています。

これらの変更はKine内部のマイグレーション機構によって管理されており、新しいスキーマ定義(前述のカラム定義・インデックス定義)は常に最新バージョン用にコード内で定義されています (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub)。そのため、新規インストール時には最新スキーマでテーブルが作られ、既存インストールのアップグレード時には必要に応じて上記マイグレーションが実行される形になっています。

参考資料: 公式ドキュメントやソースコードでは上記のようなスキーマが確認できます (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub) (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub) (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub)。特にKineのソースコード(GitHub上のkine/pkg/drivers/pgsql/pgsql.go)にテーブル作成DDLとインデックス定義が記載されており、これが信頼できるスキーマ情報となります (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub) (kine/pkg/drivers/pgsql/pgsql.go at master · k3s-io/kine · GitHub)。また、K3sリリースノートにもスキーマ変更に関する言及があります (v1.32.X | K3s)。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?