LoginSignup
2
0

More than 1 year has passed since last update.

Kubernetes 1.25: SIG Storageの変更内容

Last updated at Posted at 2022-09-26

はじめに

本ドキュメントでは、Kubernetes 1.25.0のCHANGELOGをベースにSIG Storageに関する機能について紹介します。
:pencil: がついた文章は、CHANGELOGの公式内容ではなく筆者の補足です。

新着情報 (What's New (Major Themes))

Promoted Local Ephemeral Storage Capacity Isolation to Stable

Local Ephemeral Storage Capacity Isolation機能がGAになりました。この機能は1.8でアルファとして導入され、1.10でベータになり、今は安定機能です。EmptyDirなどのPod間の Local Ephemeral Storageの容量の分離(Isolation)をサポートします。これにより、Local Ephemeral Storageの消費が制限を超えた場合、Podを退避させ共有リソースの消費を制限できるようになりました。

Promoted core CSI Migration to Stable

CSI MigrationはSIG Storageが幾つかのリリースで取り組んできた取り組みです。
ゴールは、in-tree の volume プラグインが out-of-tree の CSI ドライバに移行し、最終的には in-tree の Volume プラグインを削除することです。
この CSI Migraionのコア機能がGAになりました。GCE PDとAWS EBS向けのCSI MigrationもGAになりました。vSphere向けのCSI Migrationはベータのままです(ただし、デフォルトはON)。Portworx向けのCSI Migrationはベータになりました(ただし、デフォルトはOFF)。

Promoted CSI Ephemeral Volume to Stable

CSI Ephemeral Volume 機能は、永続化しない(Ephemeral)なユースケースのため、CSI Volumeを Podの指定で直接指定できるようにします。マウントされたVolumeを使って、設定・Secret・ID(identity),変数や似た情報など任意の状態をPod内で利用できます。
この機能は、1.15でアルファとなりGAになりました。この機能は、secret-store CSI ドライバのような幾つかのCSIドライバで使われています。

既知の問題 (Known Issue)

LocalStorageCapacityIsolationFSQuotaMonitoring ConfigMap rendering failure

1.25.0でConfigMapのレンダリング問題が見つかりました。ConfigMapがAPI内で更新された際、Kubeletによって結果がPodのファイルシステムにレンダリングされません。
この機能は1.25.1でアルファに戻されました。

アップグレード前に絶対に確認が必要な変更点 (Urgent Upgrade Notes)

  • flockerのin-tree volumeプラグインのサポートは、Kubernetesから完全に削除されました (#111618, @Jiawei0227)
  • quobyteのin-tree volumeプラグインのサポートは、Kubernetesから完全に削除されました (#111619, @Jiawei0227)
  • storageosのin-tree volumeプラグインのサポートは、Kubernetesから完全に削除されました (#111620, @Jiawei0227)

Changes by Kind

非推奨 (Deprecation)

  • vSphere 7.0u2未満のリリースでは、Kubernetes v1.25にて in-treeの vSphere volumeが非サポートです。vSphere(ESXi と vCenterの両方)を 7.0u2以降にアップグレードすることを検証してください (#111255, @divyenpatel)

API周りの変更 (API Change)

  • Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity. (#108554, @pacoxu)
  • PV/SC/RC 及び CSI Storage Capacityでのノードのベータラベルに関する非推奨の警告を追加しました (#108554, @pacoxu)

:pencil: RCはRuntimeClassの略です

  • Local Storage Capacity Isolation機能は1.25にてGAになりました。root ファイルシステムをcチェックできないシステム(rootless)の場合は、kubelet config --local-storage-capacity-isolation=false を設定し、本機能を無効にしてください。無効にすると、Podはlocal ephemeral storageのrequest/limitを設定できなくなり、emptyDirのsizeLimitも設定できなくなります (#111513, @jingxu97)
  • 互換性のあるシステムでは、mounterのUnmountの実装が変更され、指定されたターゲットがマウントポイントでないと検出された場合にエラーが返されなくなりました。Linuxでは、マウントポイントの検出の挙動は、mounterの作成時に、umountコマンドにより検出されます。さらに、ターゲットがマウントポイントでない場合にエラーを返さないという動作に返納されたmounterのUmountの場合、CleanupMountPoint/CleanupMountWithForceでマウントポイントのチェックがスキップされます (#109676, @cartermckinnon) [SIG Storage]
  • PersistentVolumeClaimオブジェクトは、StorageClassが永久にnilに設定されたままになることがなくなり、StorageClassがデフォルトとして設定もしくは作成されると、遡って更新されるようになりました (#111467, @RomanBednar)
  • CSIInlineVolume機能がベータからGAになりました (#111258, @dobsonj)
  • このリリースでは、CSI ドライバのクライアントにNodeExpandSecretのサポートが追加され、ユーザからの要求に基づきノードの拡張操作を実施中に、CSIドライバがこのsecretを利用できるようになりました。以前は、nodeexpansionを呼び出す際にSecretを提供する必要がなかったため、CSIドライバはノード側でボリュームを拡張する際に同じものを使用しませんでした (#105963, @zhucan)

機能 (Feature)

  • Feature gate のCSIMigrationは有効になりました。CSIMigrationはGAになりました。このfeature gateはv1.27で削除されます (#110410, @Jiawei0227)
  • CSIMigrationAzureDiskのfeature gateがデフォルトになりました (#110491, @andyzhangx)
  • LocalStorageCapacityIsolationFSQuotaMonitoringがベータになりました (#107329, @pacoxu)
  • CSIMigrationAWSがGAとなり有効になりました (#111479, @wongma7)
  • CSIMigrationGCEがGAとなり有効になりました (#111301, @mattcary)
  • CSIMigrationvSphereがデフォルトで有効になりました (#103523, @divyenpatel)

ドキュメンテーション (Documentation)

SIG-Storageに関連するものはなし

失敗しているテスト (Failing Test)

  • In-treeのGCE PDのテストケースは、Kubernetes testing harnessで実行されなくなりました(1.22でCSI migrationへスイッチした影響です)。これのテストを実施する場合には、環境変数 ENABLE_STORAGE_GCE_PD_DRIVERyesに切り替えてください (#109541, @dims)

バグまたはリグレッション (Bug or Regression)

  • ephemeral volumeを拡張できるようにしました (#109987, @gnufied) [SIG Node and Storage]
  • Linux kernel 5.10以上にてopenat2を使いマウント検出を高速化し、Podの Churn Rateを高速化しました。Kernetlバージョンが5.10未満では、マウントポイント検出は従来方式(/proc/mountsのパースによる方法)です (#109217, @manugupt1)
  • FibreChannel volume プラグインが間違ったデバイスと関連する devicemapperの親にマッチすることがありました。これによりPodが間違ったディスクをアタッチする障害が発生していました (#110719, @xakdwch)
  • CSI ephemeral volumeのボリューム再構成に関し修正しました (#108997, @dobsonj) [SIG Node, Storage and Testing]
  • CSI migrationでinline volumeがattach limitにカウントされていなかったバグを修正しました (#107787, @Jiawei0227)
  • Kubelet: ノードが割り当て可能なephemeral-storage データを待つようになりました (#101882, @jackfrancis)
  • kubeletの再起動後にマウント操作に失敗しても、再構築されたボリュームに対して正しくアンマウントされるようになりました (#110670, @gnufied)
  • 新しいVMタイプに対応するため、Azure data diskのcount mapの最大値をアップデートしました (#111406, @bennerv)

その他 (Cleanup or Flake)

  • PVのフレームワークのdelete時のタイムアウトをドキュメント通り5分に変更しました (#109764, @saikat-royc)
  • GlusterFSのprovisioner(kubernetes.io/glusterfs)は、このリリースで非推奨となりました (#111485, @humblec)

所感

Kubernetes v1.25のSIG-Storage関連では、新しい機能はないですが、数年に渡りSIG-Storageが取り組んできた機能がGAとなったバージョンでした。
特に本バージョンでは、2019年のKubernetes v1.14にてIn-treeからCSIへのMigrationフレームワークがサポートされ始めてから約3年かかり、
パブリッククラウドの Kubernetes as a Serviceで利用されるGCE PDとAWS EBS向けのCSI MigrationもようやくGAとなりました。
さらに In-TreeのVolumeプラグインが、3つほどKubernetesのソースから削除されました。

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