LoginSignup
3
0

More than 3 years have passed since last update.

Kubernetes 1.15: SIG Network の変更内容

Last updated at Posted at 2019-07-09

はじめに

この記事では Kubernetes 1.15 における SIG Network の活動に基づく変更点を紹介します。変更点は以下のドキュメントから収集しています。

主要な変更点

Network に関する大きな変更はありません。

アップグレード前の注意事項

  • deprecated 扱いとなっていた kube-proxy の --conntrack-max フラグが削除されました。このフラグを使用していたユーザーは代わりに --conntrack-min--conntrack-max-per-core を使用してください (#78399, @rikatz)
  • deprecated 扱いとなっていた kube-proxy の --cleanup-iptables フラグが削除されました (#78344, @aramase)

既知の問題

Network に関する既知の問題はありません。

廃止予定

  • kube-proxy
    • deprecated 扱いとなっていた --cleanup-iptables が削除されました (#78344, @aramase)
  • API
    • v1.19 から Ingress リソースは extensions/v1beta1 では提供されません。v1.14 から提供されている networking.k8s.io/v1beta1 API に移行してください。既存の Ingress リソースは networking.k8s.io/v1beta1 API からも参照できます
    • v1.16 から NetworkPolicy リソースは extensions/v1beta1 では提供されません。v1.8 から提供されている networking.k8s.io/v1 API に移行してください。既存の NetworkPolicy リソースは networking.k8s.io/v1beta1 API からも参照できます
      • :pencil: 次のバージョンで古い API バージョンでの利用は廃止になるので、まだ古い API バージョンを利用している場合は速やかに移行しましょう

メトリクスの変更

  • kube-proxy に、最後にプロキシールールを反映した時刻を示すメトリクス kube_proxy_sync_proxy_rules_last_timestamp_seconds が追加されました (#74027, @squeed)

注目すべき機能変更

  • Service LoadBalancer のための Finalizer プロテクション (ServiceLoadBalancerFinalizer) が Alpha 機能として追加されました。これは関連付けられたロードバランサーのリソースを削除するまで、Service リソースが完全に削除されるのを防止します。この機能はデフォルトで無効化されています (#78262, @MrHohn)
    • :pencil: これまで type=LoadBalancer の Service リソースを削除した時に、外部のロードバランサーが削除されずに取り残されてしまうケースがありました。この機能を使うことで、外部のロードバランサーが確実に削除されるようになります

API の変更

  • kube-proxy でより厳格な ARP の設定を有効化するためのフラグ --ipvs-strict-arp が、既存の振る舞いを維持するためにデフォルト無効になりました。このフラグは v1.13.0 でデフォルト有効になりましたが、一部の CNI プラグインに影響を及ぼすことが分かったため、デフォルト無効に変更になります (#75295, @lbernail)
    • :pencil: このフラグを有効にすると、kube-proxy は net/ipv4/conf/all/arp_ignore1 を、net/ipv4/conf/all/arp_announce2 をそれぞれ設定します

その他の機能変更

  • Ingress オブジェクトは networking.k8s.io/v1beta1 バージョンとして etcd に保存されるようになりました (#77139, @cmluciano)
  • IPVS を使用している時に kube-proxy を透過的に再起動できるようになりました (#75283, @lbernail)
  • conntrack により INVALID と判定されたパケットは破棄するようになりました。これにより、Service IP への長時間の TCP 接続において不正な再送信が発生した時に "Connection reset by peer" エラーとして接続が終了してしまう問題を修正します (#74840, @anfernee)
  • kube-proxy が他のモードでの実行時に生成したネットワークルールを自動的に削除しないようになりました。kube-proxy のモードを変更 (例: iptables モードから IPVS モードに変更) する場合は kube-proxy --cleanup を実行するか、kube-proxy を再度起動する前に Worker ノードを再起動 (推奨) してください。kube-proxy を異なるモードに変更していない場合は、この変更による対応は不要です。(#76109, @vllry)
  • kube-proxy の HealthzBindAddress と MetricsBindAddress が IPv6 アドレスの指定をサポートしました (#76320, @JieJhih)
  • kube-proxy の userspace プロキシーが iptables プロキシーの minSyncInterval パラメーターの値に従うようになりました (#71735, @dcbw)
  • kube-proxy の iptables モードにおいて、ローカルからロードバランサーの IP アドレスへのトラフィックが Service チェインを通るようになりました (#77523, @andrewsykim)
  • kube-proxy の IPVS モードにおいて、(特に DNS / syslog による) 多数の DNS 接続の問題を解決するため UDP トラフィックの Graceful Termination を無効化しました (#77802, @lbernail)
  • 異なるハッシュタイプを使用している ipset ルールが存在する場合に kube-proxy がエラーを返す問題を修正しました (#77371, @andrewsykim)
  • iptables 1.8 において iptables ルールの削除失敗時に不適切なエラーメッセージが出力される問題を修正しました (#77303, @danwinship)
  • IPVS の Graceful Termination に関するログのログレベルを 2 に引き上げました (#78395, @andrewsykim)
  • kube-rpoxy で CleanupAndExit が true の時に正しく終了するようにしました (#76732, @JieJhih)
  • type=ExternalName に設定された Service において externalName の値の最後のドットを許容するようにしました (#78385, @thz)

所感

kube-proxy の細かな修正が多く含まれたリリースでした。NetworkPolicy リソースは次のバージョンで extensions/v1beta1 では提供されなくなるため、NetworkPolicy を利用している場合は API バージョンを確認して、速やかに networking.k8s.io/v1 に移行しましょう。

3
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
3
0