Kubernetes 1.17の変更点: 廃止予定と削除されたもの(Deprecations and Removals)

## はじめに

[Kubernetes 1.17 の CHANGELOG](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.17.md) から Deprecations and Removalsについてまとめます。

## Deprecations and Removals(廃止予定と削除されたもの)

- `kubeadm.k8s.io/v1beta1`は廃止予定であり、新しい廃止予定でないAPIバージョンへ変更すべきです([#83276](https://github.com/kubernetes/kubernetes/pull/83276), [@Klaven](https://github.com/Klaven))
    - :memo: v1beta2を使いましょう
- Feature gatesのGCERegionalPersistentDisk, EnableAggregatedDiscoveryTimeoutおよびpersistentLocalVolumeが廃止され、コンポーネントでの呼び出しが指定できなくなりました([#82472](https://github.com/kubernetes/kubernetes/pull/82472), [@draveness](https://github.com/draveness))
- デフォルトのservice IP CIDRが廃止されます
    - 以前までのデフォルトである`10.0.0.0/24`は6ヶ月/2リリース後に削除されます
    - クラスターアドミンは`-service-cluster-ip-range`オプションで明示的に指定する必要があります ([#81668](https://github.com/kubernetes/kubernetes/pull/81668), [@darshanime](https://github.com/darshanime))
- 廃止予定であった`include-uninitialized`フラグが削除されました ([#80337](https://github.com/kubernetes/kubernetes/pull/80337), [@draveness](https://github.com/draveness))
- `rbac.authorization.k8s.io/v1alpha1`と`rbac.authorization.k8s.io/v1beta1` API Groupに含まれる全てのリソースは廃止予定であり、`rbac.authorization.k8s.io/v1`を代わりに利用してください
    - `v1alpha1`と`v1beta1`はv1.20でサーブされなくなります([#84758](https://github.com/kubernetes/kubernetes/pull/84758), [@liggitt](https://github.com/liggitt))
- 証明書の署名者は、 `CFSSL_CA_PK_PASSWORD`環境変数を介してca.keyパスワードを受け入れなくなりました。この機能は、ユーザーのリクエストによって促されることはなく、広告されることはなく、セキュリティ監査で推奨されていません。 ([#84677](https://github.com/kubernetes/kubernetes/pull/84677), [@mikedanese](https://github.com/mikedanese))
- インスタンスタイプのbetaラベル(`beta.kubernetes.io/instance-type`)が廃止予定になり、GAと等しいラベルである`node.kubernetes.io/instance-type`を利用してください([#82049](https://github.com/kubernetes/kubernetes/pull/82049), [@andrewsykim](https://github.com/andrewsykim))
- ビルトインの`system:csi-external-provisioner`と`system:csi-external-attacher`というcluster-roleは1.17リリースで削除されます([#84282](https://github.com/kubernetes/kubernetes/pull/84282), [@tedyu](https://github.com/tedyu))
- in-treeのGCE PDプラグイン`kubernetes.io/gce-pd`は廃止予定となり、1.21で削除予定です。
    - GCP上にKubernetesを自分でデプロイしているユーザはCSIMigrationとCSIMigrationGCE機能を有効化し、GCE PD CSI Driver(https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver)を既存のPodとPVCオブジェクトを壊さないようにするためにインストールすべきです
    - ユーザはGCE PD CSI Driverを新しいボリュームを作成するために使い始めてください([#85231](https://github.com/kubernetes/kubernetes/pull/85231), [@davidz627](https://github.com/davidz627))
- in-treeのAWS EBS plugin`kubernetes.io/aws-ebs`は廃止予定になり、1.21で削除予定です。
    - AWS上にKubernetesを自分でデプロイしているユーザはCSIMigrationとCSIMigrationnAWS機能を有効化し、AWS EBS CSI Driver(https://github.com/kubernetes-sigs/aws-ebs-csi-driver)を既存のPodとPVCオブジェクトを壊さないようにするためにインストールすべきです
    - ユーザはAWS EBS CSI Driverを新しいボリュームを作成するために使い始めてください([#85237](https://github.com/kubernetes/kubernetes/pull/85237), [@leakingtapan](https://github.com/leakingtapan))
- Feature gateのCSINodeInfoは廃止予定となり、将来のリリースで削除予定です([#83474](https://github.com/kubernetes/kubernetes/pull/83474), [@msau42](https://github.com/msau42))
- `storage.k8s.io/v1beta1`のCSINodeオブジェクトは廃止予定となり、将来のリリースで削除予定です([#83474](https://github.com/kubernetes/kubernetes/pull/83474), [@msau42](https://github.com/msau42))
- alpha機能の`MountContainers`を削除しました([#84365](https://github.com/kubernetes/kubernetes/pull/84365), [@codenrhoden](https://github.com/codenrhoden))
- https://v1-13.docs.kubernetes.io/docs/setup/release/notes の廃止予定の発表に従って、廃止予定のディレクトリ `{kubelet_root_dir}/plugins`のウォッチおよびCSI v0のサポートを削除しました。([#84533](https://github.com/kubernetes/kubernetes/pull/84533), [@davidz627](https://github.com/davidz627))
- kubeadmはhyperkube imageの利用を廃止予定としました ([#85094](https://github.com/kubernetes/kubernetes/pull/85094), [@rosti](https://github.com/rosti))
    - :memo: ChangeLogにはこのように記載されていましたが、詳しくは[Cluster LifeCycleの変更点調査](https://qiita.com/yuanying/items/c3defb264e460e9936c1#廃止予定および削除された機能-deprecations-and-removals)を参照ください。


<!--

## Deprecations and Removals
- `kubeadm.k8s.io/v1beta1` has been deprecated, you should update your config to use newer non-deprecated API versions. ([#83276](https://github.com/kubernetes/kubernetes/pull/83276), [@Klaven](https://github.com/Klaven))
- The deprecated feature gates GCERegionalPersistentDisk, EnableAggregatedDiscoveryTimeout and PersistentLocalVolumes are now unconditionally enabled and can no longer be specified in component invocations. ([#82472](https://github.com/kubernetes/kubernetes/pull/82472), [@draveness](https://github.com/draveness))
- Deprecate the default service IP CIDR. The previous default was `10.0.0.0/24` which will be removed in 6 months/2 releases. Cluster admins must specify their own desired value, by using `--service-cluster-ip-range` on kube-apiserver. ([#81668](https://github.com/kubernetes/kubernetes/pull/81668), [@darshanime](https://github.com/darshanime))
- Remove deprecated "include-uninitialized" flag. ([#80337](https://github.com/kubernetes/kubernetes/pull/80337), [@draveness](https://github.com/draveness))
- All resources within the `rbac.authorization.k8s.io/v1alpha1` and `rbac.authorization.k8s.io/v1beta1` API groups are deprecated in favor of `rbac.authorization.k8s.io/v1`, and will no longer be served in v1.20. ([#84758](https://github.com/kubernetes/kubernetes/pull/84758), [@liggitt](https://github.com/liggitt))
- The certificate signer no longer accepts ca.key passwords via the `CFSSL_CA_PK_PASSWORD` environment variable. This capability was not prompted by user request, never advertised, and recommended against in the security audit. ([#84677](https://github.com/kubernetes/kubernetes/pull/84677), [@mikedanese](https://github.com/mikedanese))
- Deprecate the instance type beta label (`beta.kubernetes.io/instance-type`) in favor of its GA equivalent: `node.kubernetes.io/instance-type` ([#82049](https://github.com/kubernetes/kubernetes/pull/82049), [@andrewsykim](https://github.com/andrewsykim))
- The built-in system:csi-external-provisioner and system:csi-external-attacher cluster roles are removed as of 1.17 release ([#84282](https://github.com/kubernetes/kubernetes/pull/84282), [@tedyu](https://github.com/tedyu))
- The in-tree GCE PD plugin `kubernetes.io/gce-pd` is now deprecated and will be removed in 1.21. Users that self-deploy Kubernetes on GCP should enable CSIMigration + CSIMigrationGCE features and install the GCE PD CSI Driver (https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the GCE PD CSI CSI Driver directly for any new volumes. ([#85231](https://github.com/kubernetes/kubernetes/pull/85231), [@davidz627](https://github.com/davidz627))
- The in-tree AWS EBS plugin `kubernetes.io/aws-ebs` is now deprecated and will be removed in 1.21. Users that self-deploy Kubernetes on AWS should enable CSIMigration + CSIMigrationAWS features and install the AWS EBS CSI Driver (https://github.com/kubernetes-sigs/aws-ebs-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the AWS EBS CSI CSI Driver directly for any new volumes. ([#85237](https://github.com/kubernetes/kubernetes/pull/85237), [@leakingtapan](https://github.com/leakingtapan))
- The CSINodeInfo feature gate is deprecated and will be removed in a future release. The storage.k8s.io/v1beta1 CSINode object is deprecated and will be removed in a future release. ([#83474](https://github.com/kubernetes/kubernetes/pull/83474), [@msau42](https://github.com/msau42))
- Removed Alpha feature `MountContainers` ([#84365](https://github.com/kubernetes/kubernetes/pull/84365), [@codenrhoden](https://github.com/codenrhoden))
- Removed plugin watching of the deprecated directory `{kubelet_root_dir}/plugins` and CSI V0 support in accordance with deprecation announcement in https://v1-13.docs.kubernetes.io/docs/setup/release/notes ([#84533](https://github.com/kubernetes/kubernetes/pull/84533), [@davidz627](https://github.com/davidz627))
- kubeadm deprecates the use of the hyperkube image ([#85094](https://github.com/kubernetes/kubernetes/pull/85094), [@rosti](https://github.com/rosti))

-->