Kubernetes 1.34 の SIG-Network の変更内容をまとめました。
過去の SIG-Network の変更内容
以下は、Kubernetes v1.34 の Changelog の中からSIG-Networkに関連した内容を和訳したものです。 の部分は筆者の補足になります。
Urgent Upgrade Notes
- なし
(No, really, you MUST read this before you upgrade)
- なし
Changes by Kind
- なし
Deprecation
- [cloud-provider]
exclude-from-external-load-balancers=false
ラベルが尊重されるようになりました。 (#131085, @kayrus) [SIG Cloud Provider and Network]-
cloud-providerに関する修正で、今までexclude-from-external-load-balancersの値の有無のみをチェックしていたため、falseをセットしていてもノードがloadbalancerから除外されてしまうというややこしさがあったようです
-
API Change
- 割り当てられたすべてのデバイスにわたり、指定した属性の一意性を強制する新しい制約タイプが追加されました。 (#132522, @sunya-ch) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing]
-
DRAでPVのReadWriteManyを実現するような機能でしょうか?Consumable capacityという機能がDRAにalphaとして追加され、1つのデバイスを複数のResourceClaimsで共有できる機能が追加されたようです。
-
- Kubelet が、Dynamic Resource Allocation (DRA) によって割り当てられたデバイスのヘルス監視をサポートし、その結果を
pod.status.containerStatuses.allocatedResourcesStatus
フィールドに報告できるようになりました。これには DRA プラグインが新しい v1alpha1 のNodeHealth
gRPC サービスを実装する必要があります。この機能はResourceHealthStatus
フィーチャーゲートで制御されます。 (#130606, @Jpsassine) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing] -
loadBalancerIP
、externalIPs
および/またはSessionAffinity
が設定されたヘッドレス Service を作成する際に、警告が表示されるようになりました。 (#132214, @Peac36)-
headless Serviceはkube-proxyにより処理されません(通常CoreDNSのようなcluster internal DNSなどにより処理される)。そのため、kube-proxyで処理されるようなフィールドと兼用した場合にそれらが機能しないことを明示するためにwarningとして出力されるようになったようです。
-
-
PodSpec
のhostnameOverride
フィールドを設定して、任意の RFC 1123 DNS サブドメインを Pod のホスト名として指定できるようになりました。この機能の有効化はHostnameOverride
フィーチャーゲートで制御されます。 (#132558, @HirazawaUi) [SIG API Machinery, Apps, Network, Node and Testing]-
クラスター内DNSの名前解決に影響を与えず、Podのhostnameだけ変更するための機能のようです。ref: Hostname with pod's hostnameOverride
-
PodSpecにはいくつかhostnameに影響するspecがありますが、それぞれの関係についてはKEPを確認するとよくわかります。
-
- ドキュメントを修正し、
podSelector
はオプションであることと、そのデフォルト動作を明確化しました。 (#131354, @tomoish) [sig/network]-
NetworkPolicyの修正です
-
- CustomResourceDefinition のスキーマで、OpenAPI 形式における
k8s-short-name
とk8s-long-name
のサポートが導入されました。 (#132504, @jpbetz) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage] - kube-log-runner: 出力が一定サイズに達したら新しいファイルへローテートする
-log-file-size
パラメータを追加しました。古い出力ファイルの自動削除を有効化する-log-file-age
、定期フラッシュに対応する-flush-interval
も導入しました。 (#127667, @zylxjtu) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows] - Pod の spec で
hostNetwork
フィールドが設定されている場合にポートが必須であるという不正確な記述を削除しました。 (#130994, @BenTheElder) [SIG Network and Node] - 必須フィールドに関するバリデーションエラーメッセージを簡素化し、冗長なメッセージを削除しました。 (#132472, @xiaoweim) [SIG API Machinery, Apps, Architecture, Auth, Cloud Provider, Network, Node and Storage]
-
IsDNS1123SubdomainWithUnderscore
を更新し、エラーを返す際に、正しい正規表現情報(dns1123SubdomainFmtWithUnderscore
)も返すようにしました。 (#132034, @ChosenFoam) -
metadata.creationTimestamp
のゼロ値は省略されるようになり、JSON、YAML、CBOR の出力で明示的なnull
をシリアライズしなくなりました。 (#130989, @liggitt) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Scheduling, Storage and Testing]-
これは地味に嬉しいアップデート!
-
-
MultiCIDRServiceAllocator
はロックされデフォルトで有効化されました。DisableAllocatorDualWrite
もデフォルトで有効化されました。 (#131318, @aojea) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Network and Testing]
Feature
-
kubectl api-resources
に機械可読な出力オプション(JSON と YAML)が追加されました。 (#132604, @dharmit) [SIG Apps, CLI and Network] -
新しい kubectl の出力形式
kyaml
をサポートしました。KYAML は YAML の厳密なサブセットであり、あらゆる YAML プロセッサで受け付けられるはずです。KYAML の整形は JSON と YAML の中間で、デフォルトの YAML スタイルよりも明示的であるため、エラーが起きにくくなります。 (#132942, @thockin) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Contributor Experience, Instrumentation, Network, Node, Scheduling, Storage and Testing] -
kube-apiserver に有用なエンドポイントを追加しました。 (#132581, @itssimrank) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]
-
緩和された DNS 検索文字列バリデーションが GA に昇格しました。Pod API の
.spec.dnsConfig.searches
では、ダッシュ(-
)が許容される箇所でアンダースコア(_
)も許容され、検索文字列として単一のドット(.
)も許容されます。 (#132036, @adrianmoisey) [SIG Network and Testing] -
kube-proxy の WinOverlay 機能が GA に昇格しました。WinOverlay フィーチャーゲートはデフォルトで有効です。 (#133042, @rzlink) [SIG Network and Windows]
-
kube-proxy の
WinDSR
機能が GA に昇格しました。WinDSR
フィーチャーゲートはデフォルトで有効です。 (#132108, @rzlink) [SIG Network and Windows] -
Kube-proxy(Linux)で IPv6 を使用する前に、利用可能かどうかを確認するようになりました。 (#131265, @rikatz)
-
既定の APF 構成から「endpoint-controller」と「workload-leader-election」の FlowSchema を削除しました。
ワークロードのリーダー選出で使用するロックタイプを、configmapsleases / endpointsleases から leases に移行してください。 (#131215, @tosi3k) [SIG API Machinery, Apps, Network, Scalability and Scheduling] -
PreferSameTrafficDistribution フィーチャーゲートがデフォルトで有効になり、Service のトラフィック分散値
PreferSameNode
を利用できるようになりました。 (#132127, @danwinship) [SIG Apps and Network] -
RelaxedServiceNameValidation
フィーチャーゲートが有効な場合、新しい Service 名の検証にNameIsDNSLabel()
を用い、従来の検証要件が緩和されます。 (#132339, @adrianmoisey) [SIG Apps, Network and Testing] -
Aggregated API サーバーへのプロキシ時、kube-apiserver は
APIServer
が示すservice
のEndpointSlices
を使用するようになり、Endpoints
は使用しません。Aggregated API サーバー機能を使用していて、(Service 定義に基づいて kube-controller-manager に
Endpoints
とEndpointSlices
を自動生成させるのではなく)手作業でエンドポイントを書き出している場合は、Endpoints
オブジェクトではなく(あるいはそれに加えて)EndpointSlice オブジェクトを書き出すようにしてください。 (#129837, @danwinship) [SIG API Machinery, Network and Testing]
Failing Test
- なし
Bug or Regression
- Kube-proxy: iptables CLI の待機間隔フラグを削除しました。 (#131961, @cyclinder)
-
非推奨フラグの削除。以下のPRも関連する修正です。
-
- 非推奨となっていた
ip6tables-legacy-restore
バイナリのフラグ--wait-interval
を削除しました。 (#132352, @PatrickLaabs) - Windows の
kube-proxy
を更新し、内部トラフィックのルーティングにおいてEndpointSlice
に指定されたポートを正しく尊重するようにして、Linux の動作に整合させました。 (#132647, @princepereira) [SIG Network and Windows] -
nftables
利用時のkube-proxy
を更新し、エンドポイントが存在しない Service へのトラフィックを、優先度 0(NF_IP_PRI_FILTER
)のフィルタチェーンから拒否またはドロップするようにしました。 (#132456, @aroradaman)-
kube-proxy を nftables モードで実行し、対象サービスのreadyエンドポイントを持たないノード上で動作するポッド内から、externalTrafficPolicy:LocalとなっているLoadBalancer Serviceの外部 IP アドレスにアクセスすると、通信できない問題が存在してたらしく、その問題が修正されたらしいです。
-
その他(クリーンアップまたはフレーク)
- Crane ダイジェスト gcr.io/k8s-staging-e2e-test-images/agnhost:2.56 に更新しました。 (#132117, @yashsingh74) [SIG Network and Testing]
- フラグ説明およびログの一部で不足していた空白を修正しました。 (#131562, @logica0419) [SIG Network]
- Service プロキシ実装が
Endpoints
ではなくEndpointSlices
に依拠することを確実にするため、2 つのEndpointSlice
テストをコンフォーマンステストに昇格しました。 (#132019, @danwinship) [SIG Architecture, Network and Testing] - ./test/e2e で、非推奨のパッケージ
k8s.io/utils/pointer
をk8s.io/utils/ptr
に置き換えました。 (#132764, @PatrickLaabs) [SIG Auth, Network, Node, Storage and Testing] - pkg/apis(1/2)で、非推奨のパッケージ
k8s.io/utils/pointer
をk8s.io/utils/ptr
に置き換えました。 (#132778, @PatrickLaabs) [SIG Apps and Network] - pkg/controller(1/2)で、非推奨のパッケージ
k8s.io/utils/pointer
をk8s.io/utils/ptr
に置き換えました。 (#132781, @PatrickLaabs) [SIG API Machinery, Apps and Network] - pkg/controller(2/2)で、非推奨のパッケージ
k8s.io/utils/pointer
をk8s.io/utils/ptr
に置き換えました。 (#132784, @PatrickLaabs) [SIG API Machinery, Apps, Network, Node and Storage] - cloud-provider で、非推奨のパッケージ
k8s.io/utils/pointer
をk8s.io/utils/ptr
に置き換えました。 (#132720, @PatrickLaabs) [SIG Cloud Provider and Network] - 古いフローエントリのクリーンアップ時に Service の targetPort を考慮するよう、
conntrack
リコンサイラを更新しました。 (#130542, @aroradaman)
Dependencies
- なし
Added
- なし
Changed
- なし
Removed
- なし