Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はじめてのNetwork Service Mesh

nnao45
April 28, 2020
2.2k

はじめてのNetwork Service Mesh

nnao45

April 28, 2020
Tweet

Transcript

  1. 5 • Network Service Meshとは – L2/L3レイヤーのIstioインスパイアなサービスメッ シュ。VNFの思想を強く受けている。 用途 –

    kubeのリソースにユーザが使いたいL2/L3Network Serviceを与えるのが主な目的 • GitHub – ★374 https://github.com/networkservicemesh/network servicemesh • 類似/関連プロダクト – Istio, Envoy
  2. • Day 0 - K8s admin enables Network Service Mesh

    on cluster ◦ helm install nsm • Day 1 - Network Service Deployed to K8s cluster ◦ helm install marshas-app-connectivity • No change to underlying K8s • Works with any CNI プログラマブルかつ、モジュールとしてNSMは追加 できる
  3. ネットワークのラベリングの歴史 いんたー ねっつ R1 R2 R3 R4 R5 R6 T1

    T2 実はここの線が工事中で、障害時 に耐えられるだけの帯域が残って ない・・・としたら? • 例えば、障害など起きた時に、「動的に帯域が空いている経路 の対してルーティングを行いたい」というニーズがあったときど うしましょう?
  4. ネットワークのラベリングの歴史 いんたー ねっつ R1 R2 R3 R4 R5 R6 T1

    T2 • L3(L7)的な解決→RSVP(RFC2205)とかMPLS-TE Automatic Bandwidth を使用して、パケットのラベリングをし、 帯域予約や制御をする。
  5. 本当はこういう事したいんじゃないの? でーたせんたー全体 でーたせんたーのど こか いんたーねっつ 動画流す 高トラ フィック App 低トラ

    フィック App お前はトラフィック多 いけどサービスに必 要だから多めにトラ フィック流せるように するわ お前はトラフィック少 なくていいから少なめ な
  6. 本当はこういう事したいんじゃないの? でーたせんたー全体 でーたせんたーのど こか いんたーねっつ 動画流す 高トラ フィック App 低トラ

    フィック App お前はトラフィック多 いけどサービスに必 要だから多めにトラ フィック流せるように するわ お前はトラフィック少 なくていいから少なめ な
  7. 本当はこういう事したいんじゃないの? でーたせんたー全体 でーたせんたーのど こか いんたーねっつ 動画流す 高トラ フィック App 低トラ

    フィック App お前はトラフィック多 いけどサービスに必 要だから多めにトラ フィック流せるように するわ お前はトラフィック なくていいから少 な 動画流す 高トラ フィック App
  8. 34

  9. 36 • Network Service Meshとは – L2/L3レイヤーのIstioインスパイアなサービスメッ シュ。VNFの思想を強く受けている。 用途 –

    kubeのリソースにユーザが使いたいL2/L3Network Serviceを与えるのが主な目的 • GitHub – ★374 https://github.com/networkservicemesh/network servicemesh • 類似/関連プロダクト – Istio, Envoy
  10. Network Service Mesh全体像 37 Network Service Network Service Endpoint L2/L3

    Connection Object Of Interest 特定のKubernetesリソースに与えたい L2/L3 サービス全体。以後 NS。 例えば、セキュアなイントラネット接続。 特定のKubernetesリソースに与えたい L2/L3サービス終端。以後 NSE。 例えば、VPNのトンネル終端とか、 VXLANのVTEP。 特定のKubernetesリソースとNSEを繋ぐ、 L2/L3のコネクティビティ。 要はルーティングなのだが、 Network Service Meshの場合はそれを「 Kubernetesのラベル」 で表現する。
  11. 38 Network Service Mesh設定例 Network Service Network Service Endpoint Object

    Of Interest Firewall Service Network Service Endpoint VPN Service Secure Intranet Service
  12. 39 Network Service Mesh設定例 Network Service Network Service Endpoint Object

    Of Interest L2/L3 Connection Firewall Service Network Service Endpoint VPN Service Secure Intranet Service app: firewall app:vpn
  13. 40 Network Service Mesh設定例 Network Service Network Service Endpoint Object

    Of Interest L2/L3 Connection Firewall Service Network Service Endpoint VPN Service Secure Intranet Service app:vpn app: firewall apiVersion: networkservicemesh.io/v1alpha1 kind: NetworkService metadata: name: secure-intranet-connectivity spec: payload: IP matches: - match: sourceSelector: app: "firewall" route: - destination: destinationSelector: app: "vpn" - match: route: - destination: destinationSelector: app: "firewall"
  14. 41 Network Service Mesh設定例 Network Service Network Service Endpoint Object

    Of Interest L2/L3 Connection Firewall Service Network Service Endpoint VPN Service Secure Intranet Service app:vpn L2/L3 Connection app: firewall
  15. 42 Network Service Mesh設定例 Network Service Network Service Endpoint Object

    Of Interest L2/L3 Connection Firewall Service Network Service Endpoint VPN Service Secure Intranet Service app:vpn L2/L3 Connection apiVersion: networkservicemesh.io/v1alpha1 kind: NetworkService metadata: name: secure-intranet-connectivity spec: payload: IP matches: - match: sourceSelector: app: "firewall" route: - destination: destinationSelector: app: "vpn" - match: route: - destination: destinationSelector: app: "firewall" app: firewall
  16. K8s API Server Network Service Manager Domain Network Service Manager

    (NSMgr) NSM Forwarder Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... ... Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder Network Service Client (NSC) Network Service Client (NSC) Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... ... IstioにおけるEnvoy Proxyのように、サービス ディスカバリーやデータプレーン運搬をしてく れるヤツ CRDとしてnetworkservicemeshサービスが あるか保管しておいてある
  17. K8s API Server Network Service Manager Domain Network Service Manager

    (NSMgr) NSM Forwarder Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... ... Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder Network Service Client (NSC) Network Service Client (NSC) Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... ... 新たなNetwork Serviceに接続したいクライア ントはデーモンセットとして存在する NSMに接 続要求を飛ばす
  18. Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder

    Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... ... Select NetworkService NetworkServiceEndpoint NSMはmNSCに接続要求を受けると NSRに 該当するサービスがどこにあるかNSRに聞 きに行く K8s API Server
  19. Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder

    Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... ... remote.NetworkService.Request NSMはmNSCに接続要求を受けると NSRに 該当するサービスがどこにあるかNSRに聞 きに行く K8s API Server
  20. Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder

    Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... Network Service Manager Domain Network Service Manager (NSMgr) NSM Forwarder Network Service Client (NSC) Network Service Client (NSC) ... Network Service Endpoint (NSE) Network Service Endpoint (NSE) ... ... K8s API Server vWire (L2/L3 connection (tunnel)) Create & Inject Interface Create & Inject Interface 接続要求が成功すると、 vWireと呼ばれるトンネリングをはることで、 ノードをまたいでも直接的な接続を可能とす る
  21. 参考資料 • networkservicemesh/networkservicemesh • https://github.com/networkservicemesh/networkservicemesh/blob/master/docs/what-is-nsm.md • Network Service Mesh •

    https://www.cisco.com/c/dam/m/en_us/network-intelligence/service-provider/digital-transformation/kno wledge-network-webinars/pdfs/1128_TECHAD_CKN_PDF.pdf • Network Service Mesh SP Intro • https://docs.google.com/presentation/d/1hFy0FZVJYahyK_vj_3pNCuaXGFEMZ-pg9B3iym7DXEg • Network Service Mesh: VPN Gateway • https://docs.google.com/presentation/d/1BnouS8d_Aesq9IPRPWRxTcZR1ZtmULcyh6l0gAK204Q/e dit#slide=id.g3b5aa99a10_0_74 51