LoginSignup
9
5

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-09-28

はじめに

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

変更点の詳細へのリンク

What's New (Major Themes)

PodSecurityPolicy is Removed, Pod Security Admission graduates to Stable

PodSecurityPolicyはv1.21で非推奨とされ、v1.25で削除されました。その更新は使い勝手を良くするために必要な更新は破壊的変更をもたらし、それはより使いやすい代替機能でそれを置き換えるために必要です。その置き換えはPod Security Admissionで、このリリースでStableへ昇格しました。もしPodSecurityPolicyへ依存している場合は、PodSecurity Admissionへ移行するための導入をご参照ください。

Ephemeral Containers Graduate to Stable

Ephemeral Containerは既存のPodの中で限られた時間の間存在するコンテナです。これは特に他のコンテナを調査したいが、そのコンテナがクラッシュしていたり、イメージにデバッグユーティリティがないことで、kubectl execを使用できない場合のトラブルシューティングに便利です。エフェメラルコンテナはKubernetes v1.23でBetaに昇格し、今回のリリースでStableに昇格しました。

Support for cgroups v2 Graduates to Stable

Linuxカーネルのcgroup v2 APIが安定したと宣言されてから、2年以上が経過しました。このAPIはいくつかのディストリビューションで現在デフォルトであり、Kubernetesはそれらのディストリビューションで動作し続けるために、このAPIをサポートする必要があります。cgroups v2はcgroup v1に対していくつかの改善を提供しています。詳細についてはcgroups v2のドキュメントをご参照ください。cgroup v1はサポートされ続けますが、このエンハンスメントはKubrnetesはやがてくる非推奨とv2への置き換えに備えることができます。

Windows support improved

Moved container registry service from k8s.gcr.io to registry.k8s.io

k8s.gcr.ioからregistry.k8s.ioへのコンテナレジストリの移行がマージされました。詳細はwiki pageとkubernetes development mailing listへ送信されたアナウンスをご参照ください。

Promoted SeccompDefault to Beta

SeccompDefaultはbetaへ昇格しました。詳細はRestrict a Container's Syscalls with seccompをご参照ください。

Promoted endPort in Network Policy to Stable

Network PolicyendPortはGAへ昇格しました。endPortフィールドをサポートしているNetwork PolicyプロバイダーはNetwork Policyを適用するためにポートの範囲を指定するためにそれを利用できます。以前は、それぞれのNetwork Policyは単一のPortのみをターゲットすることができました。

endPortフィールドはNetwork Policy providerによって必ずサポートされなければならないフィールドであることにご注意ください。もしあなたのプロバイダーがendPortをサポーしておらずこのフィールドはNetwork Policyで指定している場合、Network Policyはportフィールドのみをカバーするように作られます(単一のポート)。

Promoted Local Ephemeral Storage Capacity Isolation to Stable

Local Ephemeral Storage Capacity Isolation機能がGAへとなりました。これは、1.8でalphaとして導入され、1.10でbetaとなり、そして現在stable機能となりました。それはEmptyDirのようなPod間のローカルエフェメラルストレージの分離をサポートを提供し、ローカルエフェメラルストレージの消費量がその上限を超えるとPodを退避させることでPodが共有リソースの消費を厳しく制限できるようにします。

  • :pencil: この記事のGAに関するブログはこちら

Promoted core CSI Migration to Stable

CSI MigrationはSIG Storageがいくつかのリリースで実施してきている進行中の取り組みです。core CSI Migration機能はGAとなりました。GCE PDとAWS EBSのためのCSI MigrationはGAとなりました。vSphereのためのCSI Migrationはbetaのままです(しかしデフォルトでオンです)。PortworxのためのCSI MigrationはBetaへ移行しました(しかしデフォルトでオフです)。

Promoted CSI Ephemeral Volume to Stable

CSI Ephemeral Volume機能はCSI volumeがPodのスペックで一次的な利用のために直接指定されることを許容する機能です。これらはPodへマウントされるボリュームへ直接、設定、シークレット、アイデンティティー、変数または同様の情報など、任意の状態をポッド内部に注入するために使用することができます。これは当初1.15でアルファ版機能として導入され、GAに移行しました。この機能はsecret-store CSIドライバのようないくつかのCSIドライバで使用されています。

Promoted CRD Validation Expression Language to Beta

CRD Validation Expression Languageはbetaへ移行しました。それはどのようにカスタムリソースが検証されるかをCommon Expression Language (CEL)で定義するための機能です。詳細はvalidation rulesガイドを見てください。

Promoted Server Side Unknown Field Validation to Beta

ServerSideFieldValidation feature gateはbetaへ昇格しました(デフォルトでオン)。これにより、未知のフィールド検知されたとき、エラーとなるAPIサーバー上のスキーマ検証をオプションでトリガーすることができます。これは未知のフィールドや無効なフィールドを含むリクエストをエラーにするという同様のコア機能を維持しながら、kubectlからクライアントサイドの検証を取り除くことができます。

Introduced KMS v2

パフォーマンスやローテーション、可観測性の改善を追加するためにKMS v2alpha1APIが導入されました。kmsのデータの暗号化のためにAES-CBCの代わりにAES-GCMを利用したDEKを用いてKubernetesのSecretなどのデータを暗号化します。AES-GCMとAES-CBCによる読み込み引き続き可能です。詳細はUsing a KMS provider for data encryptionをご参照ください。

Kube-proxy images are now based on distroless images

以前のリリースでkube-proxyのコンテナイメージはベースイメージとしてDebianを利用してビルドされていました。このリリースから、イメージはdistrolessを利用してビルドされるようになりました。この変更はイメージサイズを約50%減らし、インストールされるパッケージとファイルの数は、kube-proxyが仕事をするために厳密に必要なものだけになりました。

Known Issues

LocalStorageCapacityIsolationFSQuotaMonitoring ConfigMap rendering failure

ConfigMapのレンダリングの問題がv1.25.0のリリースで見つかりました。ConfigMapがAPIでアップデートされたとき、kubeletによってPodのファイルシステムへ結果がレンダーされません。この機能は1.25.1のリリースでalphaへrevertされます。

Urgent Upgrade Notes

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

  • 1.25で削除予定だった非推奨のbeta APIがサーブされなくなりました。詳細は https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25 をご参照ください。
    • :pencil: CronJobのbatch/v1beta1やautoscaling/v2beta1やpolicy/v1beta1などが利用できなくなるため注意が必要です。
  • kmsのデータ暗号化のためにAES-CBCの代わりにAES-GCMを用いてDEKでデータが暗号化されます。ユーザのアクションは必要ありません。AES-GCMとAES-CBCを用いての読み込みは非木津付き利用可能です。
  • End-to-endのテストはGinkgo v1からv2へ移行されました。

test/e2eをGinkgo CLIで動作させるとき、v2 CLIはかならず利用される必要があり、また -timeout=24h(もしくはその他の適切な値)が渡されなければなりません。なぜならデフォルトのタイムアウトが24時間から1時間へ減らされたためです。 go test経由で実行する時、対応する-argsパラメータは-ginkgo.timeout=24hとなります。KubernetesのリポジトリでCLIをビルドするためにはmake all WHAT=github.com/onsi/ginkgo/v2/ginkgoを利用してください。Ginkgo V2はgo testの-parallelフラグをGinkgo specの並列化のために受け付けませんので、代わりにginkgo -pginkgo -procs=Nへ切り替えてください。(#109111, @chendave) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows]

  • アクションは不要です; API/CLIの変更はありません;新しいWindows Imageのサポートが追加されました (#110333, @liurupeng) [SIG Cloud Provider and Windows]
  • intreeのflockerのvolume pluginのサポートはKubernetesから完全に削除されました。(#111618, @Jiawei0227)
  • intreeのquobyteのvolume pluginのサポートはKubernetesから完全に削除されました。(#111619, @Jiawei0227)
  • intreeのstorageosのvolume pluginのサポートはKubernetesから完全に削除されました。(#111620, @Jiawei0227)
  • Kubernetesのイメージをpullするために利用可能な新しいOCIイメージレジストリ(registry.k8s.io)があります。古いレジストリ(k8s.gcr.io)は引き続きしばらくの間サポートされますが、他のクラウドにある同等のミラーのフロントエンドであるため、新しい名前はより良いパフォーマンスを発揮するはずです。あなたのクラスタを新しいレジストリへ向くようにしてください。レジストリの許可リストをもつAdmission/Policyを統合している場合は、k8s.gcr.ioと一緒にregistyr.k8s.ioを含む必要があります。air-gap環境でイメージのgarbage-collectionの設定はregistry.k8s.iok8s.gcr.ioで必要なイメージをpre-pull して保存するように更新する必要があります。(#109938, @dims)
9
5
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
9
5