はじめに
このエントリは、Kubernetes 1.15 の CHANGELOG からUrgent Upgrade Notes と 既知の問題 (Known Issues)についてまとめています。翻訳に合わせて補足を追記しています。その他の内容は
既知の問題点(Known Issues)
- kubeadm 1.15.0では、コントロールプレーンノードを同時に参加させることはできません。 この機能は1.15.0でのリリースを予定していましたが、フォローアップパッチリリースで修正されるかもしれません。
-
--log-file
を使うことは1.15では問題があることが知られています。 これは物事が同じファイルに複数回記録されているように見えます。 この問題の動作と詳細、およびそれを修正するためのいくつかの予備的な試みがこちらに文書化されています。
アップグレード前に確認が必要な注意点(Urgent Upgrade Notes)
API Machinery
-
k8s.io/kubernetes
と公開されているコンポーネント(k8s.io/client-go
やk8s.io/api
のような)は依存バージョン情報を含むgoモジュールファイルを含んでいます。 goモジュールを使ってk8s.io/client-go
を使うことについての詳細は go-modules を参照してください。
Apps
- hyperkube docker imageは現在これらのエイリアスを作成するので、hyperkubeの短いエイリアスはソースコードから削除されました。 (#76953、@Rand01ph)
-
apiserver
,controller-manager
,proxy
,scheduler
のエイリアスが削除されたため、利用していた方はkube-apiserver
のように省略されていない指定に変更する必要があります。
-
Auth
AWS
- v1.13 で廃止予定の
system:aws-cloud-provider
クラスタロールはもはや自動作成されていません。 AWSクラウドプロバイダーを使用するデプロイはデプロイの一部としてkube-system
名前空間のaws-cloud-provider
サービスアカウントに必要な権限を与えるべきです。(#66635, @wgliang)
Azure
- KubeletはAzure上でIDなしで実行できるようになりました。 サンプルクラウドプロバイダ設定は次のとおりです。
{"vmType":"vmss"、"useInstanceMetadata":true、"subscriptionId":"<subscriptionId> "}
- 複数のKubernetesクラスタが同じリソースグループを共有できるようになりました
- Azureクラウドプロバイダーのクラウド設定は、Kubernetes Secret オブジェクトの kube-system/azure-cloud-provider設定できるようになりました
- Secretオブジェクトはcloud-configキーにシリアライズされたバージョンの
azure.json
ファイルを持ちます。 そしてSecretの名前はazure-cloud-providerとなっています。 - cloud-configファイルに新しいオプションcloudConfigTypeが追加されました。 サポートされている値は
file
、secret
そしてmerge
です(merge
がデフォルト値です)。 - Azureクラウドプロバイダーに Secret オブジェクトの読み取りを許可するには、RBACの規則を構成する必要があります。
- Secretオブジェクトはcloud-configキーにシリアライズされたバージョンの
CLI
- 1.10 で廃止予定となっていた
kubectl scale job
は 、削除されました。(#78445, @soltysh) - 廃止予定となっていた
kubectl exec
のための--pod/p
フラグは削除されました。このフラグは 1.12 で廃止予定となっていました。(#76713, @prksu)
Lifecycle
- 廃止予定の古いkubeadm v1alpha3設定のサポートは完全に削除されました。(#75179, @rosti)
- kube-up.sh は "centos" と "local" プロバイダのサポートをしなくなりました。 (#76711, @dims)
Network
- 廃止予定となっていた
--conntrack-max
がkube-proxyから削除されました。このフラグを使う人は代わりに--conntrack-min
と--conntrack-max-per-core
に切り替えるべきです。 (#78399, @rikatz) - 廃止予定となっていた
--cleanup-iptables
が kube-proxy から削除されました。 (#78344, @aramase)
Node
- 廃止予定となっていた kubelet の
AllowPrivileged
,HostNetworkSources
,HostPIDSources
, andHostIPCSources
フラグが削除されました。これらの制限を実施する場合は 代わりに admission control (PodSecurityPolicyなど)を通して制限すべきです。(#77820, @dims) - 廃止予定となっていた kubelet の
--allow-privileged
フラグが削除されました。 kubelet のマニフェストファイルや kubelet を起動するためのスクリプトからそのフラグを削除してください。(#77820, @dims) - kubeletはノード、コンテナランタイム、kubelet、pod、コンテナのcgroupsメトリクスのみを収集するようになりました。(#72787, @dashpole)
Storage
-
Node.Status.Volumes.Attached.DevicePath
フィールドはCSIボリュームに対して設定解除されました。 このフィールドに依存するすべての外部コントローラを更新する必要があります。(#75799, @msau42) - CSI alpha CRD が削除されました。(#75747, @msau42)
-
StorageObjectInUseProtection
アドミッションプラグインはデフォルトで有効になりました。 デフォルトで有効になっているアドミッションプラグインは v1.15.0 ではNamespaceLifecycle
、LimitRanger
、ServiceAccount
、PersistentVolumeLabel
、DefaultStorageClass
、DefaultTolerationSeconds
、MutatingAdmissionWebhook
、ValidatingAdmissionWebhook
、ResourceQuota
、StorageObjectInUroteProtection
です。--admission-control
フラグを設定していなかった場合、クラスタの振る舞いが変わるかもしれませんので注意してください。 (#74610, @oomichi)