はじめに
このエントリは、Kubernetes 1.22 の CHANGELOG からアップグレード時に確認すべき内容をまとめています。
具体的には以下の項目を翻訳し、適宜補足やコメントを追加しています。
- Known Issues
- Urgent Upgrade Notes
このエントリでは翻訳部分と補足などの筆者の追加のコメントは のあとに追加するようにしています。
Known Issues
複数のコンテナを持つGuaranteed PodでCPUとメモリマネージャーが正しく機能していません
複数のコンテナーを持つGuaranteedポッドが、CPU、メモリ、およびデバイスマネージャーの設定された割り当てで正しく機能しないというリグレッションバグが見つかりました。今後のリリースで修正される予定です。
- リリースノートに載っていませんが、v1.22.1で修正されているようです。
CSIMigrationvSphere
feature gate は新たなCRD APIへマイグレートされていない
CSIMigrationvSphereのFeature Gateが有効になっている場合、ユーザーはKubernetes v1.22にアップグレードしてはいけません。
vSphere CSIドライバは、v1beta1のCRD APIを使用するため、まだKubernetes V1.22をサポートしていません。
v1.22のサポートは今後のリリースで追加されます。
サポートされているKubernetesリリースについては、vSphere CSI Driver versionのドキュメントを確認してください。
Urgent Upgrade Notes
- Audit logファイルは0600で作成されるようになりました。既存のファイルのパーミッションは変更されません。もしnon-rootユーザによってaudit fileを読めるようにする必要があれば、事前に望まれたパーミッションでファイルを生成する必要があります。 (#95387, @JAORMX) [SIG API Machinery and Auth]
- AWS EBSボリュームのCSI Migrationでは、AWS EBS CSI driver ver. 1.0がサポートするStorageClassのallowAutoIOPSPerGBIncreaseパラメータが必要です。(#101082, @jsafrane)
- Conformanceイメージはdistrolessでビルドされるようになりました。Conformanceテストをマニュアルで
/run_e2e.sh
や/gorunner
を呼び出す代わりにコンテナのエントリーポイントに依存しているユーザは、それらは非推奨となりv1.25で廃止されることに気をつけてください。ginkgo
やe2e.test
の呼び出しは現在もサポートされています。(https://github.com/kubernetes/kubernetes/pull/99178), @wilsonehusin)
- デフォルトの
StreamingProxyRedirects
は無効化されました。もしマスターとノード間で2つ以上のバージョン違いがあり、ノードで--redirect-container-stream
が有効化されている場合に問題となります。この場合、StreamingProxyRedirects
はまだマニュアルで有効化することができます。(#101647, @pacoxu)
- Intreeのvolume pluginであるscaleIOのサポートは完全にKubernetesから削除されました。(#101685, @Jiawei0227)
- kubeadm: Docker向けのcgroupドライバーの自動判定を削除しました。新しいクラスタを構築する際にcgroupドライバーを明示的に設定していない場合、
kubelet
のドライバーの不一致で失敗することがあります (kubeadmのクラスタはsystemd
ドライバーを使うべきです)。また、同じようにDockerのcgroupドライバーがsystemd
に設定されていることを確認するIsDockerSystemdCheck
の事前チェック(警告)も削除されました。理想的には、このような検出と調整はCRIの実装とkubelet
との間で行われるべきです(#99808)。kubeadmでどのようにcgroupドライバーを手動で設定するかについては該当のページをご覧ください。(#99647, @neolit123)
- kubeadm:
--cri-socket
フラグと--config
フラグを同時に指定することができなくなりました。ノードのCRIソケットを設定したい場合はkubeadmの設定ファイルの{Init|Join}Configuration.nodeRegistration.criSocket
を指定してください。 (#101600, @KofClubs)
- kubeadm:
--experimental-patches
フラグは非推奨になりました、将来のリリースで削除されます、新しい--patches
フラグに移行してください。また、設定ファイルに新しいフィールド、--experimental-patches
が追加され、同じ目的に利用することができます。initおよびjoin時には{Init|Join}Configuration.patches.directory
を利用してパッチを設定する方法に移行することをお勧めします。今のところ、これらのフラグは--config
と混在させることができますが、将来的には変更されるかもしれません。コマンドラインでは、最後の--patches
フラグがそれまでのフラグや config の値よりも優先されます。kubeadm upgrade --patches
は今後も唯一の選択肢となります。 (#103063, @neolit123)
- Azure Diskによる新規プロビジョニングされたPVは、ベータのFailureDomainのラベルを持っていません。Azure Disk Volume Pluginは代わりにGAされたトポロジーラベルを持ちます(#101534, @kassarl)
- SchedulerのCycleStateはRead()関数とWrite()関数の中に、内部のリード/ライトロックを組み込むようになりました。一方で、
Lock()
とUnlock()
関数は削除されました。スケジューラプラグインの開発者は、CycleState#Lock()
とCycleState#Unlock()
を削除する必要があります。Read()とWrite()は、ネイティブにスレッドセーフなので、単純に使用してください。(#101542, @Huang-Wei)
-
CSIMigrationVSphereComplete
のフラグは削除されました。今後InTreePluginvSphereUnregister
が利用されます。(#101272, @Jiawei0227)