なっぱ箱

ゲームとか読書の感想とか時々技術系の話とか

KubernetesのChangeLogを雑に読む

Kubernetes入門にあたり、最近どんな動きしてるかな?という観点でざっと把握するため、ChangeLogに軽く目を通してみた。

なお読むのは1.19以降のみ。というのものこれから学習のベースにしようと思っているKubernetes完全ガイド 第2版が1.18準拠なので、本 + ChangeLogで最新までを補完しよう、という魂胆。

全てに目を通すとしんどいので、トピックスを把握するためにWhat's New!のみ確認。

資料

kubernetes/CHANGELOG at master · kubernetes/kubernetes

v1.19.0

kubernetes/CHANGELOG-1.19.md at master · kubernetes/kubernetes

  • 非推奨APIを使用していた場合に警告を表示するようになった
    • 警告はAdmission Webhooksで取得可能
  • API実装における新しいポリシーをv1.20に適用するとのアナウンス(ベータ機能のライフサイクル)
    • 9ヶ月以内にGAに到達しベータ版を削除するか、新しいベータ版を用意して以前のベータ版を廃止する。のどちらか
    • 機能が長期間ベータ版のままになることを防ぐため
  • EndpointSlicesのデフォルト有効化
  • Kubernetesコンテナイメージがコミュニティ管理下へ
  • Kubernetes Dashboardのv2がリリース
  • Kubernetesのサポートを9ヶ月から1年へ延長

GA

  • Ingress
  • seccomp((Secure computing mode)

Beta

Alpha

  • Pod/Nodeデバッグ用のCLIサポート拡張(既存Alpha機能の拡張)
    • 対象Podに対してデバッグコンテナをサイドカーとして追加
    • Nodeデバック用のPodを作成する
      • ホスト側のネームスペースを使い、かつホストのrootをコンテナの/hostにマウントしたPodを作成するもの
  • ストレージ容量のトラッキング
    • CSIドライバー向けのストレージ容量をレポートするAPI追加
  • CSIヘルスモニタリング
    • CSIドライバーが下位レイヤーのストレージから異常なボリュームの状態をK8sと共有できるようになった
  • Generic ephemeral volumes
  • 構造化ロギング

v1.20.0

kubernetes/CHANGELOG-1.20.md at master · kubernetes/kubernetes

GA

  • SupportNodePidsLimit / SupportPodPidsLimit
    • Node / Pod単位での消費可能なPID数の制限
  • CSI Volume Snapshot
  • TokenRequest / TokenRequestProjection
    • ServiceAccountで発行したトークンをPodのVolumeに動的にマウントする機能
  • node.k8s.io APIグループがv1beta1からv1に昇格

Beta

  • API Priority / Fairness
    • kube-apiserverが優先度に応じて受けたリクエストをカテゴライズするもの
  • Non-recursive Volume Ownership (FSGroup)
  • CSIDriver policy (FSGroup)
  • RootCAConfigMap
    • BoundServiceAccountTokenVolumeから分離
  • kubectl debug
  • setHostnameAsFQDN

Alpha

  • CronJobコントローラーv2
  • IPv4/IPv6デュアルスタックの再実装
  • CSIServiceAccountTokenの導入

v1.21.0

kubernetes/CHANGELOG-1.21.md at master · kubernetes/kubernetes

  • PodSecurityPolicy非推奨
    • 代替手段が今後出てくる
  • APIリファレンスの移設
  • kubectlのkustomizeがアップデート
    • v2.0.3 -> v4.0.5
  • デフォルトコンテナのアノテーション
    • kubectl.kubernetes.io/default-containerアノテーションをつかってコンテナを事前に指定することができる
    • 複数コンテナを含むPodの場合、コンテナリストの先頭に対してコマンドが実行されるので、意図しないコマンド実行を引き起こしていた
  • リリースタイムライン内kubeletが構造化ロギングを採用

GA

  • Secret / ConfigMapのイミュータブル化

Beta

  • ストレージ容量のトラッキング
  • Generic ephemeral volumes
  • CSIServiceAccountToken
  • CSIヘルスモニタリング(Second Alpha)

v1.22.0

kubernetes/CHANGELOG-1.22.md at master · kubernetes/kubernetes

  • いくつかのベータ版APIの削除
    • 今後はGA版などを利用
  • K8sのリリース頻度を年4回から年3回へ
  • Windows向け開発ツールの提供
  • etcdのバージョンを3.5.0へ更新

GA

  • Kubernetesクライアントのcredential plugin
  • Server-side Apply
    • Applyする際にクライアントサイドではなく文字通りサーバーサイドで差分計算をする
    • フィールドの所有者をトラッキングするマージアルゴリズム
  • CSIServiceAccountToken

Alpha

v1.23.0

kubernetes/CHANGELOG-1.23.md at master · kubernetes/kubernetes

  • FlexVolumeが非推奨化
  • ロギングオプションのいくつかが非推奨化
  • SLSA Lv1準拠のための証明書ファイル生成
  • KubeletがCRI v1をサポート & デフォルト化
  • kube-schedulerの複数拡張点を持つプラグインの設定を簡略化
  • CSI Migrationの更新

GA

  • IPv4/IPv6 デュアルスタックネットワーキング
  • HorizontalPodAutoscaler v2
    • 自動スケールアウト
  • Generic ephemeral volumes
  • Skip Volume Ownership
  • CSIドライバのfsGroupのパーミッション宣言機能

Beta

  • PodSecurity
    • PodSecurityPolicyの代替
  • 構造化ロギング

v1.24.0

kubernetes/CHANGELOG-1.24.md at master · kubernetes/kubernetes

  • 非推奨になっていたdockershimコンポーネントが削除
  • 今後新しいベータAPIはデフォルトで有効化されなくなる
    • 既存のものは有効化のまま
  • ストレージプラグインの移行作業進行中

GA

  • ストレージ容量のトラッキング
  • 自動ボリューム拡張
  • NonPreemptingPriority
    • Pod preemptionの有効・無効を管理するオプション

Beta

  • OpenApi v3でAPIを公開する機能
  • gRPC probe機能
    • HTTPエンドポイントの公開
    • startup/liveness/readiness probeを設定可能
  • kubeletのimage credential providersのサポート

Alpha

  • リリース成果物に対するcosignによる署名
    • 実験的なサポート
    • SLSA準拠関連
  • Contextual Logging
    • 関数の呼び出し元がロギングの各種設定を制御(出力の書式設定、詳細度、追加の値、名前)
  • ClusterIP用のIPアドレスソフトリザーブ
    • 特性に応じて静的/動的にIPアドレスを割り当てる際に衝突リスクを軽減できる