はじめに
このエントリは、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)