Kubernetes 1.16: SIG-Storageの変更内容

# はじめに
本ドキュメントでは、Kubernetes 1.16.0の[CHANGELOG](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md)をベースにSIG-Storageに関する機能について紹介します。
:memo: がついた文章は、CHANGELOGの公式内容ではなく筆者の補足です。

# 新着情報 (What's New)

- Volume Extentsion: 今回のリリースではボリュームとボリュームの変更に関連したいくつかのエンハンスがあります。CSIの仕様のボリュームのサイズ拡張はベータになり、いくつかのCSIのVolume Pluginではサイズ拡張ができます。

:memo: CSIのVolume Plugin(Driver)がサポートしている機能は[kubernetes-csi.github.io/docs](https://kubernetes-csi.github.io/docs/drivers.html)に一覧があります。各CSIのVolume Pluginが、どのような機能をサポートしているかを確認する場合に参考になります。また、Volumeのサイズ拡張については、[Kubernetes: Resizing Persistent Volumeの動作検証](https://qiita.com/ysakashita/items/c668785575e9fe7d57a3)にまとめてありますので合わせてご参照ください。

# 既知の問題点 (Known Issues)

SIG-Storage関連はなし

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

- CSIドライバでPodInfoOnMountを有効にしている場合、volume contextに新規のcsi.storage.k8s.io/ephemeralパラメータによって、CSIドライバのNodePublishVolumeの実装がケースバイケースでephemeralかnormalのPersistent Volumeかを決定されるようになりました ([#79983](https://github.com/kubernetes/kubernetes/pull/79983), [@pohly]
- VerifyVolumesAreAttachedとBulkVolumeVerify向けにCSI MigrationのShimレイヤーを追加しました ([#80443](https://github.com/kubernetes/kubernetes/pull/80443), [@davidz627](https://github.com/davidz627))
- VolumePVCDataSource (Cloning)が1.16のベータ機能に昇格しました ([#81792](https://github.com/kubernetes/kubernetes/pull/81792), [@j-griffith](https://github.com/j-griffith))
- in-treeとCSIのvolume limitsを1スケジューラに統合しました ([#77595](https://github.com/kubernetes/kubernetes/pull/77595), [@bertinatto](https://github.com/bertinatto)) 

# 非推奨or廃止される機能 (Deprecations and Removals)
- API
  - CinderとScaleIOのvolume providerはdeprecatedとなり、将来のリリースで削除予定です　([#80099](https://github.com/kubernetes/kubernetes/pull/80099), [@dims](https://github.com/dims))
 

# メトリクスの変更 (Metrics Changes)

## 追加されたメトリクス (Added metrics )

- StatFS metrics providerを使って、NFS Driversの正しいメトリクスを取得できるようになりました (@brahmaroutu) ([#75805](https://github.com/kubernetes/kubernetes/pull/75805), [@brahmaroutu](https://github.com/brahmaroutu)) 

## 削除されたメトリクス (Removed metrics)

SIG-Storage関連はなし

##  非推奨/変更されたメトリクス (Deprecated/changed metrics)

- CSI drierがメトリクスをサポートしていないとき、サポートされていないことを示すエラーが返っていないCSIメトリクスのバグを修正しました ([#79851](https://github.com/kubernetes/kubernetes/pull/79851), [@jparklab](https://github.com/jparklab))
- ZFS storage poolとCRI-Oのネットワークのメトリクスの欠落を修正し、LXDのディスク統計値を修正しました ([#81972](https://github.com/kubernetes/kubernetes/pull/81972), [@dashpole](https://github.com/dashpole))

# 注目機能 (Notable Features)
## Beta

SIG-Storage関連はなし

## Alpha

SIG-Storage関連はなし

## CLIの改善 (CLI Improvements)

SIG-Storage関連はなし

## その他 (Misc)

- Volume拡張がGCEのstorageclassでデフォルト有効になりました ([#78672](https://github.com/kubernetes/kubernetes/pull/78672), [@msau42](https://github.com/msau42))
- WindowsのvSphere volumesがサポートになりました ([#80911](https://github.com/kubernetes/kubernetes/pull/80911), [@gab-satchi](https://github.com/gab-satchi))

## APIの変更点 (API Changes)

SIG-Storage関連はなし

# その他注目すべき変更 (Other notable changes)

## Storage

- `doSafeMakeDir`のファイルディスクリプタのリークの可能性とディレクトリのクローズ処理を修正しました ([#79534](https://github.com/kubernetes/kubernetes/pull/79534), [@odinuge](https://github.com/odinuge))
- 共有のAzure diskにて、`skuname` or `storageaccounttype`が含まれていない場合に作成などが失敗することがなくなりました ([#80837](https://github.com/kubernetes/kubernetes/pull/80837), [@rmweir](https://github.com/rmweir))
- Attachが不要なRaw blockをサポートするCSI pluginでのマウントが失敗するバグを修正しました ([#79920](https://github.com/kubernetes/kubernetes/pull/79920), [@cwdsuzhou](https://github.com/cwdsuzhou))
- ノードのブートディスクは接続されたディスクとみなされるため、GCE PDのノード接続制限数を1減らしました ([#80923](https://github.com/kubernetes/kubernetes/pull/80923), [@davidz627](https://github.com/davidz627))
- ログからiSCSI volumeに関する平文のシークレット情報を削除しました ([#81215](https://github.com/kubernetes/kubernetes/pull/81215), [@zouyee](https://github.com/zouyee))
- Inline volumeにて作成されたVolumeAttachment APIオブジェクトのバリデーションを修正しました ([#80945](https://github.com/kubernetes/kubernetes/pull/80945), [@tedyu](https://github.com/tedyu))
- CSI pluginのタイムアウト値を15秒から2分に変更しタイムアウトの問題を修正しました ([#79529](https://github.com/kubernetes/kubernetes/pull/79529), [@andyzhangx](https://github.com/andyzhangx))
- kubeletのPodのディレクトリ(デフォルトは`/var/lib/kubelet/pods`)が別ディスクのディレクトリにシンボリックリンクを張っている場合、kubeletがどこからも関連のないPodのディレクトリを削除できない問題を修正しました ([#79094](https://github.com/kubernetes/kubernetes/pull/79094), [@gaorong](https://github.com/gaorong))

# 所感

1.16では目玉となる新しい機能は追加されていません。代わりにCSIのVolume ExtentsionとCloningがベータ機能に昇格しました。また、1.16でIn-treeのCinderとScaleIOがdeprecatedと明言されました。今後はCSIのものを利用することになります。1.14,15,16と徐々にin-treeが排除され、CSIに移り変えようという流れを感じます。