Kubernetes v1.7: Deprecations

このエントリは Kubernetes v1.7 CHANGELOG の Deprecations をまとめています。

- https://github.com/kubernetes/kubernetes/blob/3f0141edd52ab6fd7b6fe473ecceb480faf12079/CHANGELOG.md#deprecations

その他の項目は下記を参照してください。

- [Kubernetes v1.7: Major Themes](http://qiita.com/tkusumi/items/817cf85917efd24c7a4f)
- [Kubernetes v1.7: Action Required Before Upgrading](https://qiita.com/superbrothers/items/e52a364a88783f85dd75)
- Kubernetes v1.7: Deprecations
- [Kubernetes v1.7: Notable Features 抜粋](http://qiita.com/tkusumi/items/0e5856ed58a1ec7bb644)

## Cluster provisioning scripts

### cluster/ubuntu: 廃止およびメンテナンスされていないことから削除

kube-up から Ubuntu サポートが削除されました。kube-up 自体が既にメンテナンスモードであり、kube-deploy にその役割は移っている。

- [delete ubuntu kube\-up by mikedanese · Pull Request \#44344 · kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/pull/44344)
- [kubernetes/kube\-deploy: A place for cluster deployment automation](https://github.com/kubernetes/kube-deploy)

### cluster/aws: 廃止およびメンテナンスされていないことから削除

cluster/ubuntu と同様です。

- [AWS: Kill bash deployment by zmerlynn · Pull Request \#42196 · kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/pull/42196)

## Client libraries

### Swagger 1.2 spec (`/swaggerapi/*`) の廃止

Swagger 1.2 spec (`/swaggerapi/*`) は廃止された。代わりに OpenAPI (`/swagger.json`) を使いましょう。

## DaemonSet

### spec.templateGeneration の廃止

DaemonSet の spec.templateGeneration が廃止され、`controller-revision-hash` ラベルが使われるようになった。このラベルは Daemonset と StatefulSet の履歴を管理するために利用される。基本的にシステムが参照する値なので利用者への影響はない。

- [Implement Daemonset history by janetkuo · Pull Request \#45924 · kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/pull/45924)
- [Consistent hash label key across controllers · Issue \#47554 · kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/47554)

## kube-proxy

### フラグによるオプションの指定から設定ファイルによる指定に変更

kube-proxy のオプションの指定はこれまでフラグにより行っていたが、設定ファイルによる指定に変更になった。フラグによる設定は v1.7 では引き続き機能するが、廃止予定であり将来のリリースで削除される。

まだドキュメントも整備されていないので、v1.7 から積極的に設定ファイルを使っていく必要はないように思える。今後他のコンポーネントもフラグによる指定から設定ファイルによるオプションの指定に切り替わっていくだろう。
https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/componentconfig/types.go#L83

```yaml
apiVersion: componentconfig/v1alpha1
bindAddress: 0.0.0.0
clientConnection:
  acceptContentTypes: ""
  burst: 10
  contentType: application/vnd.kubernetes.protobuf
  kubeconfig: ""
  qps: 5
clusterCIDR: ""
configSyncPeriod: 15m0s
conntrack:
  max: 0
  maxPerCore: 32768
  min: 131072
  tcpCloseWaitTimeout: 1h0m0s
  tcpEstablishedTimeout: 24h0m0s
enableProfiling: false
featureGates: ""
healthzBindAddress: 0.0.0.0:10256
hostnameOverride: ""
iptables:
  masqueradeAll: false
  masqueradeBit: 14
  minSyncPeriod: 0s
  syncPeriod: 30s
kind: KubeProxyConfiguration
metricsBindAddress: 127.0.0.1:10249
mode: ""
oomScoreAdj: -999
portRange: ""
resourceContainer: /kube-proxy
udpTimeoutMilliseconds: 250ms
```
https://gist.github.com/ncdc/67a77d62bdd3f2ef4355cc0016ec490e

- [Refactor kube\-proxy configuration by ncdc · Pull Request \#34727 · kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/pull/34727)
- [Component configuration improvement suggestions · Issue \#32215 · kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/32215)

## Namespace

### deletecollection サポートの削除

[Action Required Before Upgrading](http://qiita.com/superbrothers/items/e52a364a88783f85dd75#namespace-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE-deletecollection-%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E5%89%8A%E9%99%A4) と同様の内容なので省略。

## Scheduling

### `scheduler.alpha.kubernetes.io/affinity` アノテーションによる affinity/anti-affinity の指定は v1.8 で削除される

`--feature-gates=AffinityInAnnotations=true` で有効となる `scheduler.alpha.kubernetes.io/affinity` アノテーションによる affinity/anti-affinity の指定は次のリリース(v1.8)で削除されるため、pod.spec.affinity に切り替えなければならない。Feature Gates によりこの機能を有効にしていない限り影響はない。