はじめに
本ドキュメントでは、Kubernetes 1.12.0のCHANGELOGからStorageに関連する機能について紹介します。
主な変更点
-
Kubernetes volume topology feature (Beta)
これにより、KubernetesはVolumeがプロビジョニングされている"zone"や"rack"を意識した操作ができるようになりました。 -
Dynamic maximum volume count (Beta)
これにより、ノード当たりのvolume typeの最大数を指定できるようになりました。(例えば、大きなノードには大きい数、小さなノードには小さな数の指定が可能となります) -
Container Storage Interface(CSI (Bate)
次期KubernetesのリリースでBetaからGAへの昇格することを見越して次のサポートを行っています。- "mount namespace propagation"機能はGAに卒業
- kubelet plugin registration mechanism をbetaに移動
- トポロジー向けにCSI DriverをAphaサポートに追加
- CSIを使った"local ephemeral volumes"(tokenやsecretのような情報を含むVolume)をAlphaサポートに追加
-
Volume snapshotting (Alpha)
volume snapshotのcreate/deleteがCSI volumeでAlphaサポートとなりました。
その他の変更点
- StorageClassのAllowedTopoligiesが追加され、setとmapについて検証されるようになりました。(#66843)
- PersistentVolumeが外部のPV binder(kube-schedulerなど)によってbound されている場合、負荷が高いと、対応するPVCがControllerのローカルキャッシュに同期されていないことがありました。そこで、Kubernetesでは、Volumeが間違って再利用されることを防ぐために、PVCをダブルチェックするようにしました。 (#67062)
- Unmount パスにてEIOを無視します。XFSはターゲットがダウンしている時にFileSystemをダウンさせる且つUnmountパスに対してEIOを返します。 (#67097)
- Podの起動時間が極端に長くなるのを防ぐため、PodのPVCがboundされた際、すぐにattachdetachコントローラが即時に接続するように変更されました。 (#66863)
- Dynamic Provisioning にてiSCSIのPVをマルチパス構成で作成できるようになりました。2つ以上のマルチパス構成ではマルチデバイス構成(/dev/dm-XX)となりますがマルチデバイスが準備できるまで、kubeletにて10秒以上待つようになりました。1つだけの場合は、以前と同様即時に割り当てます。 (#67140)
- 予め手動で/dev/disk/by-idのパスを作成しなくても、ScaleIOのVolumeを割り当てることができるようになりました。 (#66174)
- downward API files によって付与されたマルチラインのAnnotationがソーティングされなくなりました。 (#65992)
- CSI pluginのVolumeの仕様に volume modeのフィールドが追加されました。 (#65456)
- PluginとNode名をdimensionsとして使用中のPVCの数のレポートに追加しました。これにより、attach/detachに関するトラブルシューティングに役に立ちます。 (#64527)
- volume snapshot のデータソースからvolumeをrestoreする機能を追加しました。 (#67087)
- iSCSI volumeをattachした際、対象のLUNのみScanするようにします。detach時も同様です。これにより、kernel logの random I/O errors/timeouts、Blockデバイスの操作遅延、稀に発生していたデータ破損の原因となっていた存在しないLUNへの参照を防ぎます。 (#63176)
- directory とblock deviceがlocal volume pluginのFileSystem VolumeModeでサポートされました。 (#63011)
- CSI のNodePublish call に、CSI volumeの要求のあったPodの情報を加えることができるようになりました。 (#67945)
- CSI volumeにアタッチ制限(EBSm GCEPD, AzureDiskのアタッチの最大数制限など)が追加されました。 (#67731)