はじめに
このエントリは、Kubernetes 1.12 の CHANGELOG から Action Required についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は次のリンク先を参照してください。
- Kubernetes 1.12: 既知の問題 (Known Issues) と 廃止された機能および廃止予定の機能 (Deprecations and removals)
- Kubernetes 1.12: 主な変更点 (Major Themes)
- Kubernetes 1.12: Action Required
- Kubernetes 1.12: 新機能 (New Features)
- Kubernetes 1.12: API Changes
Kubernetes 1.12: Action Required
-
Kubernetes のバックエンドとしての
etcd2は非推奨となり、1.13 にて削除されます。 -
kube-apiserverにおける--storage-versionsもまた非推奨です。このフラグはデフォルト値を利用するよう省略すべきです、さもなければ 1.12 より新しいバージョンへのクラスターのアップグレードは安全でなくなります。このフラグは 1.13 にて削除されます。 (#68080, @caesarxuchao) [SIG API Machinery]etcd2 が非推奨となり `--storage-versions` で指定すべき値が `etcd3` のみになったための変更のようです。
**Note** -
Volume scheduling における Dynamic provisioning がベータに昇格しました。それに伴い
DynamicProvisioningSchedulingのアルファ feature gate が削除されましたが、VolumeSchedulingのベータ feature gate はこの機能を有効化するのにまだ必要となっていますのでご注意ください。(#67432, @lichuqiang) [SIG Apps, SIG Architecture, SIG Storage, and SIG Testing]AWSElasticBlockStore, GCEPersistentDisk, AzureDisk タイプの PV において、`StorageClass` の `volumeBindingMode` が `WaitForFirstConsumer` 時における dynamic provisioning がベータとなりました。
**Note** -
kube-apiserverおよびclient-goライブラリが、UserInfo の "extra" データキーの中で英数字以外をサポートするように修正されました。(SIG Auth) -
kubeadmにて join 時に利用されていたNodeConfigurationkind が v1alpha3 にてJoinConfigurationにリネームされました。(#65951, @luxas) [SIG Cluster Lifecycle] -
kubeadmにて init 時に利用されていたMasterConfigurationkind が v1alpha3 にてInitConfigurationにリネームされました。(#65945, @luxas) [SIG Cluster Lifecycle] -
kubeletが cAdvisor の Web UI を公開するために利用していた--cadvisor-portが 1.12 にて完全に削除されました。もし、それがまだ必要な場合はDaemonSetsの機能などを使い、自分で起動してください。(#65707, @dims) -
Cluster Autoscaler のバージョンが 1.3.1-beta.1 にアップデートされました。(#65857, @aleksandra-malinowska) [SIG Autoscaling]
GPU Type のメトリクスサポート、GKE における GPU limits のサポートなどです。
**Note** -
kubeadmにおけるv1alpha1の config API が削除されました。(#65628, @luxas) [SIG Cluster Lifecycle] -
kube-apiserverにおけるPriorityアドミッションプラグインが--enable-admission-pluginsフラグを利用時にデフォルトで有効化されるようになりました。--admission-controlフラグを使っている場合、PodPriorityを有効化するためには明示的にPriorityアドミッションプラグインをリストに追加にする必要があります。(#65739, @liggitt) [SIG Scheduling]`kube-apiserver` でアドミッションコントローラを指定する際には、できるだけ `--admission-control` フラグで全てのプラグインを指定するようなことはせずに、`--enable-admission-plugins` フラグを利用すべきです。そうすることで `kube-apiserver` の各バージョンでデフォルトで利用すべきプラグインを有効化できます。
**Note** -
system-node-criticalおよびsystem-cluster-criticalプライオリティクラスがPriorityアドミッションプラグインによってkube-systemネームスペースに限定されるようになりました。(#65593, @bsalamat) [SIG Scheduling]`system-node-critical` と `system-cluster-critical` の利用を `kube-system` ネームスペースに限定し、利用者がこれらのプライオリティクラスを気軽に利用してしまい、本当に必要な system critical なコンポーネントが preempt されてしまうことを防ぐことが目的のようです。
**Note**この修正はワークアラウンドだと思われます。より一般的には、Quota Admission Configuration API を用いて実装することが可能です。
**Note** -
kubeadmにおいて、etcd,kube-apiserver,kube-proxyと言った control plane のコンテナイメージの指定にarch suffixを利用しないように変更しました。(#66960,
@rosti) [SIG Cluster Lifecycle, SIG Release, and SIG Testing] -
kubeadmにおいてHighAvailability,SelfHosting,CertsInSecretsの機能が非推奨になり、新しいクラスタ作成時に指定できなくなりました。またこれらのフラグを有効化されたクラスタのアップデートはサポートされません。(#67786, @fabriziopandini) [SIG Cluster Lifecycle]SIG の issue には細かいことが書いてありませんが、どうやら現在の実装は全て削除され、新たに `kubeadm` のサブコマンドとして再実装されるかも? ([kubernetes/kubeadm#1072](https://github.com/kubernetes/kubeadm/issues/1072))というステータスのようです。
**Note** -
kube-schedulerの設定ファイルであるKubeSchedulerConfigurationkind が、GroupVersionのcomponentconfig/v1alpha1からkubescheduler.config.k8s.io/v1alpha1に変更になりました。(#66916, @dixudx) [SIG Cluster Lifecycle, SIG Scheduling, and SIG Testing] -
kubeadmにおける--skip-preflight-checksが削除されました。--ignore-preflight-errorsを利用してください。(#62727, @xiangpengzhao) -
cloud config に OpenStack のロードバランサーの設定がなかった場合、ロードバランサーの初期化が行われないようになりました。(#65781, @zetaab)