LoginSignup
1
0

Kubernetes 1.29: SIG-CLI (kubectl) の変更内容

Last updated at Posted at 2023-12-22

ここでは、Kubernetes 1.29 の CHANGELOG から SIG-CLI (kubectl) の取り組みについてまとめています。:pencil: は筆者によるコメントです。

新たに追加された主なコマンドとフラグ

  • kubectl delete -i/--interactive: true の場合、オブジェクトを削除する前に削除対象のオブジェクトをリストする

変更があった主なコマンドとフラグ

なし

廃止予定のコマンドとフラグ

なし

削除されたコマンドとフラグ

なし

そのほか、細かい変更は、 https://github.com/superbrothers/kubectl-docs/compare/v1.28.0...v1.29.0 で参照できます。

所感

今回も SIG-CLI に関連する特出した変更はなく書くことがありません(終)

What's New (Major Themes)(主要な変更)

なし

Urgent Upgrade Notes(必ず一読してからアップグレードしなければならない事項)

なし

Changes by Kind(種類別の変更)

Deprecation(廃止)

なし

API Change(API の変更)

なし

Feature(機能)

  • kubectl node drain helper に OnPodDeletionOrEvictionStartedOnPodDeletionOrEvictionFailed のコールバックが追加された。kubectl を拡張している人はこれらの新しいコールバックを使うことでより詳細な設定が可能になる。加えて OnPodDeletedOrEvicted node drain helper callback が廃止予定になった。 (#117502, @adilGhaffarDev) [sig/cli]
    • :pencil: k8s.io/kubectl/pkg/drain.Helper は drain 動作を制御するヘルパ。リリースノードの OnPodDeletionOrEvictionFailed は誤りで「OnPodDeletionOrEvictionStartedOnPodDeletionOrEvictionFinished」が正しい。名前のとおり Pod の削除または Eviction が開始/完了した際に任意の関数を呼び出すことができる。
    • :pencil: https://pkg.go.dev/k8s.io/kubectl/pkg/drain#Helper
  • プラグインからサブコマンドの詳細を出力するように kubectl help が変更された (#116752, @xvzf) [sig/cli]
    • :pencil: kubectl help コマンドで出力されるサブコマンドリストに User-Installed Plugin Commands: としてプラグインリストが並ぶようになった
  • kubectl describe pvc <PVC> コマンドの出力の "Used by:" の部分に ephemeral storage volume として <PVC> を使用する pods をリストするようになった (#120427, @MaGaroo) [sig/cli]
  • プラグインのサブコマンド解決機能が beta に昇格。 (#120663, @ardaguclu) [sig/cli,sig/testing]
  • kubectl delete--interactive フラグがデフォルトで全ユーザーに表示されるようになった (#120416, @ardaguclu) [sig/cli,sig/testing]
  • kubectl イメージの Dockerfile が更新され、特定のベースイメージと必須ユーティリティ (bash と jq) が追加された (#119592, @rayandas) [sig/node,sig/cli,sig/testing,sig/release]
    • :pencil: Make our `kubectl` image more useful? · Issue #119567 · kubernetes/kubernetes が提案イシューでもうちょっと便利なツールが入っててもいいじゃんというもの。単独で下記のようなシェルスクリプトが実行できるとうれしいよねとある。
      while true; do
        kubectl get -o json node $THIS_NODE | jq -r '.status.conditions[] | [.type,.status] | @tsv' | grep Ready | cut -f2 > .ready.tmp
        mv -f file.tmp ready
        sleep 10
      done
      
    • :pencil: 今回 debian ベースとなり bash, grep, sed, gawk, coreutils, jq, diffutils が追加されている
    • :pencil: いいんじゃんと思う一方でやりだしたらきりがないのではという気もする

Documentation

  • 特定の Deployment を指定せずに kubectl rollout restart を使用する場合の説明と例が追加された (#120118, @Ithrael) [sig/cli]
    • :pencil: namespace に含まれるすべてのオブジェクトが対象になる

Bug or Regression

  • netadmin デバッグプロファイルに CAP_NET_RAW が追加され、ノードのデバッグ時の privileged が削除された (#118647, @mochizuki875) [sig/cli,sig/testing]
    • :pencil: kubectl debug コマンドの netadmin profile で EphemeralContainerDebuggingContainer が対象の場合というのがより正確。これまでは NET_ADMIN のみが追加されていた。
    • :pencil: NET_RAW がないと ping コマンドが実行できない
  • フルネームのリソースに対しての kubectl eventsGroupVersion でイベントをフィルタしない問題が修正された (#120119, @Ithrael) [sig/cli,sig/testing]
    • :pencil: kubectl events --for Resource1.v1.group1/name のように GVK で書くとフィルタにマッチしていなかったみたい
  • kubectl wait --for での jsonpath 式の扱いが改善された。フィールドの内容にマッチする単純なフィルター式を使用できるようになった。 (#118748, @andreaskaris) [sig/cli,sig/testing]
    • :pencil: kubectl wait --for='jsonpath={.status.conditions[?(@.type=="Ready")].status}=True' pod/busybox1 のように Condition のタイプを指定した条件がこれまで機能してなかったみたい
    • :pencil: 単純に = で最初に分割してしまっていたことが原因みたい
  • kubectl - kubectl prune v2: annotation が contains-group-resources から contains-group-kinds に変更された。これが KEP で定義したものであり、エンドユーザにとってより明確なため。この機能は alpha だが、以前の annotation を認識する。この移行サポートは beta/GA では削除される予定。 (#118942, @justinsb) [sig/cli]
  • describe PVC サブコマンドに --show-events=false 引数を渡すと kubectl が events を表示しないように修正された (#120380, @MaGaroo) [sig/cli]
    • :pencil: 表示されちゃってたみたい

Other (Cleanup or Flake)

  • feature flag の値は小文字でも大文字でも使用できるようになったが、名前は一致しなければならない (#121441, @soltysh) [sig/cli]
    • :pencil: TrUe でも fAlSe でもよくなったという話
  • 1.22 より前のバージョンの ephemeral container legacy server support のサポートが削除された (#119537, @ardaguclu) [sig/cli]
    • :pencil: 1.22 より前に実装された ephemeral container のサポートはもうサポートバージョンから離れているしいらないよねってことで削除
    • :pencil: 同じ PR で DebugOptions struct に AttachFunc メソッドが追加されている。どうやら debug コマンドを拡張する際にアタッチの処理を変えたいってことらしいが、なぜ同じ PR に入っているのか
1
0
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
1
0