LoginSignup
19
10

More than 1 year has passed since last update.

Kubernetes 1.26: 変更点まとめ(What's new!)とアップグレード時の注意事項

Last updated at Posted at 2023-01-12

はじめに

このエントリは、Kubernetes 1.26 の CHANGELOG 及びKubernetes v1.26: ElectrifyingからWhat's new!とアップグレード時の注意事項、各変更点についてまとめたページへのリンクです。
詳細については各まとめページを参照してください。

変更点の詳細へのリンク

What's New (Major Themes)

Change in container image registry

前のリリースでは、Kubernetesはコンテナレジストリを変更し、複数のクラウドプロバイダやリージョンに負荷分散できるようになり、この変更により単一のエンティティへの依存を減らし、多くのユーザにとってより高速なダウンロード体験が提供されるようになりました。

このKubernetesのリリースは新しい registry.k8s.io コンテナイメージレジストリでのみ配布される最初のリリースです。(今となってはlegacyの) k8s.gcr.io イメージレジストリでは、v1.26のためのタグを持つコンテナイメージは配布されず、v1.26より前のタグのみアップデートされ続けます。この重要な変更の動機、利点、および意味についてはregistry.k8s.io: faster, cheaper and Generally Availableをご参照ください。

CRI v1alpha2 removed

Container Runtime Interface(CRI)とv1.24のdockershimの削除により、CRIは異なるコンテナランタイムと対話するための唯一のサポートされ文書化された方法となっています。各kubeletはそのノード上のcontainer runtimeとどのCRIバージョンを利用するかネゴシエートします。

以前のリリースでは、KubernetesプロジェクトはCRI versionであるv1を利用する様に推奨していましたが、kubeletはv1alpha2の利用のネゴシエートを続けており、それは非推奨とされていました。

Kubernetes v1.26ではCRI v1alpha2のためのサポートしなくなりました。その削除によりkubeletがcontainer runtimeがCRI v1をサポートしない場合、ノードを登録しなくなります。これはcontainerdのマイナーバージョン1.5以前はKubetrnetes v1.26ではサポートしていないということです。もしcontainerdを利用する場合、ノードをKubernetes v1.26へアップグレードする前にcontainerdのバージョンを1.6.0以降へアップグレードする必要があります。これはv1alpha2のみをサポートする他のコンテナランタイムも同様に適用されます。もし影響がある場合、コンテナランタイムのベンダーに連絡してアドバイスをもらうか、そのウェブサイトで今後の進め方について追加で確認する必要があります。

Storage improvements

以前のリリースでコアのContainer Storage Interface (CSI) Migration機能のGAに続き、CSI migrationは数リリース前から取り組んでいる継続的な取り組みで、今回のリリースでもマイグレーションの目標に沿った機能の追加(および削除)、およびKubernetesストレージのその他の改良が行われています。

CSI migration for Azure File and vSphere graduated to stable

vSphereAzureのin-tree driverのCSI migrationはStableへ昇格しました。より詳細な情報が知りたい場合はvSphere CSI driverAzure File CSI driverリポジトリをご参照ください。

Delegate FSGroup to CSI Driver graduated to stable

この機能により、Kubernetesはボリュームのマウント時にPodのfsGroupをCSIドライバーに供給し、ドライバーはマウントオプションを利用してボリュームのパーミッションを制御できるようになります。以前は、Kubeletは常にPodの.spec.securityContext.fsGroupChangePolicyフィールドで指定されたポリシーに従ってボリューム内のファイルへのfsGroupownershipとパーミッション変更を適用していました。このリリースから、CSIドライバには、ボリュームのアタッチ時またはマウント時にfsGroup設定を適用するオプションが追加されました。

In-tree GlusterFS driver removal

v1.25のリリースで既に非推奨となっていたin-treeのGlusterFSドライバーはこのリリースで削除されました。

In-tree OpenStack Cinder driver removal

このリリースで非推奨となっていたOpenStack(cinder volume type)のためのin-treeのストレージ統合は削除されました。代わりに https://github.com/kubernetes/cloud-provider-openstack のexternal cloud provider及びCSI dirverへ移行すべきです。より詳細な情報はCinder in-tree to CSI driver migrationをご参照ください。

Signing Kubernetes release artifacts graduates to beta

Kubernetes v1.24で導入されたこの機能は、Kubernetesリリースのセキュリティを向上させる重要なマイルストーンを構成しています。すべてのリリースアーティファクトはcosignを使用してキーレスで署名され、バイナリアーティファクトとイメージの両方が検証可能です。

Support for Windows privileged containers graduates to stable

Privileged containerのサポートは直接ホスト上で動作するプロセスと同様にホストへアクセス権をもつコンテナを実行できます。Windowsノードでこの機能をサポートは、HostProcess containersと呼ばれ、今回Stableとなり、privileged containerからネットワークリソースなどを含むホストのリソースへアクエスできる様になりました。

Improvements to Kubernetes metrics

このリリースはいくつかの注目すべきメトリクスの改善が含まれます。

Metrics framework extension graduates to alpha

metrics framework extensionはalphaとなりKubernetesコードベースの全てのメトリクスについてドキュメントが公開されました。今回のエンハンスメントでは二つのメタデータフィールドをKubernetesのメトリクスへ追加しました: InternalとBetaの2つのメタデータフィールドが追加され、メトリクスの成熟度の異なる段階を表しています。

Component Health Service Level Indicators graduates to alpha

Kubernetesのメトリクスを消費する機能を改善し、コンポーネントヘルスのService Level Indicator(SLI)Alphaになりました。ComponentSLIs feature フラグを有効にすると、メトリクス形式に変換された生のヘルスチェック・データからサービスレベル目標(SLO)を計算できる追加のメトリックエンドポイントが追加されます。

Feature metrics are now available

FeatureメトリクスがそれぞれのKubernetesコンポーネントで利用可能となり、コンポーネントのメトリクスエンドポイントのkubernetes_feature_enabledをチェックすることによりそれぞれのアクティブなfeature gateが有効化されているかどうかを追うことが可能となります。

Dynamic Resource Allocation graduates to alpha

Dynamic Resource Allocation新たな機能でresource schedulingをthird-partyの開発者へ委ねるものです: それはリソースを要求する(例えばnvidia.com/gpu: 2)ために制限された"カウント可能な"インターフェースを代替を提供し、より永続ボリュームに類似した API を提供します。内部的にはそれはdeviceをインジェクションするためにContainer Device Interface(CDI)を利用します。この機能はDynamicResourceAllocation feature gateによりブロックされています。

CEL in Admission Control graduates to alpha

この機能validation admission policiesのためのv1alpha1 APIを導入し、Common Expression Languageを用いて拡張可能なadmission controlを有効化します。現在、カスタムポリシーはadmission webhookにより強制されており、それは柔軟な一方in-processなポリシーの執行と比較するといくつか欠点があります。利用するためにはValidatingAdmissionPolicy feature gateを有効化し、かつadmissionregistration.k8s.io/v1alpha1--runtime-config経由で有効化する必要があります。

:pencil: 簡単ではありますがこちらの機能を調査しましたので、ご興味がある方はこちらもご参照ください!

Pod scheduling improvements

Kubernetes v1.26では、スケジューリング動作をより適切に制御する機能に関連するいくつかの機能強化が導入されています。

PodSchedulingReadiness graduates to alpha

この機能は.spec.schedulingGatesフィールドをPodのAPIへ追加し、Podがスケジュールされることを許可されているかどうかを示します。外部のユーザやコントローラはこのフィールドを使用してポリシーや必要に基づきスケジューリングからPodをホールドできます。

NodeInclusionPolicyInPodTopologySpread graduates to beta

topologySpreadConstraintsのnodeInclusionPolicyを指定することで、Pod Topology Spreadのスキューを計算する際に、taintas/tolerationsを考慮するかどうかをコントロールできます。

Other Updates

Graduations to stable

このリリースは合計11のenhancementsがStableへの昇格を含みます。

Deprecations and removals

このリリースでKubernetesから12の機能が非推奨または削除されました。

Urgent Upgrade Notes

(No, really, you MUST read this before you upgrade)

  • OpenStackのためのin-treeのcloud provider(とcinder volume provider)は削除されました。代わりにcloud-provider-openstackからexternal cloud providerとcsi driverを利用してください。(#67782, @dims)
19
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
10