Slide 1

Slide 1 text

クラウドネイティブな次世代サービス基盤を 支える光データセンターネットワークへの 挑戦 shownet.conf_ 2023 Interop Tokyo 2023 ShowNet NOCチームメンバー 織 学

Slide 2

Slide 2 text

ShowNet 2023 DC/Cloud のテーマ ➢クラウドネイティブな次世代サービス基盤を支える 光データセンターネットワークへの挑戦 ✓クラウドネイティブなルータを活用した Container as a Service ✓コンテナアプリケーションによるスケーラブルなサービス管理 ✓(オープン)光伝送技術を用いたデータセンターネットワークの ネクストステージ 2

Slide 3

Slide 3 text

今年の仮想化基盤とコンテナ基盤 3

Slide 4

Slide 4 text

4 クラウドネイティブなルータを活用した Container as a Service 光伝送技術を用いた データセンタネットワーク コンテナアプリケーションによる スケーラブルなサービス管理 コンテナアプリケーションによる スケーラブルなサービス管理

Slide 5

Slide 5 text

仮想基盤とクラウド連携

Slide 6

Slide 6 text

ShowNet 2023 の仮想化基盤とコンテナ基盤 6 Azure Stack HCI Azure Kubernetes Service vSphere Tanzu Kubernetes Grid OpenShift ➢総VM数: 104 ➢総コンテナ(Pod)数: 242 ✓コンテナは全てKubernetes上で稼働 ✓DHCP, DNS 等のサービスも全てコンテナで提供

Slide 7

Slide 7 text

ShowNet 2023 の仮想化基盤 ➢.svc、.dc にて 2 つの仮想化基盤を構築 ✓VMware vSphere ✓Azure Stack HCI ➢様々な仮想アプライアンスの展開 ✓セキュリティやモニタリング ✓Kubernetes 基盤など 7 hx-c220c-m5sx dl380 fusionpod

Slide 8

Slide 8 text

水冷ラックサーバ (1) ➢21インチOpen Compute Project仕様 ➢チラーからの冷却液をサーバ内に引き込み、主にCPU を冷却 ➢背面扉にも冷却液が流れており、前面から吸気して背 面から出る排気も冷却 ➢サーバの25Gbpsインターフェースは、バックプレーン を介して同ラックに搭載した専用25Gスイッチ6台に接 続 ➢各サーバにvSphere ESXiをインストールして仮想化基盤 として活用

Slide 9

Slide 9 text

水冷ラックサーバ (2)

Slide 10

Slide 10 text

クラウドと連携したオンプレ環境の管理 (1) 10 hx-c220c-m5sx ShowNet インベントリ 情報 mgmt ネットワークから Intersight へ接続 インベントリ情報、ステータスの確認 仮想化基盤の可視化 クラウドからの vKVM、電源管理など ベアメタル、VM、コンテナなどの管理 設定、プロビジョニング、インストール 仮想化基盤のローリングアップデート ストレージシステムの管理

Slide 11

Slide 11 text

クラウドと連携したオンプレ環境の管理 (2) dl385-gen11 ShowNet HPE Azure Azure Arc HPE GreenLake for Compute Ops Management Azure Kubernetes Service ハードウェアの管理 Firmwareバージョン CO2排出量 仮想マシンやコンテナ の一元管理、Azure連携 Azure Stack HCI Windows Admin Center

Slide 12

Slide 12 text

クラウドと連携したオンプレ環境の管理 (3) 12 ➢ShowNetのmgmtネットワークとパブリックク ラウドSDPFをSD-WANで接続 ➢ShowNetのサービスをクラウドから外形監視 ➢運用管理/監視VMをオンプレ・クラウドで冗 長化 Smart Data Platform cisco8500-2 cisco8500-1 cisco8500v-1 system-answer-g3-1..3 Thousandeyes-agent Za-7600-1..2 zabbix6 Paragon-active-assurance-cc Accredian-twapreflector System-answer-g3-1..3 zabbix6 thousandeyes-agent ShowNet

Slide 13

Slide 13 text

Kubernetesおさらい

Slide 14

Slide 14 text

Worker Node Kubernetes概要 14 Worker Node Control Plane Node Pod Pod Pod Pod apiserver scheduler controller manager etcd Kubernetes Cluster Control Plane Node apiserver scheduler controller manager etcd Control Plane Node apiserver scheduler controller manager etcd

Slide 15

Slide 15 text

Worker Node Kubernetes概要 15 Worker Node Control Plane Node apiserver scheduler controller manager etcd Control Plane Node apiserver scheduler controller manager etcd Control Plane Node apiserver scheduler controller manager etcd replicas: 3 Deployment Pod Pod Pod

Slide 16

Slide 16 text

Node Kubernetesのネットワーク 16 Node Node Web Web Web Service Network Node Network Pod Network ➢Kubernetesのネットワークは主に3つ ✓ Node Network (underlay) ✓ Pod Network (overlay) ✓ Service Network (overlay) ➢CNI (Container Network Interface) プラグイン として実装 ✓ Antrea ✓ OVN-Kubernetes ✓ Calico ✓ CN2

Slide 17

Slide 17 text

Node Pod間通信 17 DB Node DB Node AppServer AppServer AppServer Web Web Web replicas: 3 Deployment

Slide 18

Slide 18 text

Node Pod間通信 18 Node DB DB Node AppServer AppServer AppServer Web Web Web AppServer Service DB Service ➢クラスター内のPod間通信は、Serviceを 経由する ➢Serviceを経由することによって以下を 実現する ✓ 内部DNSによるサービスディスカバリ ✓ Podレプリカに対するL4ロードバランス ➢Serviceにはいくつかの “Type” がある ✓ ClusterIP ✓ LoadBalancer ✓ NodePort

Slide 19

Slide 19 text

Node クラスター外部からのPodへのアクセス 19 Node Node AppServer AppServer AppServer Web Web Web AppServer Web Ingress Controller metallb speaker frr xrd xrd Ingress NodePort LoadBalancer ➢ Ingress ✓ L7ロードバランサーをIngress Controllerとしてデ プロイし、それ経由でアクセスする ➢ NodePort ✓ Serviceを30000番以降のポート番号で各ノード からアクセスできるようにする ➢ LoadBalancer ✓ クラウドのロードバランサーを自動で設定し、 NodePort経由でアクセスできるようにする ✓ オンプレミス環境の場合、MetalLBのような仕 組みを使う • L2モード • L3モード

Slide 20

Slide 20 text

ShowNet2023での Kubernetesの活用

Slide 21

Slide 21 text

これまでのKubernetesチャレンジ Kubernete Containers 2018 Pivotal Container Service OpenShift Zabbix Next Stream Virtualization PG/PE 2019 OpenShift (Azure AKS, GCP GKE) www.interop.jp 2021 Vanilla k8s OpenShift Multicloud Management CSI Storage (KumoFS, Nimble) 2022 Vanilla k8s OpenShift Ezmeral (Azure AKS) Multicloud Interconnect Zabbix 21 ➢今年はついにDNS, DHCP等のサービスをKubernetes上に展開!

Slide 22

Slide 22 text

コンテナルータを活用した VM/Container 基盤 22 C220c-m5sx nexus93180yc-2 nexus93180yc-1 tanzu-worker tanzu-worker tanzu-worker C220c-m5sx C220c-m5sx nsx-vswitch rgs6510-3 fusionpod-3 fusionpod-2 fusionpod-1 ocp-worker ocp-worker ocp-worker nexus9336c rgs6930 rgs6510-2 rgs6510-1 ns1,2 cache kea elastic grafana calisti xrd xrd xrd metallb zabbix-agent zabbix-proxy Zabbix-kube- state-metrics crpd dnstap vmware-csi antrea calico クラスタ間は EVPN+ VXLANで L2 延伸 コンテナのアドレスをBGP で広告 lookingglass prometheus cn2 cn-series multus kea-private voicevox nginx dnstap IaaS x 2, k8sクラスタ x 4を構築

Slide 23

Slide 23 text

コンテナ化した ShowNet の .svc ➢コンテナのアドレスを外部からアクセス可能に ✓ARP の代理応答 or BGP ➢コンテナで BGP ✓コンテナのサービスを定義したら /32、/128 でアドレスを広告 ✓複数の worker でコンテナが起動したら ECMP で負荷分散 23 cache cache cache dhcp2 dhcp1 cache のアドレス/32 cache のアドレス/32 dhcp1 のアドレス/32 cache のアドレス/32 dhcp2 のアドレス/32 xrd xrd xrd metallb metallb metallb

Slide 24

Slide 24 text

コンテナ化した ShowNet の .svc ➢ネットワークは L3 で設計 ✓k8s のサーバで BGP するため ✓これまでは • Spine で VRRP • Leaf は MC-LAG ➢L2 延伸は EVPN VXLAN ✓仮想アプライアンス ✓ストレージなど ✓VRRP は使わずに anycast gateway 24

Slide 25

Slide 25 text

DNS nexus93180yc-2 nexus93180yc-1 dnstap dnstap-receiver filebeat elasticsearch elastic search kibana kibana metallb speaker frr xrd xrd unbound unbound x3 x3 x3 ns2 bind service service metallb speaker frr xrd xrd x3 ns1 bind x3 service service service service ➢ UnboundはDNS Tapを使ってログを統合監視と ESに転送 ➢ Unbound, Bindは3つずつレプリカを稼働

Slide 26

Slide 26 text

DHCP service metallb speaker frr xrd xrd kea1 dhcp4 ctrl-agent syslog service metallb speaker frr xrd xrd kea2 dhcp4 ctrl-agent syslog service metallb speaker frr xrd xrd kea3 dhcp4 ctrl-agent syslog nexus93180yc-2 nexus93180yc-1 HA cluster Backup ShowNet Exhibitor DHCP Request ➢ DHCPリクエストはリレーされてユニキャストパ ケットとして届く ➢ DHCPサーバは2台でフェイルオーバークラスター を構成 ➢ 戻りパケットのsrcアドレスをEgressで指定

Slide 27

Slide 27 text

Looking Glass nexus93180yc-2 nexus93180yc-1 crpd crpd service service metallb speaker frr xrd xrd Looking glass lg fortiwebvm ShowNet BGP Peer ➢ 外部からLGへのアクセスはFortiWebVMで守る ➢ LGはcrpd上でのコマンド実行結果を表示する ➢ crpdはShowNetのルータから経路情報をもらう Internet

Slide 28

Slide 28 text

その他Tips ➢Podから外部へ通信時のsrc addrを固定/指定したい ✓通常、Podから外部への通信時は、ノード上でSNATされる ✓Egressの仕組みを利用してsrc addrを固定 ➢対向ルータでECMPによるロードバランスをした後、ノード内でServiceに よるロードバランスをしない ✓ServiceによるロードバランスでノードをまたぐとNATされてsrc addrが変わる ✓ServiceのexternalTrafficPolicyをLocalに設定する ➢設定ファイルはConfigMapで管理 ✓各デーモンの/etcのコンフィグ ✓DHCPのアドレスブロック • 今年は157個 ✓Zone 28 service metallb speaker frr Pod service metallb speaker frr Pod

Slide 29

Slide 29 text

Kubernetesを使ってみて… ➢大変だったこと ✓Kubernetes特有のネットワークの考え方と、ShowNet独特の運用との調整 • DHCP, DNS, … ➢良かったこと ✓Kubernetesの仕組みに乗っかることでいろいろ楽になった • 事前の仕込み • イメージや設定更新時のローリングアップデート • サービスのスケールアウト ➢課題 ✓コンテナが大量に生まれると管理が大変 • オブザーバビリティ重要 • 可視化して管理 29

Slide 30

Slide 30 text

サービスメッシュ/コンテナセキュリティ ➢サービスメッシュでコンテナアプリのトポロジを可視化 ✓どのアプリが繋がっているか、どこに異常があるかを把握 30

Slide 31

Slide 31 text

仮想マシン/コンテナセキュリティ ➢K8s APIアクセスをNSXでフィルタリング ➢外部への Web サービスを WAF で防御 ✓ShowNet Peering Portal • ShowNet に接続している AS や受信経路が見れます ✓ShowNet Looking Glass • ShowNet 内の経路が見れます • SRv6 SID も見れます! 31 fortiwebvm Peering Portal with NSO Looking Glass Internet

Slide 32

Slide 32 text

光データセンターネットワーク ➢Spine-Leaf の間に L1 スイッチを設置 ✓構成変更やトラフィックに応じたトポロジの変更を容易に! ✓片方の Spine スイッチを 100G x 2、 Leaf スイッチ間を接続など 32 nexus9336c rgs6930 s6850 nexus93180 polatis 2 芯を 1 芯にして L1 スイッチのポート数を節約 光 L1 スイッチなので インタフェース速度に依存しない! 100G-LR4 Transceiver tx rx tx+rx 1 2 3 2心ファイバ区間 1心ファイバ区間 サーキュレータの動作 Circulator Circulator Circulator Circulator Circulator Circulator Circulator Circulator

Slide 33

Slide 33 text

Special Thanks 3 3