Alibaba Cloud Container Compute Service (ACS) は、コミュニティ適合性テストに完全に準拠しています。このドキュメントでは、アップグレードに関する注意事項、新機能、非推奨 API、フィーチャーゲートなど、Kubernetes 1.32 の主な変更点について説明します。
コンポーネントのバージョン
次の表に、ACK クラスターでサポートされているコアコンポーネントのバージョンを示します。
コアコンポーネント | バージョン |
Kubernetes | 1.32.7-aliyun.1 |
etcd | v3.5.15 |
containerd | 1.6.36 |
CoreDNS | v1.11.3.2-f57ea7ed6-aliyun |
CSI | サポートされている最新バージョンにアップグレードされます。詳細については、コンポーネント csi-provisioner の変更履歴をご参照ください。 |
変更点
v1.32 以降、kube-apiserver は TLS 暗号スイートの
TLS_RSA_WITH_AES_256_GCM_SHA384およびTLS_RSA_WITH_AES_128_GCM_SHA256をサポートしなくなりました。この変更は、既存のクラスターを v1.32 にアップグレードする際に自動的に適用されます。v1.32 以降、RRSA 機能を有効にしても、kube-apiserver の
--api-audiencesパラメーターは変更されなくなりました。既存の設定は保持されます。この変更は、RRSA 機能がすでに有効になっているクラスターには影響しません。ServiceAccount のアノテーション
kubernetes.io/enforce-mountable-secretsは v1.32 で削除されました。個別の名前空間を使用して、Secret へのアクセスを分離してください。v1.26 でアルファ版として導入され、デフォルトで無効になっていた DRAControlPlaneController フィーチャーゲートは、v1.32 で削除されました。この機能を有効にして使用していた場合は、アップグレード後にワークロードの問題が発生するのを防ぐため、クラスターをアップグレードする前に、関連するリソースを削除してください。詳細については、「#128003」をご参照ください。
バージョン 1.32.7-aliyun.1 では、 CVE-2024-4563 が修正されています。
新機能
WatchList フィーチャーゲートがベータ版に昇格し、デフォルトで有効になりました。大規模な list 操作は、コントロールプレーンのリソース消費を大幅に増加させる可能性があります。WatchList 機能により、client-go は完全な list 操作の代わりにストリーミングリクエストを使用できるようになり、コントロールプレーンのリソース使用量を削減できます。kube-controller-manager コンポーネントでは、この機能がデフォルトで有効になっています。詳細については、「Enhancing Kubernetes API Server Efficiency with API Streaming」をご参照ください。
RelaxedEnvironmentVariableValidation フィーチャーゲートがベータ版に昇格し、デフォルトで有効になりました。この機能は環境変数名の検証ルールを緩和し、( = を除く) ほぼすべての印刷可能な ASCII 文字を環境変数名として使用できるようになります。
このバージョンでは、Pod のステータスレポートが改善されました。イメージプルが失敗した場合、Pod の
status.containerStatuses[*].state.waitingフィールドに、理由 (ImagePullBackOff) と失敗に関する詳細なメッセージが含まれるようになりました。CustomResourceFieldSelectors フィーチャーゲートは v1.32 で一般提供 (GA) となり、デフォルトで有効になりました。この機能により、CustomResourceDefinition (CRD) で
selectableFieldsを有効にできます。これは list、watch、deletecollection 操作で使用でき、CRD リソースをより効率的かつ正確にフィルタリングできます。StatefulSetAutoDeletePVC フィーチャーゲートは v1.32 で GA となり、デフォルトで有効になりました。この機能は、StatefulSet における PersistentVolumeClaim (PVC) の削除をきめ細かく制御します。StatefulSet で不要になった PVC を自動的にクリーンアップすることで、孤立した PVC の影響を軽減します。この自動クリーンアップは、StatefulSet の更新やノードメンテナンス中にはトリガーされません。
JobManagedBy フィーチャーゲートがベータ版に昇格し、デフォルトで有効になりました。この機能により、
spec.managedByフィールドを設定することで、外部コントローラーが Job のリコンサイルを管理できるようになり、Job のスケジューリングと管理の柔軟性が向上します。managedByフィールドは、組み込みの Kubernetes Job コントローラーの予約値であるkubernetes.io/job-controllerには設定できません。スケジューラの各プラグインに QueueingHint コールバック関数が統合されました。この関数は、Pod を再キューイングすべきかどうかをスケジューラに提案することで、不要なスケジューリングの再試行を減らし、スケジューリングスループットを向上させます。詳細については、「QueueingHint Brings a New Possibility to Optimize Pod Scheduling」をご参照ください。
RecoverVolumeExpansionFailure フィーチャーゲートがベータ版に昇格し、デフォルトで有効になりました。PVC の拡張が失敗した場合、通常は管理者による複雑な手動復旧が必要になります。この機能により、PVC の
.spec.resourcesのサイズを手動で縮小することで、データ損失なく PVC を迅速に復旧させることができます。具体的な手順については、「Recovering from Failure when Expanding Volumes」をご参照ください。AuthorizeWithSelectors および AuthorizeNodeWithSelectors フィーチャーゲートがベータ版に昇格しました。AuthorizeNodeWithSelectors は AuthorizeWithSelectors と一緒に使用する必要があります。有効にすると、AuthorizeNodeWithSelectors によって、ノードオーソライザーが認可のためによりきめ細かいセレクター (
fieldSelectorやlabelSelectorなど) を使用できるようになり、Kubernetes 認可システムの柔軟性が向上します。kubelet は最小限の権限を持ち、自身のノードオブジェクトとそれにバインドされた Pod のみを読み取ることができます。詳細については、「Using Node Authorization」をご参照ください。クライアントからの Pod ログリクエストの PodLogOptions パラメーターに
Streamフィールドが追加され、コンテナログのストリーミングリクエストが可能になりました。これにより、ログファイル全体のダウンロードを待つことなく、リアルタイムでログをクライアントに送信できます。StreamフィールドとTailLinesフィールドは同時に使用できないことにご注意ください。JobController が最適化され、特に大規模なシナリオにおいて、Job の更新および削除のパフォーマンスが大幅に向上しました。詳細については、「#126567」、「#127228」、「#127378」をご参照ください。
kube-proxy が最適化され、Service の更新を監視する際に
fieldSelector: clusterIP!=Noneを使用するようになりました。これにより、ヘッドレスサービスの監視を回避し、不要な帯域幅の消費を削減します。詳細については、「#126769」をご参照ください。
非推奨 API
FlowSchema と PriorityLevelConfiguration の
flowcontrol.apiserver.k8s.io/v1beta3API バージョンは v1.32 で非推奨になりました。v1.29 から利用可能になっているflowcontrol.apiserver.k8s.io/v1API バージョンに移行してください。flowcontrol.apiserver.k8s.io/v1バージョンでは、PriorityLevelConfiguration のspec.limited.nominalConcurrencySharesフィールドは、指定がない場合、デフォルトで 30 になります。明示的に0に設定されている場合は、30には変更されません。
参考情報
Kubernetes 1.32 の完全な変更履歴については、「CHANGELOG-1.32」および「Kubernetes v1.32: Penelope」をご参照ください。