Kubernetes 1.16 の Changelog の Deprecations and Removals の内容についてまとめました。
廃止予定と削除されたもの
API
以下の API はデフォルトではサーブされなくなりました。
- すべての
apps/v1beta1
とapps/v1beta2
。apps/v1
を代わりに利用してください。 -
extensions/v1beta1
のdaemonsets
,deployments
,replicasets
リソース。apps/v1
を代わりに利用してください。 -
extensions/v1beta1
のnetworkpolicies
リソース。networking.k8s.io/v1
を代わりに利用してください。 -
extensions/v1beta1
のpodsecuritypolicies
リソース。policy/v1beta1
を代わりに利用してください。
サーブされなくなった APIVersion を使っているマニフェストは、1.16 以降デプロイできなくなります。マニフェストの適用時に以下のようなエラーとなります。最新の API Version にアップデートしましょう。
$ kubectl apply -f myapp-deploy.yaml
error: unable to recognize "myapp-deploy.yaml": no matches for kind "Deployment" in version "apps/v1beta1"
これらのリソースのサーブを一時的に有効化したい場合は、--runtime-config
を API サーバーのフラグに指定します。
apps/v1beta1=true
apps/v1beta2=true
extensions/v1beta1/daemonsets=true,extensions/v1beta1/deployments=true,extensions/v1beta1/replicasets=true,extensions/v1beta1/networkpolicies=true,extensions/v1beta1/podsecuritypolicies=true
これらのサーブ機能は v1.18 で完全に削除されます。(#70672, @liggitt)
- v1.20 で Ingress リソースは
extensions/v1beta1
からサーブされなくなります。.v1.14 から使えるnetworking.k8s.io/v1beta1
API に移行してください。既存の永続化されたデータはnetworking.k8s.io/v1beta1
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 で削除されます。 -
apiextensions.k8s.io/v1beta1
のCustomResourceDefinition
は廃止予定となり、v1.19 からサーブされなくなります。代わりにapiextensions.k8s.io/v1
を利用してください。(#79604, @liggitt) -
admissionregistration.k8s.io/v1beta1
のMutatingWebhookConfiguration
とValidatingWebhookConfiguration
は廃止予定となり、v1.19 からサーブされなくなります。代わりにadmissionregistration.k8s.io/v1
を利用してください。(#79549, @liggitt) - 1.13 で廃止予定になったアルファの
metadata.initializers
フィールドは削除されました。(#79504, @yue9944882) - 廃止予定だったノードの状態
OutOfDisk
が削除されました。代わりにDiskPressure
を利用してください。(#72420, @Pingan2017) - 個々と List オブジェクトの
metadata.selfLink
フィールドは廃止予定となりました。v1.20 から返却されなくなり、v1.21 でフィールドが完全に削除されます。(#80978, @wojtek-t)- KEP を見ると、元々活用されていないフィールドだったようです。(オブジェクトの URL が入っていたが、オブジェクトを取得するにはそもそも URL を知っている必要があった)
- 廃止予定だったクラウドプロバイダー
ovirt
,cloudstack
,photon
が削除されました。(#72178, @dims) - ボリュームプロバイダーの
Cinder
とScaleIO
が廃止予定となり、将来のリリースで削除されます。(#80099, @dims) - GAの
PodPriority
の feature gate はデフォルトで有効となり、無効にできなくなりました。feature gate は v1.18 で削除されます。(#79262, @draveness) - Aggregated discovery のリクエストがタイムアウトするようになりました。Aggregated API サーバーは discovery のコールを 5 秒以内に返す必要があります(discovery 以外のリクエストは関係ない)。もし、一時的に以前の30秒のタイムアウトの挙動に戻す必要がある場合は、feature gate の
EnableAggregatedDiscoveryTimeout=false
を利用してください。(v1.17 でEnableAggregatedDiscoveryTimeout
は削除されます)(#82146, @deads2k) -
scheduler.alpha.kubernetes.io/critical-pod
アノテーションが削除されました。Pod をクリティカルとして扱いたい場合は Pod priority (spec.priorityClassName
) を利用してください。(#80342, @draveness)-
代用の PriorityClass として
system-cluster-critical
とsystem-node-critical
(より高い) の 2つが用意されています。この2つはユーザが設定できる最大の優先度 1,000,000,000 を超える特別な優先度(2,000,000,000 と 2,000,001,000)になっています。
-
代用の PriorityClass として
- NormalizeScore プラグインセットがスケジューラフレームワークの config API から削除されました。ScorePlugin のみを使ってください。(#80930, @liu-cong)
機能
- 以下の機能が GA となりました。関連する feature gate は廃止予定となり、v1.17 で削除されます。
-
GCERegionalPersistentDisk
(1.15.0 から) CustomResourcePublishOpenAPI
CustomResourceSubresources
CustomResourceValidation
CustomResourceWebhookConversion
-
- feature フラグの
HugePages
,VolumeScheduling
,CustomPodDNS
,PodReadinessGates
が削除されました。 (#79307, @draveness)
hyperkube
- 1.14 から廃止予定だった
--make-symlinks
フラグが削除されました。(#80017, @Pothulapati)
kube-apiserver
-
--basic-auth-file
フラグとその認証モード (basic 認証) が廃止予定となり、将来のリリースで削除されます。この認証方法はプロダクション環境では非推奨です。(#81152, @tedyu) -
--cloud-provider-gce-lb-src-cidrs
フラグが廃止予定となりました。このフラグは GCE Cloud Provider が kube-apiserver から削除された時点で、削除されます。(#81094, @andrewsykim) - v1.15 から廃止予定だった
--enable-logs-handler
フラグは v1.19 で削除される予定です。(#77611, @rohitsardesai83) - デフォルトの Service IP CIDR が 廃止予定になりました。今までののデフォルトは
10.0.0.0/24
は、6ヶ月(2リリース)後に削除されます。クラスタ管理者は kube-apiserver の--service-cluster-ip-range
で希望する値を指定する必要があります。(#81668, @darshanime)
kube-proxy
- kube-proxy から
--resource-container
フラグが削除され、指定した場合エラーになるようになりました。挙動は以前--resource-container=""
指定したものになります。空以外を--resource-container
に指定した場合は、1.16 では同じようにすることはできなくなります。(#78294, @vllry)
kube-scheduler
-
スケジューラは v1beta1 Event API を利用するように移行しました。スケジューラのイベントを対象としたツールは v1beta1 Event API を利用する必要があります。(#78447, @yastij)
kubeadm
※以下すべて CoreDNS のバージョンが 1.6.2 に上がったことによる変更点です。
- CoreDNS の Deployment は
ready
プラグインを使って readiness をチェックするようになりました。 -
proxy
プラグインは廃止予定になりました。代わりにforward
プラグインを使ってください -
Kubernetes
プラグインから resyncperiod オプションが削除されました。 -
upstream
オプションは廃止予定となり、無視されるようになりました。(#82127, @rajansandeep)
kubectl
- v1.14 から廃止予定だった
kubectl convert
は v1.17 で削除されます - v1.14 から廃止予定だった
kubectl get
の--export
フラグは、v1.18 で削除されます -
kubectl cp
はコンテナのシンボリックリンクのコピーをサポートしなくなりました。このようなユースケースの場合はkubectl exec --help
のtar
を直接使う例をご覧ください。 (#82143, @soltysh)-
Changelog の間違いかもしれませんが、ヘルプは
kubectl cp --help
を見たほうが良さそうです。
-
Changelog の間違いかもしれませんが、ヘルプは
- 廃止予定だった
--include-uninitialized
フラグを削除しました。 (#80337, @draveness)
kubelet
- v1.14 から 廃止予定だった
--containerized
フラグが削除されました。(#80043, @dims) - v1.14 から廃止予定だった
beta.kubernetes.io/os
とbeta.kubernetes.io/arch
ラベルは v1.18 で削除されます-
v1.14 からは正式版の
kubernetes.io/os
とkubernetes.io/arch
ラベルを代わりに利用します
-
v1.14 からは正式版の
- v1.15 から廃止予定だった cAdvisor の json エンドポイントが削除されました (#78504, @dashpole)
-
specifically allowed labels/prefixes 以外の
kubernetes.io
やk8s.io
をプレフィクスとするラベルを-node-labels
経由で設定できる機能が削除されました。(#79305, @paivagustavo)
client-go
-
DirectCodecFactory
とDirectEncoder
が削除され、それぞれ、runtime.WithVersionEncoder
とruntime.WithoutVersionDecoder
に置き換えられます。(#79263, @draveness)