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