1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetes 1.33: SIG-Network の変更内容

Last updated at Posted at 2025-05-26

Kubernetes 1.33 の SIG-Network の変更内容をまとめました。

過去の SIG-Network の変更内容

以下は、Kubernetes v1.33 の Changelog の中からSIG-Networkに関連した内容を和訳したものです。:pencil: の部分は筆者の補足になります。

Urgent Upgrade Notes

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

  • nftables プロキシモードにおける環境変数 KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK の動作を修正しました。このカーネルバージョンチェックは、この変数が明示的に非空の値に設定されている場合にのみスキップされるようになりました。チェックをスキップするには、環境変数 KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK を設定してください。(#130401, @ryota-sakamoto)
    • :pencil: もともとこのチェックが動作せず、ホストで利用されているnftのバージョンのチェックが実質機能していませんでした
    • :pencil: ホストのnftのバージョンが<= 0.9.8だと、クラッシュする問題を回避するためのチェックのようです

Changes by Kind

Deprecation

  • EndpointSliceのhintsフィールドがGA(一般提供)に昇格しました。ベータ版のアノテーションservice.kubernetes.io/topology-modeは非推奨とされ、GAには昇格しません。後方互換性のために引き続き動作しますが、ユーザーはトポロジー対応のルーティング構成のためにService APIのspec.trafficDistributionフィールドを使用することが推奨されます。(#130742, @gauravkghildiyal) [SIG Network]
  • v1 Endpoints APIは正式に非推奨となりました(ただし、引き続き完全にサポートされます)。このAPIは削除されませんが、すべてのユーザーは代わりにEndpointSlice APIを使用する必要があります。(#130098, @danwinship) [SIG API Machinery and Network]
    • :pencil: Endpointsには1000以上のターゲットを追跡できない制約があったりするので、早めにEndpointSlicesを利用するように変更することをおすすめします

API Change

  • フィーチャーゲートDRAPartitionableDevicesが追加されました。このゲートを有効にすると、動的リソース割り当てが分割可能なデバイスの割り当てをサポートします。(#130764, @cici37) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]
    • :pencil: GPUやSR-IOVなどで一つのデバイスを複数のワークロードで共有するための機能追加です。
  • APIサーバーがlistリクエストに応答する方法を改善しました。レスポンス形式がProtobufにネゴシエートされる場合、Protobufでのリストレスポンスは1要素ずつマーシャリングされ、大規模なコレクションを提供するために必要なメモリが大幅に削減されます。ストリーミングリストレスポンスは、StreamingCollectionEncodingToProtobufフィーチャーゲートを使用して無効化できます。(#129407, @serathius) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing]
  • フィーチャーゲート MultiCIDRServiceAllocator が安定版に昇格し、DisableAllocatorDualWrite フィーチャーゲートがベータ版(デフォルトでは無効)に昇格しました。
    アクションが必要です: Kubernetesクラスタ管理者およびクラスタのService CIDRを管理するディストリビューションに対して。
    Kubernetesでは、APIオブジェクト ServiceCIDR を介してクラスタのService CIDRを定義できるようになりました。
    Kubernetesのディストリビューションまたは管理者は、新しいService CIDRがクラスタ内の他のネットワークと重複しないように制御したり、特定のIP範囲にのみ属するようにしたい場合があります。また、管理者はクラスタごとに1つのService CIDRのみを持つ既存の動作を維持したい場合もあります。この目的を達成するために ValidatingAdmissionPolicy を使用できます。(#128971, @aojea) [SIG Apps, Architecture, Auth, CLI, Etcd, Network, Release and Testing]
  • ServiceのtrafficDistributionフィールド(PreferCloseオプションを含む)がGA(一般提供)に昇格しました。このフィールドが設定されていないServiceは、既存の動作を継続します。詳細については、以下のドキュメントを参照してください。
    https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
    (#130673, @gauravkghildiyal) [SIG Apps, Network and Testing]
  • ReplicationControllerのreplicasおよびminReadySecondsフィールドの最小値バリデーションが宣言型バリデーションに移行されました。これらのフィールドの必須性も宣言型でバリデーションされます。
    DeclarativeValidationフィーチャーゲートが有効化されている場合、既存のバリデーションとの不一致がメトリクスを通じて報告されます。
    DeclarativeValidationTakeoverフィーチャーゲートが有効化されている場合、移行されたフィールドに対するエラーの主なソースとして宣言型バリデーションが使用されます。
    (#130725, @jpbetz) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Instrumentation, Network, Node and Storage]
  • PreferSameTrafficDistributionフィーチャーゲートが有効化されている場合、新しいtrafficDistribution値であるPreferSameNodeが利用可能になります。この値は、クライアントと同じノード上のエンドポイントに常にService接続をルーティングしようとします。さらに、PreferSameZonePreferCloseのエイリアスとして導入されました。
    (#130844, @danwinship) [SIG API Machinery, Apps, Network and Windows]
    • :pencil: 嬉しい機能追加ですね!node-local-dns-cacheなどノード上に動作しているアプリケーションに動作しているPodへ通信を向けたいが、そのPodの更新や不調時には別のノードのPodへ通信を向けてほしい時に嬉しいですね。
    • :pencil: SameNodeが利用できないときはPreferSameZone、それも満たせない場合はクラスタ全体で通信が分散されるようです
  • StrictIPCIDRValidationフィーチャーゲートが有効化されている場合、KubernetesはIPアドレスやネットワークアドレス範囲(「CIDRブロック」)として受け入れられる値に対して若干厳格になります。 特に、IPv4アドレス内のオクテットは先頭に0を持つことが許されず、IPv4マップされたIPv6値(例: ::ffff:192.168.0.1)は禁止されます。これらの値は、異なるコンポーネントが同じ文字列を異なるIPアドレスとして解釈する場合にセキュリティ問題を引き起こす可能性があります(例: CVE-2021-29923)。この厳格化は、組み込みのAPI種類のフィールドにのみ適用され、カスタムリソース種類、Kubernetes構成ファイル内の値、またはコマンドライン引数には適用されません。(フィーチャーゲートが無効化されている場合、そのような無効なIPまたはCIDR値を持つオブジェクトを作成すると、将来的に拒否されることをAPIサーバーが警告します。)
    #122550, #128786, @danwinship)[SIG API Machinery, Apps, Network, Node, Scheduling and Testing]
    • :pencil: パーサーによって解釈が異なるようなIPアドレスの表記に対するvalidationを追加する変更です
    • :pencil: 010.002.003.004 のようなアドレスは例えばlibcベースのアプリケーションでは0から始まるオクテットが8進数として解釈されるらしく、パーサーによって解釈が異なり、::ffff:192.168.0.1 IPv6の中にIPv4アドレスが含まれるアドレスもパーサーによって解釈が異なる問題があります

Feature

  • kube-proxyに /flagz エンドポイントを追加しました(#128985@yongruilin)[SIG Instrumentation and Network]
    • :pencil: ComponentFlagz feature gateが有効化されることで動作します。
  • kube-proxyに /status エンドポイントを追加しました (#128989, @Henrywu573) [SIG Instrumentation and Network]
    • :pencil: こちらおそらくchangelogの誤りで /statusz エンドポイントの追加です
    • :pencil: /flagz と同様にComponentFlagz feature gateが有効化されることで動作します。
  • DRAResourceClaimDeviceStatusがデフォルトで有効化され、DRAドライバーが各割り当て済みデバイスのステータスデータを報告できるようになりました。(#130814, @LionelJouin) [SIG Network and Node]
  • Endpointsコントローラーによって作成されたEndpointsリソースには、これを示すラベルが含まれるようになりました。
    手動でEndpointsを作成するユーザーもこのラベルを追加できますが、代わりにEndpointSlicesを使用することを検討してください。
    (#130564, @danwinship) [SIG Apps and Network]
    • :pencil: Endpointsの非推奨化の対応の一つでしょうか? Endpointコントローラによって管理されているEndpointを識別・トラッキングできるようにするための変更です
  • kube-proxyのhealthzおよびlivezHTTPエンドポイントのスキーマが拡張され、対応するIPファミリーに関する情報が組み込まれるようになりました。
    (#129271, @aroradaman) [SIG Network and Windows]
  • client-go/restにおいて、コンテキストに基づくロギングの完全なサポートを実装しました。BackoffManagerの代わりにBackoffManagerWithContextが使用されるようになり、呼び出し元がスリープを中断できるようになりました。
    (#127709, @pohly) [SIG API Machinery, Architecture, Auth, Cloud Provider, Instrumentation, Network and Node]
  • RelaxedDNSSearchValidationがベータ版に昇格しました。これにより、Podの検索ドメインとして単一のドット(".")やアンダースコア("_")を含むことが許可されるようになりました。
    (#130128, @adrianmoisey) [SIG Apps and Network]
  • 認証されたリクエストに対して、kube-apiserverのトレースコンテキストを尊重するようになりました。
    (#127053, @dashpole) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing]
  • kube-proxyのnftablesモードがGA(一般提供)に昇格しました。(iptablesモードは引き続きデフォルトとして残ります。)
    nftablesモードを選択するには、--proxy-mode nftablesを指定するか、設定ファイルでmode: nftablesを使用してください。詳細については、kube-proxyのドキュメントを参照してください。
    (#129653, @danwinship) [SIG Network]
  • IPアドレスやCIDR値をAPIオブジェクトに書き込むさまざまなコントローラーが、これらの値を常に正規化された形式で書き込むようになりました。
    (#130101, @danwinship) [SIG Apps, Network and Node]
    • :pencil: #122550 と関連する変更のようです
  • kubeproxy_conntrack_reconciler_deleted_entries_totalメトリクスを使用して、リコンサイラーによってクリアされたconntrackフローの累積合計を追跡できるようになりました。(#130204, @aroradaman)
  • kubeproxy_conntrack_reconciler_sync_duration_secondsメトリクスを使用して、conntrackリコンサイレーションのレイテンシーを追跡できるようになりました。(#130200, @aroradaman)

Documentation

  • なし

Bug or Regression

  • kube-proxyのEndpointSliceCacheメモリで発生していたリークを修正しました。(#128929, @orange30)
  • Kubernetesスタイルのサイドカーコンテナ(つまり、Always再起動ポリシーを持つinitコンテナ)とServiceに関する問題を修正しました。この修正以前は、サイドカーによって公開された名前付きポートにServiceを使用してアクセスすることができませんでした。(#128850, @toVersus) [SIG Network and Testing]
  • ホストが高負荷の状態にあるときに発生する、まれで断続的なネットワーク問題を修正しました。(#130256, @adrianmoisey)
  • Kubernetes 1.32で発生したリグレッションを修正しました。この問題では、UDPサービスでExternalまたはLoadBalancer IPを使用するServiceを利用している場合、kube-proxyがServiceの宛先ポートでフィルタリングを行わず、Serviceに関連付けられたすべてのUDPエントリを削除しようとして大量のCPUを消費していました。(#130484, @aojea) [SIG Network]
  • WebSocketsのHTTPSプロキシサポートを追加しました(#129872, @seans3) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network and Node]
  • kube-proxy: UDPワークロードが大量に存在するクラスタで発生する可能性があったメモリリークを修正しました。(#130032, @aroradaman)
    • :pencil: #130484と関連する修正で、この修正と合わせて対応が完了となっています
    • :pencil: よくありがちなエラーを配列として保存していたことで、規模によってはメモリの使用量が増加してしまっていたようです
  • Serviceを使用してポート10250を外部公開する際の制限を削除しました。(#129174, @RyanAoh) [SIG Apps and Network]
    • :pencil: 知らなかったのですが、type: LoadBalancerの公開ポートとして、kubeletのAPIのポートを制限していたようで、その制限がなくなったようです
  • Alpha版のDRAResourceClaimDeviceStatus機能を使用している場合、NetworkDeviceData内のIPアドレス値のバリデーションがより厳格になりました。(#129219, @danwinship) [SIG Network]
  • kube-apiserver: --service-cluster-ip-rangeフラグをkube-apiserverに渡す際に、シングルスタックからデュアルスタックへ変更した場合、デフォルトのServiceCIDR APIオブジェクトの更新やデュアルスタックのService APIオブジェクトの作成で発生していた問題を修正しました。(#131263, @aojea) [SIG API Machinery, Network and Testing]

Other (Cleanup or Flake)

  • kube-proxyのメトリクスやエンドポイントのスキーマが拡張され、対応するIPファミリーに関する情報が組み込まれるようになりました。(#129173, @aroradaman) [SIG Network and Windows]
  • TestNodeDeletionReleaseCIDRにおけるリントエラーを修正しました。(#128856, @adrianmoisey) [SIG Apps and Network]
  • kube-proxyのnftables利用時、ログレベル4以上で失敗したトランザクションやテーブル全体の内容をログ出力するようになりました。パフォーマンスへの影響を避けるため、ログは24時間に1回までに制限されています。(#128886, @npinaeva)
  • iptablesバイナリがインストールされていないシステム上でkubeletを実行した場合、複数回エラーをログ出力しなくなりました。(#129826, @danwinship) [SIG Network and Node]
  • Job、IPAM、ReplicaSetコントローラーで高頻度かつ価値の低いログエントリのログレベルをそれぞれV(2)、V(4)、V(4)に調整し、ログの冗長性を削減しました。この変更により、必要な場合にこれらのログへアクセスできる状態を維持しつつ、ログノイズが最小限になります。(#130591, @fmuyassarov) [SIG Apps and Network]
  • Windows HostNetworkコンテナのアルファサポートを削除しました。(#130250, @marosset) [SIG Network, Node and Windows]
  • 一般提供されていたフィーチャーゲート KubeProxyDrainingTerminatingNodes を削除しました。(#129692, @alexanderConstantinescu) [SIG Network]
  • etcdクライアントライブラリをv3.5.21に更新しました(#131103, @ahrtr) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node and Storage]
1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?