はじめに
このエントリは、Kubernetes 1.19 の CHANGELOG からアップグレード時に確認すべき内容をまとめています。
具体的には以下の項目を翻訳し、適宜補足やコメントを追加しています。
- Urgent Upgrade Notes
- Known Issues
その他の内容は Kubernetes 1.19 の変更点まとめを参照ください。
このエントリでは翻訳部分と補足などの筆者の追加のコメントは のあとに追加するようにしています。
アップグレード時に確認すべき注意事項(Urgent Upgrade Notes)
- マスターコンポーネントのベースイメージ(kube-controller-manager)が debian から distroless に変更されました。もし、スクリプトを使用するFlex Volumeのサポートが必要な場合には、必要なパッケージ(bashなど)を持った独自イメージをビルドしてください。(#91329, @dims) [SIG Cloud Provider, Release, Storage and Testing]
- ベーシック認証をサポートするために利用する
--basic-auth-file
フラグが削除されました。似た機能を利用を続けたい場合は--token-auth-file
に移行してください。(#89069, @enj) [SIG API Machinery]- API server の認証としてサポートされていたベーシック認証が削除されたという話です。
- Azure blob disk(kind: Shared, Dedicated)は非推奨になりました。kind: Managedをkubernetes.io/azure-diskのStorage Classで使用する必要があります。(#92905, @andyzhangx) [SIG Cloud Provider and Storage]
- CVE-2020-8559 (Medium): Kubeletへのリクエストを攻撃者に傍受されると元のリクエストの認証情報を利用できる問題(詳細はこちら#92914)に対応するため、APIサーバは101以外のアップグレードリクエストをプロキシしなくなりました。101レスポンス以外をレスポンスするバックエンド(拡張APIサーバなど)が動かなくなる可能性があります。
- 1.18.6, 1.17.9 などでもこの変更は含まれています。該当するバージョンを利用している方は早めのアップグレードをおすすめします。
- kubeadm は非推奨の
--cgroup-driver
フラグを/var/lib/kubelet/kubeadm-flags.env
に設定しなくなりました。kubeletconfig.yaml
で設定されます。/var/lib/kubelet/kubeadm-flags.env
または/etc/default/kubelet
(RPMの場合は/etc/sysconfig/kubelet
)にこのフラグがある場合は、それを削除し、KubeletConfigurationを使用して値を設定してください (#90513, @SataQiu) [SIG Cluster Lifecycle] - Kubeadm は ClusterConfiguration でユーザー指定の etcd バージョンを尊重し、適切に使用するようになりました。 ClusterConfiguration で指定されたバージョンを維持したくない場合は、kubeadm-config 構成マップを編集して削除する必要があります。(#89588, @rosti) [SIG Cluster Lifecycle]
- Kubeadm は、systemd-resolved サービスがアクティブであっても、ユーザーが設定した resolvConf 値を尊重します。 kubeadmは、
/var/lib/kubelet/kubeadm-flags.env
の--resolv-conf
にフラグを設定しなくなりました。/var/lib/kubelet/kubeadm-flags.env
または/etc/default/kubelet
(RPMの場合は/etc/sysconfig/kubelet
)にこのフラグがある場合は、それを削除し、KubeletConfiguration を使用して値を設定してください。(#90394, @SataQiu) [SIG Cluster Lifecycle] - Kubeadm:
kubeadm init
ワークフローで実施される kubelet-start フェーズを kubeconfig フェーズの後に移動します。 これにより、kubeletConfiguration コンポーネントの構成ファイル(/var/lib/kubelet/config.yaml
)が生成された後にのみ kubeadm が kubelet を起動し、OpenRC などの init システムが kubelet サービスをクラッシュループできない問題を解決します。(#90892, @xphoniex) [SIG Cluster Lifecycle] -
kubeadm config upload
コマンドは、 GA の廃止サイクルが終わり、削除されました。今後使用する場合は代わりにkubeadm init phase upload-config
を使用してください。(#92610, @rosti) [SIG Cluster Lifecycle] -
kubescheduler.config.k8s.io/v1alpha2
はkubescheduler.config.k8s.io/v1beta1
にアップグレードされました。(#91420, @pancernik) [SIG Scheduling]-
.bindTimeoutSeconds
はプロファイル毎に設定が分けられVolumeBinding
のためのプラグインの引数の一部に移動しました -
.extenders
は API 標準を満たすために更新されました-
.extenders
の復号化は大文字と小文字を区別するようになりました。これはすべてのフィールドに影響します。 -
.extenders[*].httpTimeout
はmetav1.Duration
になりました -
.extenders[*].enableHttps
は.extenders[*].enableHTTPS
に名前が変更されました
-
-
RequestedToCapacityRatio
の復号化は大文字と小文字を区別するようになりました。これはすべてのフィールドに影響します。 -
DefaultPodTopologySpread
[plugin] はSelectorSpread
に名前が変更されました -
Unreserve
extension point は プロファイル定義から削除されました。すべてのReserve
プラグインはUnreserve
を呼び出すように実装する必要があります。 -
.disablePreemption
は削除されました。 DefaultPreemption PostFilter plugin によって preemption を無効化することができます。
-
既知の問題点(Known Issues)
- 新しく登場したアルファ機能のStorage capacity trackingは、ボリュームのbinding modeWaitForFirstConsumerの制限の影響を受けることが知られています #94217