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

[Kubernetes 1.15 の Changelog](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.15.md) の Deprecations and Removals, API Changes の内容についてまとめました。


## 廃止予定と削除されたもの

### kubectl
- v1.14 から廃止予定だった `kubectl convert` は v1.17 で削除されます
- v1.14 から廃止予定だった `kubectl get`の `--export` フラグは、v1.18 で削除されます
- v1.12 から廃止予定だった `kubectl exec` の `--pod`/`-p`フラグは削除されました
- v1.10 から廃止予定だった `kubectl scale job`　は削除されました ([#78445](https://github.com/kubernetes/kubernetes/pull/78445), [@soltysh](https://github.com/soltysh))

### kubelet
- v1.14 から廃止予定だった `beta.kubernetes.io/os` と `beta.kubernetes.io/arch` ラベルは v1.18 で削除されます
  - :memo: v1.14 からは正式版の `kubernetes.io/os` と `kubernetes.io/arch` ラベルを代わりに利用します
- v1.14 から廃止予定だった `--containerized`フラグは将来のリリースで削除されます
- cAdvisor の json エンドポイントが削除されました ([#78504](https://github.com/kubernetes/kubernetes/pull/78504), [@dashpole](https://github.com/dashpole))

### kube-apiserver
- `--enable-logs-handler` フラグとログをサーブする機能は廃止予定となり、v1.19 で削除される予定です。
    - :memo: `/logs` というエンドポイントで kube-apiserver の `/var/log` 以下のファイル(ログ)を見ることができた機能です

### kube-proxy
- 廃止予定だった `--cleanup-iptables` が削除されました ([#78344](https://github.com/kubernetes/kubernetes/pull/78344), [@aramase](https://github.com/aramase))


### API
- v1.19 で Ingress リソースは `extensions/v1beta1` からサーブされなくなります。v1.14 から利用できる `networking.k8s.io/v1beta1` API に移行してください。既存の永続化されたデータは `networking.k8s.io/v1beta1` API からも取得できます
- v1.16 で NetworkPolicy リソースは `extensions/v1beta1` からサーブされなくなります。v1.8 から利用できる `networking.k8s.io/v1` API に移行してください。既存の永続されたデータは `networking.k8s.io/v1` API から取得できます。
- v1.16 で PodSecurityPolicy リソースは `extensions/v1beta1` API からサーブされなくなります。v1.10 から利用できる `policy/v1beta1` API に移行してください。既存の永続されたデータは `policy/v1beta1` API から取得できます。
- v1.16 で DaemonSet, Deprecations, ReplicaSet リソースは `extensions/v1beta1`, `apps/v1beta1`, `apps/v1beta2` からサーブされなくなります。v1.9 から利用できる `apps/v1` API に移行してください。既存の永続されたデータは `apps/v1` API から取得できます。
- v1.17 で PriorityClass リソースは `scheduling.k8s.io/v1beta1`, `scheduling.k8s.io/v1alpha1` からサーブされなくなります。v1.14 から利用できる `scheduling.k8s.io/v1` API に移行してください。既存の永続されたデータは `scheduling.k8s.io/v1` API から取得できます。
- v1.14 から廃止予定だった list API の `export` クエリパラメータは v1.18 で削除されます。
- events.k8s.io/v1beta1 Event API の `series.state` フィールドは廃止予定となり、v1.18 で削除されます。

### kubeadm
- 代わりの `kubeadm upgrade node` によって `kubeadm upgrade node config` と `kubeadm upgrade node experimental-control-plane` コマンドが 廃止予定となり将来のリリースで削除されます。([#78408](https://github.com/kubernetes/kubernetes/pull/78408), [@fabriziopandini](https://github.com/fabriziopandini))
- 代わりの `--control-plane` によって `--experimental-control-plane` は廃止予定となりました。代わりの `--upload-certs` によって `--experimental-upload-certs` は廃止予定となりました。([#78452](https://github.com/kubernetes/kubernetes/pull/78452), [@fabriziopandini](https://github.com/fabriziopandini))
- `kubeadm config upload` が 廃止予定となり、代替が graduated となりました。代わりに `kubeadm init phase upload-config` を利用してください. ([#77946](https://github.com/kubernetes/kubernetes/pull/77946), [@Klaven](https://github.com/Klaven))


### その他
以下の機能は GA となりました。関連する feature gates は廃止予定となり v1.17 で削除されます。

- `GCERegionalPersistentDisk`


## API の変更

- CRD は x-kubernetes-int-or-string をサポートするようになり、CustomResources で IntOrString 型を扱えるようになりました。([#78815](https://github.com/kubernetes/kubernetes/pull/78815), [@sttts](https://github.com/sttts))
- kubeadm に [`v1beta2`](https://docs.google.com/document/d/1XnP67oO1i9VcDIpw42IzptnJsc5OQM-HTf8cVcjCR2w/edit) のコンフィグフォーマットが導入されました。([#76710](https://github.com/kubernetes/kubernetes/pull/76710), [@rosti](https://github.com/rosti))
-  `PartialObjectMetadata` に対するリソースの list リクエストが、resourceVersion や continue token のような metadata を正しく返すようになりました。 ([#75971](https://github.com/kubernetes/kubernetes/pull/75971), [@smarterclayton](https://github.com/smarterclayton))
    - :memo: `PartialObjectMetadata` は [server-side printing](https://github.com/kubernetes/kubernetes/issues/58536) の実装で導入された型のようです
- [KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190425-structural-openapi.md) で定義されていた、`CustomResourceDefinition` の　Structural Schema の違反をリストする `NonStructuralSchema` という状態が追加されました。CRD の作者は将来の CRD 機能に対応するためにスキーマの検証を structural に更新する必要があります。([#77207](https://github.com/kubernetes/kubernetes/pull/77207), [@sttts](https://github.com/sttts))
- meta.k8s.io/v1beta1 Table と PartialObjectMetadataが v1 に昇格しました ([#77136](https://github.com/kubernetes/kubernetes/pull/77136), [@smarterclayton](https://github.com/smarterclayton))
- 厳格な ARP の sysctl 設定 を制御する `--ipvs-strict-arp` というフラグが導入されました。既存の振る舞いを変更しないためデフォルトは false になります。この ARP の設定は 1.13.0 から有効になっていましたが一部の CNI プラグインに影響を与えていました  ([#75295](https://github.com/kubernetes/kubernetes/pull/75295), [@lbernail](https://github.com/lbernail))
  - :memo: 有効にすると arp_ignore が 1、arp_announce が 2 に設定されます
- CRD の検証スキーマでは `metadata` フィールドは `name` と `generateName` を除いて指定すべきではありません。そのため、`metadata` をその他の値で指定していた場合、スキーマは structural とみなされなくなります。([#77653](https://github.com/kubernetes/kubernetes/pull/77653), [@sttts](https://github.com/sttts))