Kubernetes 1.32: SIG-Network の変更内容

[Kubernetes 1.32](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md) の SIG-Network の変更内容をまとめました。

<details><summary>過去の SIG-Network の変更内容</summary><div>

- [Kubernetes 1.31: SIG-Network の変更内容](https://qiita.com/uesyn/items/201d2c1b925e08fc6105)
- [Kubernetes 1.29: SIG-Network の変更内容](https://qiita.com/tkusumi/items/452d8ba0d7fa2e42b1be)
- [Kubernetes 1.28: SIG-Network の変更内容](https://qiita.com/tkusumi/items/eaec7845fb391346c768)
- [Kubernetes 1.27: SIG-Network の変更内容](https://qiita.com/tkusumi/items/e50129395698d2a15e73)
- [Kubernetes 1.26: SIG-Network の変更内容](https://qiita.com/tkusumi/items/bc3b6c8073c5b3785741)
- [Kubernetes 1.25: SIG-Network の変更内容](https://qiita.com/tkusumi/items/a41ed4ffd67dd7b3ed23)
- [Kubernetes 1.24: SIG-Network の変更内容](https://qiita.com/tkusumi/items/8ae63017abf763b0a22d)
- [Kubernetes 1.23: SIG-Network の変更内容](https://qiita.com/tkusumi/items/9516b7955c1c33d31e8e)
- [Kubernetes 1.22: SIG-Network の変更内容](https://qiita.com/tkusumi/items/2e3c69849ce2a4b50a90)
- [Kubernetes 1.21: SIG-Network の変更内容](https://qiita.com/tkusumi/items/a816626c258735bdc98f)
- [Kubernetes 1.20: SIG-Network の変更内容](https://qiita.com/tkusumi/items/5e1c420503cfa730d940)
- [Kubernetes 1.19: SIG-Network の変更内容](https://qiita.com/tkusumi/items/ee1e100d34465ff2d764)
- [Kubernetes 1.18: SIG-Network の変更内容](https://qiita.com/tkusumi/items/e72e255363f6deee3e9b)
- [Kubernetes 1.17: SIG-Network の変更内容](https://qiita.com/superbrothers/items/fd936c4046459a16609c)
- [Kubernetes 1.16: SIG-Network の変更内容](https://qiita.com/tkusumi/items/5fc2e12a4bb8931a2eed)
- [Kubernetes 1.15: SIG-Network の変更内容](https://qiita.com/summerwind/items/e1c8d649ed8c7ae44b83)
- [Kubernetes 1.14: SIG-Network の変更内容](https://qiita.com/summerwind/items/7ca97a5d6e3e2537ebca)

</div></details>

以下は、[Kubernetes v1.32 の Changelog](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md) を和訳したものです。:memo: の部分は筆者の補足になります。


## Urgent Upgrade Notes

- なし

## Changes by Kind

### Deprecation

- なし

### API Change

<!--
- Added driver-owned fields in `ResourceClaim.Status` to report device status data for each allocated device. ([#128240](https://github.com/kubernetes/kubernetes/pull/128240), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery, Network, Node and Testing] [sig/network,sig/node,sig/api-machinery,sig/testing]
- Allow for Pod search domains to be a single dot `.` or contain an underscore `_` ([#127167](https://github.com/kubernetes/kubernetes/pull/127167), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing] [sig/network,sig/apps,sig/testing]
- DRA: the `DeviceRequestAllocationResult` struct now has an "AdminAccess" field which should be used instead of the corresponding field in the `DeviceRequest` field when dealing with an allocation. If a device is only allocated for admin access, allocating it again for normal usage is now supported, as originally intended. To allow admin access, starting with 1.32 the `DRAAdminAccess` feature gate must be enabled. ([#127266](https://github.com/kubernetes/kubernetes/pull/127266), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Network, Node, Scheduling and Testing] [sig/network,sig/scheduling,sig/node,sig/api-machinery,sig/auth,sig/apps,sig/testing,sig/etcd]
- kube-proxy now reconciles Service/Endpoint changes with conntrack table and cleans up only stale UDP flow entries ([#127318](https://github.com/kubernetes/kubernetes/pull/127318), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] [sig/network,sig/windows]
-->

- 各割り当てられたデバイスの状態データを報告するために、ResourceClaim.Statusにドライバー所有のフィールドを追加しました。([#128240](https://github.com/kubernetes/kubernetes/pull/128240), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery, Network, Node and Testing]
  - :pencil: 詳細は[KEP-4817: Resource Claim Status With Possible Standardized Network Interface Data](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4817-resource-claim-device-status)から確認できます。

- PodのSearch Domainに単一のドット . またはアンダースコア _ を含めることを許可します。([#127167](https://github.com/kubernetes/kubernetes/pull/127167), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing]
  - :pencil: 不要なクラスタ内ドメインが不要なアプリケーションの不要なDNSルックアップを減らすのに便利そうです。
  - :pencil: v1.32時点ではalphaとなっており、デフォルトでfalseのFeatureです。

- DRA: DeviceRequestAllocationResult構造体には現在「AdminAccess」フィールドがあり、割り当てを処理する際にはDeviceRequestフィールドの対応するフィールドの代わりにこれを使用する必要があります。デバイスが管理者アクセスのためだけに割り当てられている場合、元々の意図通りに通常の使用のために再度割り当てることができるようになりました。管理者アクセスを許可するには、バージョン1.32からDRAAdminAccessフィーチャーゲートを有効にする必要があります。([#127266](https://github.com/kubernetes/kubernetes/pull/127266), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Network, Node, Scheduling and Testing]

- kube-proxyは現在、Service/Endpointの変更をconntrackテーブルと調整し、古くなったUDPフローエントリのみをクリーンアップします。([#127318](https://github.com/kubernetes/kubernetes/pull/127318), [@aroradaman](https://github.com/aroradaman))

### Feature

<!--
- Added a `/statusz` endpoint for the kube-apiserver endpoint. ([#125577](https://github.com/kubernetes/kubernetes/pull/125577), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing] [sig/network,sig/node,sig/api-machinery,sig/auth,sig/apps,sig/cli,sig/instrumentation,sig/testing,sig/architecture,sig/cloud-provider]
- Added metrics to measure the latency of DRA Node operations and DRA GRPC calls ([#127146](https://github.com/kubernetes/kubernetes/pull/127146), [@bart0sh](https://github.com/bart0sh)) [SIG Instrumentation, Network, Node, and Testing] [sig/network,sig/node,sig/instrumentation,sig/testing]
- kube-proxy uses field-selector clusterIP!=None on Services to avoid watching for Headless Services, reducing unnecessary network bandwidth ([#126769](https://github.com/kubernetes/kubernetes/pull/126769), [@Sakuralbj](https://github.com/Sakuralbj)) [SIG Network] [sig/network]
- LoadBalancerIPMode feature was marked as GA. ([#127348](https://github.com/kubernetes/kubernetes/pull/127348), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps, Network and Testing] [sig/network,sig/apps,sig/testing]
- Pods were allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default
when the kernel version was 4.15 or higher. With the kernel 4.15 the sysctl became namespaced.
Pod Security admission allowed these sysctl in v1.32+ versions of the baseline and restricted policies. ([#127489](https://github.com/kubernetes/kubernetes/pull/127489), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node] [sig/network,sig/node,sig/auth]
-->

- kube-apiserverエンドポイントに/statuszエンドポイントを追加しました。([#125577](https://github.com/kubernetes/kubernetes/pull/125577), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing]
- DRAノード操作およびDRA GRPC呼び出しの遅延を測定するためのメトリクスを追加しました。([#127146](https://github.com/kubernetes/kubernetes/pull/127146), [@bart0sh](https://github.com/bart0sh)) [SIG Instrumentation, Network, Node, and Testing]
- kube-proxyは、ヘッドレスサービスの監視を避けるために、Servicesに対してフィールドセレクターclusterIP!=Noneを使用し、不必要なネットワーク帯域幅を削減します。([#126769](https://github.com/kubernetes/kubernetes/pull/126769), [@Sakuralbj](https://github.com/Sakuralbj)) [SIG Network]
- LoadBalancerIPMode機能がGAとしてマークされました。([#127348](https://github.com/kubernetes/kubernetes/pull/127348), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps, Network and Testing]
- カーネルバージョンが4.15以上の場合、Podはデフォルトでnet.ipv4.tcp_rmemおよびnet.ipv4.tcp_wmemのsysctlを使用できるようになりました。カーネル4.15では、このsysctlが名前空間化されました。Podセキュリティアドミッションは、v1.32以降のベースラインおよび制限付きポリシーのバージョンでこれらのsysctlを許可しました。([#127489](https://github.com/kubernetes/kubernetes/pull/127489), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node]

### Documentation

<!--
- The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the IP of the default gateway of the corresponding IP family and then delegating the responsibility to the external cloud provider. This solves the bootstrap problems of out of tree cloud providers that are deployed as Pods within the cluster. ([#125337](https://github.com/kubernetes/kubernetes/pull/125337), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network, Node and Testing] [sig/network,sig/node,sig/testing,sig/cloud-provider]
-->

- kubeletは、--cloud-provider=externalを使用する際に、--node-ipフラグを未指定アドレスの0.0.0.0または::のいずれかで使用することができます。これにより、対応するIPファミリーのデフォルトゲートウェイのIPでノードを作成し、その後、責任を外部クラウドプロバイダーに委ねます。これにより、クラスター内でPodとしてデプロイされる外部クラウドプロバイダーのブートストラップの問題が解決されます。 ([#125337](https://github.com/kubernetes/kubernetes/pull/125337), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network, Node and Testing]

### Failing Test

- なし

### Bug or Regression

<!--
- Apiserver repair controller is resilient to etcd errors during bootstrap and retries during 30 seconds before failing. ([#126671](https://github.com/kubernetes/kubernetes/pull/126671), [@fusida](https://github.com/fusida)) [SIG Network] [sig/network]
- Fixed 1.31 regression that can crash kube-controller-manager's service-lb-controller loop. ([#128182](https://github.com/kubernetes/kubernetes/pull/128182), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network] [sig/network,sig/api-machinery,sig/cloud-provider]
- Fixed a bug in the endpoints controller that failed to reconcile the Endpoint object after it was truncated (when it received more than 1000 endpoint addresses). ([#127417](https://github.com/kubernetes/kubernetes/pull/127417), [@aojea](https://github.com/aojea)) [SIG Apps, Network and Testing] [sig/network,sig/apps,sig/testing]
- Fixed a bug where `podCIDR` was released before node was deleted. ([#128305](https://github.com/kubernetes/kubernetes/pull/128305), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network] [sig/network,sig/apps]
- Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator which could not create dual stack Services or Services with IPs in the secondary range. Users who wanted to use this feature in version 1.30 with dual stack clusters could work around the issue by setting the feature gate DisableAllocatorDualWrite to true. ([#127598](https://github.com/kubernetes/kubernetes/pull/127598), [@aojea](https://github.com/aojea)) [SIG Network and Testing] [sig/network,sig/testing]
- Fixed a race condition in the kube-proxy initialization that could cause UDP traffic to service VIP. ([#126532](https://github.com/kubernetes/kubernetes/pull/126532), [@wedaly](https://github.com/wedaly)) [sig/network]
- Fixed a regression introduced in v1.29 where conntrack entries for UDP connections to deleted pods did not get cleaned up correctly, which could (among other things) cause DNS problems when DNS pods were restarted. ([#127780](https://github.com/kubernetes/kubernetes/pull/127780), [@danwinship](https://github.com/danwinship)) [sig/network]
- HostNetwork pods no longer depend on the PodIPs to be assigned to configure the defined hostAliases on the Pod ([#126460](https://github.com/kubernetes/kubernetes/pull/126460), [@aojea](https://github.com/aojea)) [SIG Network, Node and Testing] [sig/network,sig/node,sig/testing]
- Fixed problem with named ports not being available when specified in sidecar containers. ([#127976](https://github.com/kubernetes/kubernetes/pull/127976), [@chengjoey](https://github.com/chengjoey)) [sig/network]
- kubelet: on Windows, consistently resolve filesystem links to volume identifiers instead of inconsistently normalizing to drive letters. ([#129103](https://github.com/kubernetes/kubernetes/pull/129103), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Windows] [sig/network,sig/storage,sig/node,sig/api-machinery,sig/cluster-lifecycle,sig/auth,sig/windows,sig/cli,sig/instrumentation,sig/release,sig/architecture,sig/cloud-provider]
-->

- Apiserver repaier controllerは、ブートストラップ中のetcdエラーに対して回復力があり、失敗する前に30秒間再試行します。([#126671](https://github.com/kubernetes/kubernetes/pull/126671), [@fusida](https://github.com/fusida)) [SIG Network]
- kube-controller-managerのservice-lb-controllerループをクラッシュさせる可能性のある1.31のリグレッションを修正しました。([#128182](https://github.com/kubernetes/kubernetes/pull/128182), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network]
- endpoints controllerのバグを修正しました。このバグは、Endpointオブジェクトが切り捨てられた後（1000以上のエンドポイントアドレスを受け取ったとき）にreconcileに失敗していました。([#127417](https://github.com/kubernetes/kubernetes/pull/127417), [@aojea](https://github.com/aojea)) [SIG API Machinery, Cloud Provider and Network]
- ノードが削除される前にpodCIDRが解放されるバグを修正しました。([#128305](https://github.com/kubernetes/kubernetes/pull/128305), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network]
  - :pencil: 先にpodCIDRが解放されていたため、タイミングによっては新規作成されたノードと削除中のノードでPodCIDRが重複する問題がありました。
    - flannelなどnodeに割り当てられたpodCIDRを利用する場合、これが問題になっていたようです
- ベータ機能であるMultiCIDRServiceAllocatorを使用するデュアルスタッククラスターで、デュアルスタックサービスやセカンダリ範囲のIPを持つサービスを作成できないバグを修正しました。バージョン1.30でこの機能をデュアルスタッククラスターで使用したいユーザーは、feature gateの`DisableAllocatorDualWrite`を`true`に設定することでこの問題を回避することができました。([#127598](https://github.com/kubernetes/kubernetes/pull/127598), [@aojea](https://github.com/aojea))
- kube-proxyの初期化における競合状態を修正しました。この競合状態は、サービスVIPへのUDPトラフィックに問題を引き起こす可能性がありました。([#126532](https://github.com/kubernetes/kubernetes/pull/126532), [@wedaly](https://github.com/wedaly))
  - :pencil: いくつかのinformerのcache syncをまたずに処理を進めていたため、オブジェクトが多いとsyncされていないオブジェクトが存在しない判断となり、kube-proxyのrestartなどで必要なUDPのconntrackが削除されてしまう問題があったようです。
- v1.29で導入されたリグレッションを修正しました。このリグレッションでは、削除されたPodへのUDP接続のconntrackエントリが正しくクリーンアップされず、DNS Podが再起動されたときにDNSの問題を引き起こす可能性がありました。([#127780](https://github.com/kubernetes/kubernetes/pull/127780), [@danwinship](https://github.com/danwinship))
- HostNetwork Podは、Podに定義されたhostAliasesを設定するために、PodIPsの割り当てに依存しなくなりました。([#126460](https://github.com/kubernetes/kubernetes/pull/126460), [@aojea](https://github.com/aojea)) [SIG Network, Node and Testing]
  - :pencil: Podの`/etc/hosts`の設定にはPodIPの割り当てが条件となっていましたが、hostNetworkを利用する場合はその条件が不要となりました。
- サイドカーコンテナで指定された名前付きポートが利用できない問題を修正しました。([#127976](https://github.com/kubernetes/kubernetes/pull/127976), [@chengjoey](https://github.com/chengjoey))
  - :pencil: この修正は完全ではなく、EndpointSliceオブジェクトへPort番号を伝播されておらず、[こちらのPRで修正されそう](https://github.com/kubernetes/kubernetes/pull/128850)です。
  - :pencil: この修正は[バックポートされないかもしれません](https://github.com/kubernetes/kubernetes/issues/128825#issuecomment-2483056949)
- kubelet: Windows上で、ドライブ文字に不一致に正規化するのではなく、ファイルシステムリンクを一貫してボリューム識別子に解決するようにしました。([#129103](https://github.com/kubernetes/kubernetes/pull/129103), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Windows]


### Other (Cleanup or Flake)

<!--
- Fixes a bug in the `k8s.io/cloud-provider/service`  controller, it may panic when a service is updated because the event recorder was used before it was initialized. All cloud providers should using the `v1.31.0` cloud provider service controller must ensure that the controllers is initialized before the informer start to process events or update it to the version 1.32.0. ([#128179](https://github.com/kubernetes/kubernetes/pull/128179), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Network and Testing] [sig/network,sig/api-machinery,sig/testing,sig/cloud-provider]
- kube-proxy initialization waits for all pre-sync events from node and serviceCIDR informers to be delivered. ([#126561](https://github.com/kubernetes/kubernetes/pull/126561), [@wedaly](https://github.com/wedaly)) [SIG Network] [sig/network]
- kube-proxy will no longer depend on conntrack binary for stale UDP connections cleanup ([#126847](https://github.com/kubernetes/kubernetes/pull/126847), [@aroradaman](https://github.com/aroradaman)) [SIG Cluster Lifecycle, Network and Testing] [sig/network,sig/cluster-lifecycle,sig/testing]
- Removed generally available feature gate `StableLoadBalancerNodeSet`. ([#126841](https://github.com/kubernetes/kubernetes/pull/126841), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network] [sig/network,sig/api-machinery,sig/cloud-provider]
- The kube-proxy command line flags `--healthz-port` and `--metrics-port`, which were previously deprecated, have now been removed. ([#126889](https://github.com/kubernetes/kubernetes/pull/126889), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] [sig/network,sig/windows]
- The kube-proxy command line flags `--healthz-port` and `--metrics-port`, which were previously deprecated, have now been removed. ([#127930](https://github.com/kubernetes/kubernetes/pull/127930), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] [sig/network,sig/windows]
- kubelet: fixed an issue mounting CSI volumes on Windows nodes in 1.32.0 release candidates. ([#129083](https://github.com/kubernetes/kubernetes/pull/129083) [liggitt](https://github.com/liggitt)) [SIG API Machinery, architecture, auth, cli, cloud-provider, cluster-lifecycle, instrumentation,network,node, release, storage, windows ] [sig/network,sig/storage,sig/node,sig/api-machinery,sig/cluster-lifecycle,sig/auth,sig/windows,sig/cli,sig/instrumentation,sig/release,sig/architecture,sig/cloud-provider]
-->

- k8s.io/cloud-provider/serviceコントローラーのバグを修正しました。サービスが更新されると、event recorderが初期化される前に使用されていたため、パニックが発生する可能性がありました。バージョンv1.31.0のクラウドプロバイダーサービスコントローラーを使用しているすべてのCloud Providerは、Informerがイベントを処理し始める前にコントローラーが初期化されることを確認するか、バージョン1.32.0に更新する必要があります。([#128179](https://github.com/kubernetes/kubernetes/pull/128179), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Network and Testing]
- kube-proxyの初期化は、nodeとserviceCIDR informerからのすべてのpre-syncイベントが配信されるのを待ちます。([#126561](https://github.com/kubernetes/kubernetes/pull/126561), [@wedaly](https://github.com/wedaly)) [SIG Network]
  - [#126532](https://github.com/kubernetes/kubernetes/pull/126532)の対応の追加です。
- kube-proxyは、古いUDP接続のクリーンアップにconntrackバイナリを依存しなくなります。 ([#126847](https://github.com/kubernetes/kubernetes/pull/126847), [@aroradaman](https://github.com/aroradaman)) [SIG Cluster Lifecycle, Network and Testing]
  - :pencil: これによりkube-proxy コンテナイメージのサイズ削減が見込めます。共通ベースイメージから削除する必要があるため、現在はまだ削除されていません。
- GAとなっているFeature Gateの`StableLoadBalancerNodeSet`を削除しました。 ([#126841](https://github.com/kubernetes/kubernetes/pull/126841), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network]
- 以前に非推奨となっていたkube-proxyのコマンドラインフラグ`--healthz-port`および`--metrics-port`が削除されました。([#126889](https://github.com/kubernetes/kubernetes/pull/126889), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]
- 以前に非推奨となっていたkube-proxyのコマンドラインフラグ`--healthz-port`および`--metrics-port`が削除されました。([#127930](https://github.com/kubernetes/kubernetes/pull/127930), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]
  - :pencil: 一つ前の[#126889](https://github.com/kubernetes/kubernetes/pull/126889)で問題があり、そちらがrevertされたため、その対処を含めたPRです。
- kubelet: バージョン1.32.0のrelease candidateにおいて、WindowsノードでCSIボリュームをマウントする際の問題を修正しました。([#129083](https://github.com/kubernetes/kubernetes/pull/129083) [liggitt](https://github.com/liggitt))