10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【2021年4月版】Kubernetes ナビ その2: ネットワーク・サービス関連

Last updated at Posted at 2021-04-02

Kubernetes ナビ

本シリーズでは kubernetes クラスタを構成する様々なコンポーネント・技術をざっとご紹介しております。

今回はその2となります。

Kubernetes のネットワーク・サービス関連のコンポーネントについてざっくり

k8s のネットワーク・サービス関連コンポーネントはさらに以下の分類にざっくり分かれています。

  1. LB/Ingress … ロードバランサー(LB)、Ingress はクラスタの外からの通信を受けてをクラスタ内に転送する層です。特にLBは"クラスタの外"にあるため、K8sとは別に置かれる場合が多いです。または Ingress のコンポーネントがLBを兼ねる場合もあります。
  2. DNS/サービスディスカバリ … クラスタ内部のポッド、コンテナの名前解決と監視を行います。クラスタ内の交通整理役です。k8sでは大抵、DNS単体ではなくDNS兼サービスディスカバリのコンポーネントになります。
  3. CNI … コンテナ間の通信をトンネリングする、コンテナネットワークインタフェース(CNI)に対応したコンポーネントです。
  4. サービスメッシュ … 上記のいずれかを組み合わせてPod群とサービスを包括的に一元管理できる仕組みがサービスメッシュです。

それでは以下でそれぞれの分類について代表的なコンポーネントをご紹介いたします。

LB/Ingress 系コンポーネント

クラウドサービスのK8sについて

まず上で書いた通り、LBはクラスタの外と中のつなぎ込み箇所なので、クラウドサービスとして提供されるk8sサービスの場合は、各社の持つ自社インフラのネットワークとクラスタを接続するために、各社独自のLB/Ingressが専用コンポーネントもしくはサービスとして提供されています。

以下に代表3社のヘルプページを記載しておきます。

これ、クラスタの一番の外側にあるサービスのエンドポイントであるLBの設定がクラウド各社によってガチガチなのはある程度は仕方ないことですが、k8sを運用する上で意外と問題になるので要注意です。
クラウドサービスによってサービスとLBの構成がキメキメになってしまうので、Podの構成によってクラウドの移行がまったくできなくなってしまう場合もあります。マルチクラウドのクラスタ管理は相当の沼です。。。

ロードバランサー(LB)

LBの比較には以下のブログ記事を発見いたしましたのでリンクと比較表を載せておきます。ありがとうございます。

この記事では MetalLB, PureLB, Porter の比較を行っています。

MetalLB PureLB Porter
IPAM integrated integrated & external integrated
Uses Linux network Subsystem no yes no
Local Addresses yes yes incomplete
Routed addresses yes yes yes
Protocol Support BGP any (BGP,OSPF,ISIS,RIP) BGP partial
IPv4 & IPv6 no yes no
Integration with routed CNI Difficult easy possible
Config using CRD no yes yes
Redundancy & failover good good poor

Porterは2020年の夏にCNCF に加えられた新しいプロジェクトなのでまだまだこれからが期待、といった感じです。

Ingress コントローラー

Kubernetes 標準搭載の Ingress コントローラーは、GCEnginxの2つです。

追加のIngress コントローラーはかなり多くあります。 公式サイトにある以下にリストを転載いたします。

Ingressコントローラーのこの量ですよ。。だいたいL4/L7のLBとリバプロを兼ねているので色々です。
どれだけその製品のヘルプページのメニューに親しんでいるかで決めればいいと思います。ヘルプが見にくい製品はもうアレですから。といっても個人的には Nginx で困ったら Traefik で、って感じなので Traefik のヘルプページは慣れました。traefik が使いやすいとは言ってないです。

DNS/サービスディスカバリ/サービスメッシュ

DNS/サービスディスカバリ単体のOSSプロジェクトとしては現状 CoreDNS 一択なのではないでしょうか。というか、大抵はサービスディスカバリとサービスメッシュは一体としてプロジェクトで開発されています。
というわけでここではサービスメッシュのOSSを紹介しますが、それよりもありがたい記事がありましたので以下にリンクを貼っておきます。ありがとうございます。

深い内容については上記の記事をご覧ください。以下に記事に紹介されているプロジェクトのリストとリンクだけ貼っておきます

Istio

Envoy

Linkerd

Consul

CNI(コンテナネットワークインタフェース)

CNIそのものも CNCF 傘下のプロジェクトです

このページにてサードパーティのプラグインが列挙されています。

いや、多いですね。。。そこでちょっと古いですがCNIを比較するスライドを発見いたしましたので以下にご紹介いたします。

ここでは flannel, Cilium, Calico, Contiv, TungstenFabric の5つを比較しております。

まぁちょっと古いですが・・・ご参考になればと。

それでは今回はここまでといたします。

10
4
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
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?