はじめに
このエントリは、Kubernetes 1.21 の CHANGELOG からWhat's new!と、各変更点についてまとめたページへのリンクです。
詳細については各まとめページを参照してください。
変更点の詳細へのリンク
- Metrics Changes と SIG Instrumentation @watawuwu
- Known Issues, Urgent Upgrade Notes @uesyn
- SIG Apps @yosshi_
- SIG API Machinery @Ladicle
- SIG Auth @hiyosi
- SIG CLI @superbrothers
- SIG Cluster Lifecycle @yuanying
- SIG Storage @ysakashita
- SIG Network @tkusumi
- SIG Scheduling @everpeace
- SIG Autoscaling @shmurata
- SIG Node @ryotarai
What's new!
PodSecurityPolicyが非推奨へ
AdmissionControllerのリソースとしてのPSPは廃止されます。デプロイされたPodSecurityPolicyはコードベースから削除予定のv1.25まで動作し続けます。
KEP-2579では、「PSP replacement policy」というワーキングタイトルの新機能が開発されています。
詳しくはPodSecurityPolicy Deprecation: Past, Present, and Futureをご覧ください。
Kubernetes API Reference Documentation
APIリファレンスは gen-resourcesdocs により生成されるようになり、 Kubernetes API へ移りました
kubectlのkustomizeがアップデート
kubectlのkustomizeのバージョンがv2.0.3からv4.0.5となりました。
kustomizeはライブラリとして扱われ、将来の更新は散発的ではなくなります。
デフォルトコンテナのラベル
複数のコンテナを持つPodは、kubectl.kubernetes.io/default-container
ラベルを使用して、kubectlコマンド用に事前選択されたコンテナを指定できます。詳細は KEP-2227 をご覧ください。
Immutable Secrets と ConfigMaps
Immutable SecretとConfigMapがGAとなりました。この機能は特定のSecretとConfigMapがそのオブジェクトが存在している間、不変であることを指定するものです。このようなインスタンスでは、Kubeletは変更を監視/ポーリングしないため、apiserverの負荷が軽減されます。
kubelet の Structured Logging
リリースタイムライン内kubeletが構造化ロギングを採用しました。これは、コミュニティの努力により、リリースのタイムライン内で達成されました。プロジェクトでの構造化ロギングは現在も継続して行われています。参加に興味のある方は、メーリングリストでの議論に注目してください。
Storage Capacity Tracking
従来、KubernetesのSchedulerは追加のPersistentVolumeがクラスタ内のどこでも利用可能であり、容量が無制限であるという仮定に基づいています。
トポロジーの制約は前者に対応していましたが、これまでは残りのストレージ容量が新しいポッドを起動するのに十分でない可能性を考慮せずにPodのスケジューリングが行われていました。
ストレージのキャパシティトラッキングがその問題に対応します。CSI driverへストレージキャパシティをレポートするためのAPIを追加し、
PodのためのノードをSchedulerが選択する時にその情報を利用します。
この機能は、ローカルボリュームや、より容量に制約のある他のボリュームタイプのダイナミックプロビジョニングをサポートするための足がかりとなります。
Generic Ephemeral Volumes
Generic ephemeral volumes はdynamic provisioningをサポートする既存のストレージドライバーを、ボリュームのライフサイクルがポッドにバインドされたエフェメラルボリュームとして使用できます。
これは、ルートディスクとは異なるスクラッチストレージを提供するために使用することができます。例えば、永続的なメモリや、そのノード上の独立したローカルディスクなどです。
ボリュームプロビジョニングのための全てのStorageClassのパラメータがサポートされています。
PersistentVolumeClaimでサポートされている全ての機能がサポートされており、例えばキャパシティトラッキングやスナップショット, リストア, ボリュームのリサイズなどです。
CSI Service Account Token
CSI Service Account Token機能は1.21でベータとなりました。この機能はsecurity postureを改善し、CSI driverがPodに割り当てられたService Account Tokenを受け取ることを許可します。
また、この機能はボリュームを再発行するためのノブを提供し、短命のボリュームをリフレッシュすることができます。
CSI Health Monitoring
CSI Health Monitoring 機能はKubernetes v1.21でsecond alphaとしてリリースされました。
この機能はCSI driverが基盤のストレージシステムから異常なボリュームの状態を共有し、PVCやPodのイベントとしてレポートできるようするものです。
この機能は、Kubernetesによる個々のボリュームの健全性に関する問題のプログラムによる検出と解決に向けた足がかりとなります。