LoginSignup
7
2

More than 3 years have passed since last update.

Kubernetes 1.19: SIG-Network の変更内容

Last updated at Posted at 2020-09-30

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

What's New (新情報)

  • Kubernetes 1.19 で Ingress API が General Availability となりました :tada:

:pencil: Ingress の登場から 5 年近いときを経て、ついに General Availability となりました!後述するように、networking.k8s.io/v1 ではいくつかのフィールドに変更があるのでご注意ください。公式ドキュメントの Ingress のページも更新されているので合わせてご覧ください。

Ingress のバージョンの歴史を以下に簡単にまとめてみました。

リリース時期 Kubernetes のサポート開始 Ingress バージョン
2015年9月 Kubetnetes v1.1.0 experimental/v1alpha1
2016年3月 Kubernetes v1.2.0 extensions/v1beta1
2019年5月 Kubernetes v1.14.0 networking.k8s.io/v1beta1
2020年8月 Kubernetes v1.19.0 networking.k8s.io/v1

なお、SIG-Network では Ingress の上位概念なものとして Service APIs というリソースの議論がされています。Ingress を置き換えることは目的としていないようです。興味あれば、以下をご覧ください。

Service API のコンセプト図 (API concepts の図を引用)
Service API

API Changes (API の変更)

  • カスタム Endpoints が EndpointSliceMirroring コントローラーによって、EndpointSlices にミラーされるようになりました (#91637, @robscott) [SIG API Machinery, Apps, Auth, Cloud Provider, Instrumentation, Network and Testing]
    • :pencil: ミラーされたくない場合は、endpointslice.kubernetes.io/skip-mirror: "true" というラベルを設定すると除外できるようです
  • Go1.14.4 が Kubernetes をビルドするのに必要な最低バージョンになりました (#92438, @liggitt) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Testing]
  • Kube-proxy: ポートのバインドに失敗した場合に fatal となる --bind-address-hard-fail フラグが追加されました (#89350, @SataQiu) [SIG Cluster Lifecycle and Network]
  • Kubernetes は golang 1.15.0-rc.1 でビルドされるようになりました
    • 廃止予定となっていた、x.509 のサーバー証明書で Subject Alternative Name がない場合 CommonName フィールドをホスト名として扱う挙動がデフォルトで無効になりました。この挙動は GODEBUG 環境変数に x509ignoreCN=0 を設定することで、一時的に有効にすることができます (#93264, @justaugustus) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Storage and Testing]
    • :pencil: Go 1.15 から X.509 証明書の CommonName をホスト名として扱う挙動が無効になったようです
  • ServiceAppProtocol のフィーチャーゲートが beta となりデフォルトで有効になり、Service と Endpoint に AppProtocol フィールドが追加されました。(#90023, @robscott) [SIG Apps and Network]
  • PodSpec に SetHostnameAsFQDN という新しいフィールドができました。true に設定された場合は fully qualified domain name (FQDN) が Pod のホスト名として設定されます。Linux コンテナでは、カーネルのホスト名フィールドに FQDN が設定されます (utsname 構造体の nodename フィールド)。Windows コンテナでは、レジストリの HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters の値として FQDN が設定されます。Pod が FQDN を持たない場合は無効となります。(#91699, @javidiaz) [SIG Apps, Network, Node and Testing]
    • :pencil: SetHostnameAsFQDN フィーチャーゲート (alpha) を有効にする必要があります
  • DefaultIngressClass 機能が GA になりました。--feature-gate パラメータは 1.20 で削除されます (#91957, @cmluciano) [SIG API Machinery, Apps, Network and Testing]
  • Service.Spec.IPFamily のドキュメントを更新し、dual-stack 機能が GA になる前にセマンティクスが変更される可能性がある注意が入りました。利用者は既存の Service が IPv4, IPv6 または dual-stack かを知りたい場合、IPFamily ではなく、ClusterIP または Endpoints を見なければなりません。 (#91527, @danwinship) [SIG Apps and Network]
    • :pencil: 現在の IPFamily フィールドは IPv6DualStack 機能が有効なときに IPv4 もしくは IPv6 が指定できます
  • IngressIngressClassnetworking.k8s.io/v1 になりました。extensions/v1beta1networking.k8s.io/v1beta1 の Ingress と IngressClass は廃止予定となり、1.22 以上では利用できません。永続化されたオブジェクトは networking.k8s.io/v1 API でアクセスできます。v1 の Ingress Object で重要な変更は以下です。
    • spec.backend -> spec.defaultBackend
    • serviceName -> service.name
    • servicePort -> service.port.name (文字列の場合)
    • servicePort -> service.port.number (数値の場合)
    • pathType は v1 でデフォルト値を持たなくなりました。"Exact", "Prefix", "ImplementationSpecific" のいずれかを指定してください
    • その他の Ingress API の変更
    • バックエンドに Service だけでなくリソースを指定できるようになりました
      • :pencil: 将来的にフレキシブルに拡張できるように Custom Resource をバックエンドに指定できるようになりました。例としては S3 などのストレージバケットに直接ルーティングするユースケースが挙げられています。
    • path は正当な正規表現である必要がなくなりました (#89778, @cmluciano) [SIG API Machinery, Apps, CLI, Network and Testing]

Feature (機能追加)

  • Windows で Kubernetes service に Session Affinity を設定する機能がサポートされました。Windows Server vNext Insider Preview Build 19551 以上のバージョンが必要です。(#91701, @elweb9858) [SIG Network and Windows]
  • EndpointSlice コントローラーが同期のリトライ失敗時により長く待つようになりました (#89438, @robscott) [SIG Apps and Network]
    • :pencil: exponential backoff の初期値が 5ms から 1s に変更されています
  • IPVS proxy で、バーチャルサーバーアドレスがバインドされていない場合、EnsureDummyInterface のパフォーマンスを改善しました。 (#92609, @andrewsykim) [SIG Network]
  • EndpointSliceProxying フィーチャーゲート設定時、Windows 上で kube-proxy が EndpointSlices をサポートしました。(#90909, @kumarvin123) [SIG Network and Windows]
  • IPv6DualStack フィーチャーゲートを設定時、Windows 上で kube-proxy が IPv6DualStack をサポートしました (#90853, @kumarvin123) [SIG Network, Node and Windows]
  • Linux 上ではデフォルトで kubep-roxy が Endpoints の代わりに EndpointSlices を見るようなりました。Windows 上では新規で作られたアルファの WindowsEndpointSliceProxying フィーチャーゲートでこの機能を有効にできます。(#92736, @robscott) [SIG Network]
  • ユーティリティライブラリに小さな拡張が入りました (#92440, @luigibk) [SIG Network]
  • Service controller: ノードの関連フィールドが変更されたときだけ、LB ノードプールを同期するようになりました。(#90769, @andrewsykim) [SIG Apps and Network]
  • SCTPSupport フィーチャーがデフォルトで有効になりました (#88932, @janosi) [SIG Network]
7
2
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
7
2