Comments
Transcript
ホワイトボックススイッチとKubernetesによる ネットワーク運 用 自動化
ホワイトボックススイッチとKubernetesによる ネットワーク運⽤用⾃自動化事例例のご紹介 2016/12/7 Okinawa Open Days 2016 NTTソフトウェアイノベーションセンタ(SIC) ⽯石⽥田 渉 Copyright©2016 NTT Corp. All Rights Reserved. ⾃自⼰己紹介 • 名前 : ⽯石⽥田 渉(いしだわたる) • 所属 : NTTソフトウェアイノベーションセンタ • 仕事 : ソフトウェア(特にOSS)の⼒力力でネットワークをより運⽤用 しやすく、より⾼高効率率率化するための研究開発 Ryu SDN Framework osrg/ryu GoBGP osrg/gobgp Copyright©2016 NTT Corp. All Rights Reserved. 2 ⽬目次 1. オープンネットワーキングとホワイトボックススイッチ 2. ホワイトボックススイッチとKubernetesによる ネットワーク運⽤用⾃自動化事例例 Copyright©2016 NTT Corp. All Rights Reserved. 3 ⽬目次 1. オープンネットワーキングとホワイトボックススイッチ 2. ホワイトボックススイッチとKubernetesによる ネットワーク運⽤用⾃自動化事例例 Copyright©2016 NTT Corp. All Rights Reserved. 4 オープンネットワーキング • “脱”垂直統合型ネットワーク機器の潮流流を総称 • リーダーはOTT ( Amazon, Google, Facebook, Microsoft ) • 垂直統合型の既存装置ではなくハード、ソフトが分離離された (disaggregated)装置を開発, 活⽤用 • 価格⾯面だけでなく、他システムとの連携による⾼高度度な最適化など、 より柔軟なインフラ構築のための流流れ APP 垂直統合 APP APP APP OS OS Hardware Commodity HW disaggregated! Copyright©2016 NTT Corp. All Rights Reserved. 5 OTTのインフラストラクチャ(1/2) • ハードウェア : ODMベンダに設計, 開発, 製造を委託 • ODMベンダ : Quanta(世界サーバ出荷台数の1/7), Accton(世界最⼤大のNW 機器ODMベンダ) • NW OS等ソフトウェアは含まない • ソフトウェア : ⾃自社, オープンソースソフト(OSS), ベンダ製品を活⽤用 Facebookのネットワーク装置 -‐‑‒ Accton(Edgecore)製 ソフトの技術⼒力力を⽣生かし、安価かつ柔軟なインフラを構築している “Capex $/Tbps and Opex are 100x smaller than counterparts for prior networks” Albert Greenberg (Microsoft Distinguished Engineer) 2015 Copyright©2016 NTT Corp. All Rights Reserved. 6 /14 OTTのインフラストラクチャ(2/2) https://code.facebook.com/posts/1142111519143652/introducing-‐‑‒open-‐‑‒r-‐‑‒a-‐‑‒new-‐‑‒modular-‐‑‒routing-‐‑‒platform/ http://www.wired.com/2015/06/google-‐‑‒reveals-‐‑‒secret-‐‑‒gear-‐‑‒connects-‐‑‒online-‐‑‒empire/ 独⾃自ルーティングプロトコルをハードウェア上で稼働させ、 ベンダの機能追加を待つことなく迅速かつ柔軟にインフラを構築 Copyright©2016 NTT Corp. All Rights Reserved. 7 /14 オープンネットワーキングが進む3領領域 • データセンタネットワーク • オープンネットワーキングの主戦場 • OTTでは脱ベンダ化は⼀一巡した様⼦子 • キャリア・エンタープライズへの普及が今後進んでいく⾒見見込み • OCPなどで議論論 • 無線ネットワーク • ターゲットはWiFi・携帯電話網(2G, 3G, LTE) • まだ未成熟 (先進的なOTTは導⼊入済みかも) • OCP(WiFi), TIP(2G, 3G)などで議論論 • オプティカルネットワーク • ターゲットはデータセンタ間ネットワーク • まだ未成熟 (先進的なOTTは導⼊入済みかも) • TIPなどで議論論 Copyright©2016 NTT Corp. All Rights Reserved. 8 ホワイトボックススイッチ 従来ネットワーク機器 ホワイトボックススイッチ ソフトウェア ソフトウェア ハードウェア ハードウェア • ソフトウェアとハードウェアは不不可分 • Juniperハード上でCisco IOSは動か ない • ⼤大半のソフトウェアはクローズド • ユーザによる機能追加が困難 ここだけ • 従来ネットワーク機器を製造してきた ODMベンダ製品 • 多くは台湾製 • ソフトウェアを含まない • ユーザが選択 or 開発 • ベアメタルスイッチとも • IAサーバではない ソフトウェアを含まない、ODMベンダ製コモディティスイッチ Copyright©2016 NTT Corp. All Rights Reserved. 9 ホワイトボックススイッチの中⾝身 SDK 制御パケット(ICMP, ARP等) 各種デーモン OS CPU パケットの流流れ ASIC • ASIC : パケット転送を⾏行行うスイッチの⼼心臓部 • Broadcom社がリーダー ( Trident, Tomahawk ) • Tomahawkチップは100GbE x 32ポート分 (3.2Tbps)の転送帯域 • 他にはMellanox, Cavium, Barefootなど • CPU : スイッチの制御部 / OSが稼働 • ハイ・ミドルエンド : x86, ローエンド : ARM • メモリ: 2-‐8GB, ストレージ : 4-‐32GB Copyright©2016 NTT Corp. All Rights Reserved. 10 様々なホワイトボックススイッチベンダ Copyright©2016 NTT Corp. All Rights Reserved. 11 様々なホワイトボックススイッチOS • • • • • • Cumulus Linux – Cumulus Networks Switch Light OS – Big Switch Networks OcNOS – IP Infusion PicOS – Pica8 ONL (Open Network Linux) – Big Switch Networks Ubuntu Snappy – Canonical それぞれ特徴が異異なり、ユースケースに合わせて選択する必要がある Copyright©2016 NTT Corp. All Rights Reserved. 12 ホワイトボックススイッチユーザ会 事例例紹介 NOS紹介 是⾮非お越しください! Copyright©2016 NTT Corp. All Rights Reserved. 13 ⽬目次 1. オープンネットワーキングとホワイトボックススイッチ 2. ホワイトボックススイッチとKubernetesによる ネットワーク運⽤用⾃自動化事例例 Copyright©2016 NTT Corp. All Rights Reserved. 14 nOSRG-‐‑‒NET – SIC内実験ネットワーク ホワイトボックススイッチを活⽤用したネットワークを構築 • L3 CLOSネットワークの採⽤用 • L2ドメインを⼩小さく • ルーティングはBGP • https://github.com/osrg/gobgpを利利⽤用 • 端末管理理のWEBポータル化 • WEBポータルと連携して、DNS/DHCP/ACLを⾃自動設定 • DigitalOceanがOSS化しているNetBoxを利利⽤用 • https://github.com/digitalocean/netbox • デーモン管理理のためにKubernetesをスイッチ上で稼働 • https://github.com/kubernetes/kubernetes • 各種デーモンのデプロイ, 死活監視, ロギング, アップデートを担当 • スイッチ群を個別に設定するのではなく群れとして設定するための基盤 • 似たようなコンセプトのソリューション : Big Switch, Apstra Copyright©2016 NTT Corp. All Rights Reserved. 15 ネットワーク構成 – L3 CLOS Spine switch ToR switch Server • L3 CLOS • ToR -‐ Server間 : L2接続 ( L3接続化を検討中 ) • ToR -‐ Spine間 : L3接続 • ECMPにより冗⻑⾧長性・負荷分散を⾏行行う • ルーティングにはBGPを⽤用いる • 各ラック 1AS Copyright©2016 NTT Corp. All Rights Reserved. 16 nOSRG-‐‑‒NET ホワイトボックススイッチ構成 APP APP Kubernetes Cumulus Linux EdgeCoreスイッチ • スイッチはEdgeCore製, OSはCumulus Linuxを採⽤用 • Cumulus Linux : • スイッチをNICがたくさん搭載されているLinuxとして扱える • サーバの世界のソフトウェアを”ほぼ”そのまま動かせる • 例例) Docker, Kubernetes, GoBGP • ASIC vs CPUの違いがきれいに吸収できていない部分もある • 例例) iptables, tc -‐ 挙動が違う or 独⾃自拡張されている Copyright©2016 NTT Corp. All Rights Reserved. 17 nOSRG-‐‑‒NET システムアーキテクチャ 利利⽤用者による端末追加、変更更 ポーリングによる同期 etcd APIによるnotificationを 契機に設定等をスイッチに反映 DHCP DNS ACL スイッチ DHCP DNS スイッチ ACL Copyright©2016 NTT Corp. All Rights Reserved. 18 NetBox -‐‑‒ ラック管理理 Copyright©2016 NTT Corp. All Rights Reserved. 19 NetBox -‐‑‒ 端末管理理 ホスト名, 機種, ラック位置, 役割 インターフェイス管理理 -‐ MACアドレス, IPアドレス, 接続先 Copyright©2016 NTT Corp. All Rights Reserved. 20 Kubernetes Google発コンテナオーケストレータ https://github.com/kubernetes/kubernetes • 複数台のサーバ (node) を計算資源のプールとし, コンテナ化されたアプリ ケーションのデプロイ, スケジューリング, 死活監視, 再起動, ロギング, 負荷 分散等の⾯面倒をみてくれる • 使い⽅方の⼀一例例 1. web serverのコンテナをx台, どのnodeでもいいので起動し, ロードバラン サで負荷を分散させる (Pod, Replication Controller, Service) • web serverが何らかの理理由で落落ちたら, ⾃自動的に再起動させる • 負荷に応じて, 後から起動数を増減させる 2. 全てのnodeでnodeのリソース使⽤用量量をモニタリングするためのコンテ ナを起動し, 死活監視も⾏行行う (Daemon Set) 3. 常駐型のアプリではなく、スクリプト等の短時間で終了了する作業を特 定のnodeで(定期的に)実⾏行行する (Job, Scheduled Job, Label) Copyright©2016 NTT Corp. All Rights Reserved. 21 nOSRG-‐‑‒NETでのKubernetesの使い⽅方 • 通常Kubernetesでは各コンテナは個別にIPアドレスが割り振られ、ホストのネッ トワークは⾒見見えないようになっている • Linux Network Namespaceによるネットワーク空間の分離離 • nOSRG-‐NETでは主にネットワークのシステムデーモンを管理理するために Kubernetesを利利⽤用 (分散systemdのように使っている) • ホストのネットワークも⾒見見えないと困るため、ネットワーク空間の分離離機能 は利利⽤用していない • Daemon Setを利利⽤用して複数スイッチに同⼀一種のコンテナをデプロイ • ラベルを利利⽤用して起動するサービスを使い分けている • device-‐type : server, switch • device-‐role : tor, spine kubectlというkubernetesのCLIで物理理ノードの ⼀一覧と付与されたラベルを表⽰示 Copyright©2016 NTT Corp. All Rights Reserved. 22 GoBGP NTT SIC発Go⾔言語BGP実装 https://github.com/osrg/gobgp 1. API firstの設計 • CLIもAPIを利利⽤用して実装 2. Go⾔言語によりマルチコアを最⼤大限に活⽤用 3. OpenConfigを採⽤用し, ベンダニュートラルなコンフィギュレーションモデル 4. Go⾔言語のBGPライブラリとして利利⽤用できる • nOSRG-‐NETではこの⽅方式でGoBGPを利利⽤用 Copyright©2016 NTT Corp. All Rights Reserved. 23 GoBGP -‐‑‒ Go⾔言語BGPライブラリとしての使い⽅方 BGPサーバのインスタンスを作成, 起動 APIサーバのインスタンスを作成, 起動 グローバル設定を作成し… BGP機能をスタート ピア設定を作成し… ピアを追加 Copyright©2016 NTT Corp. All Rights Reserved. 24 nOSRG-‐‑‒NETでのGoBGPの使い⽅方 -‐ GoBGPをライブラリとして利利⽤用し, etcdから情報を取得し, BGP部の設定を⾏行行い ピアから受信した経路路はnetlinkを使ってFIBに書き込む etcd API nOSRG-‐NET BGPデーモンコンテナ デプロイ 死活監視 netlink : 書き⾜足し部分 Copyright©2016 NTT Corp. All Rights Reserved. 25 まとめ • OTTを中⼼心に“脱”垂直統合型ネットワーク機器が進んでいる • データセンタネットワークではホワイトボックススイッチの活⽤用によりサー バ側の技術を取り⼊入れて安価に柔軟なインフラを構築している • SICでは社内実験ネットワークにホワイトボックススイッチを導⼊入。Kubernetes と組み合わせて、ネットワークアーキテクチャのシンプル化と運⽤用の⾃自動化 を進めている • 明⽇日9時45分、第7会議室、ホワイトボックススイッチユーザ会開催します! ぜひお越しください! Copyright©2016 NTT Corp. All Rights Reserved. 26