Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Contiv

2,533 views

Published on

npstudy #12

Published in: Technology
  • Be the first to comment

Contiv

  1. 1. Contiv @shogokatsurada http://contiv.github.io
  2. 2. • 某 ネットワーク機器メーカ勤務 • 過去、テクニカルサポートエンジニア、 OTT・サービスプロバイダさま向けのSE、 マネージド・クラウドサービス⽴ち上げなど テクノロジー問わず、⾊々やってました • 最近は、クラウド系の新しいソリューション 製品を触ったりしてます @shogokatsurada
  3. 3. • コンテナ・コンテナネットワーキング • Contiv • デモ 本⽇のアジェンダ
  4. 4. コンテナ、アツいっすよね! 451 research market monitor Overview: Cloud Enabling Technologies Containers Revenue ($M) IDC: x86 software containers forecast 0 5,000,000 10,000,000 15,000,000 20,000,000 25,000,000 30,000,000 35,000,000 40,000,000 45,000,000 50,000,000 2015 2016 2017 2018 2019 2020 Container hosts 72.8% 2015-20 CAGR
  5. 5. “Containerizing” a Simple Web App Apache MYSQL PHP Bins/ Libs Hypervisor Host OS Server Host OS Server Bins/Libs Container Control Apache PHP MySQL MYSQL VM Container Containers are isolated but share OS and where appropriate bins/libraries Linux Apache MYSQL PHP Bins/ Libs Linux Apache MYSQL PHP Bins/ Libs Linux Apache PHP Apache PHP MySQL
  6. 6. Microservice = LOTS of east west traffic
  7. 7. Operating the Death Star
  8. 8. The Status Quo 様々なアプリケーション: 開発, テスト, 本番環境, セ キュアアプリ, 高パフォー マンスストレージ, 低レイ テンシー, ハイパフォーマ ンス 柔軟なポリシー制御なし: ルール無し, ガバナンス無 し, エンフォースメント無 し, ベストエフォート Meskel Square [ Source: Reddit.com ] 共有インフラ上の コンテナアプリケーションはベストエフォート
  9. 9. 100% Open Source The Most Powerful Container Networking Fabric L2, L3, Overlay or ACI Rich Policy Model DevOps IT Admin Any NetworkingAny Platform Any Infrastructure Application Intent Rich Policy Connectvity ACI integration Container,VM,BM LDAP/RBAC Contiv とは
  10. 10. • Contiv は、あらゆる構成に対応(Overlay, L2, L3, ACI) • アプリケーショングループベースポリシーに対応
  11. 11. • Docker デフォルトネットワークおさらい • Contiv • マルチホストネットワーキング • マルチテナント • L2ネイティブ接続 • アクセスポリシー制御 • 帯域制御 Demo
  12. 12. • MBP上に Virtual box で仮想マシンを 2台 (docker swarm でクラスタ化) • そこに Contiv(net-plugin) を使ったコンテナを作成していく デモ環境 Contiv-node3 Contiv-node4 Mac上の Virtualbox c1 c2 c1 c2… …
  13. 13. • まず Docker のネットワークについておさらい コンテナを作ってみる • 新しくできた veth や iptables を確認 Docker デフォルト ネットワーク docker run -itd --name=vanilla-c alpine /bin/sh docker ps ifconfig docker network inspect contiv-node4/bridge docker exec -it vanilla-c /bin/sh sudo iptables -t nat -L -n
  14. 14. • Contiv の netctl コマンドでネットワーク作成 (ここでは contiv-netという名前のネットワークを作成) • 確認 • contiv-net を利⽤したコンテナ作成 Contiv マルチホストネットワーキング netctl net create --subnet=10.1.2.0/24 contiv-net docker network ls netctl net ls docker network inspect contiv-net docker run -itd --name=contiv-c1 --net=contiv-net -e constraint:node==contiv-node3 alpine /bin/sh docker run -itd --name=contiv-c2 --net=contiv-net -e constraint:node==contiv-node4 alpine /bin/sh
  15. 15. • マルチテナント環境に対応しているのでテナント作成 • 確認 • contiv-net/blue を利⽤したコンテナ作成 Contiv のマルチテナント機能 netctl tenant create blue netctl net create -t blue --subnet=10.1.2.0/24 contiv-net docker network ls netctl net ls -a docker network inspect contiv-net/blue docker run -itd --name=contiv-blue-c1 --net="contiv-net/blue" alpine /bin/sh
  16. 16. • L2 ネイティブ接続もできます • 確認 Contiv L2 ネイティブ接続 netctl net create -p 112 -e vlan -s 10.1.3.0/24 contiv-vlan docker network ls netctl net ls
  17. 17. • アクセスポリシー⽤のテナントを作成し、グループを作成 • 確認 • 作成したグループに属するコンテナ作成 Contiv アクセスポリシー制御 – group 作成 netctl tenant create TestTenant netctl network create --tenant TestTenant --subnet=10.1.1.0/24 --gateway=10.1.1.254 -e "vlan" TestNet netctl group create -t TestTenant TestNet epgA netctl group create -t TestTenant TestNet epgB netctl group ls –a docker network ls docker run -itd --net="epgA/TestTenant" --name=AContainer contiv/alpine sh docker run -itd --net="epgB/TestTenant" --name=BContainer contiv/alpine sh
  18. 18. • epgA からの ICMP を⽌めるポリシーを作成し、グループに適⽤ • 確認 • 各コンテナにログインして確認 Contiv アクセスポリシー制御 – policy 作成 netctl policy create -t TestTenant policyAB netctl policy rule-add -t TestTenant -d in --protocol icmp --from-group epgA --action deny policyAB 1 netctl group create -t TestTenant -p policyAB TestNet epgB netctl policy ls –a netctl policy rule-ls -t TestTenant policyAB
  19. 19. • 帯域制御⽤のテナント・ネットワーク・グループを作成 • 確認 • コンテナ作成 コンテナから iperf で帯域チェック Contiv による帯域制御 netctl tenant create BandwidthTenant netctl network create --tenant BandwidthTenant --subnet=50.1.1.0/24 --gateway=50.1.1.254 -p 1001 -e "vlan" BandwidthTestNet netctl group create -t BandwidthTenant BandwidthTestNet epgA netctl net ls -a netctl group ls -a docker run -itd --net="epgA/BandwidthTenant" --name=serverA contiv/alpine sh docker run -itd --net="epgA/BandwidthTenant" --name=clientA contiv/alpine sh
  20. 20. • 帯域のポリシー作成(500Kbps)に絞る • 適⽤ • 確認 Contiv による帯域制御 – cont. netctl netprofile create -t BandwidthTenant -b 500Kbps -d 6 -s 80 testProfile netctl netprofile ls –a netctl group ls -a netctl group create -n testProfile -t BandwidthTenant BandwidthTestNet epgA
  21. 21. • IT管理者(Ops)は、 既存のセキュリティポリシーに沿った形で、Contiv でポリシーを設 定しておく • 開発者(Dev)は、 K8S / Docker-compose などで利⽤するアプリケーション定義ファ イル(Yamlなど)に Label で、利⽤するグループやネットワークを指 定する 運⽤の例 コンテナネットワークにも、セキュアに、柔軟なポリシーを提供! (ex) io.contiv.net-group: <グループ> io.contiv.network: <ネットワーク>
  22. 22. • Contiv は 100% オープンソースです! • コンテナネットワークをパワフルに・スケーラブルにしたい⽅、 是⾮お使いください! • 現在 グローバルで コミュニティを拡⼤中 • Slack のルーム に参加して盛り上げていきましょう! https://contiv.herokuapp.com/ まとめ
  23. 23. • シスコのオープンソース コンテナ ネットワーク プラグイン「Contiv」 http://gblogs.cisco.com/jp/2017/04/cisco-opensource-container- netwrokg-plugin-contiv/ • Contiv コンテナネットワークプラグインを Kubernetes で試す http://qiita.com/shogokatsurada/items/776c9c85cb130e71e85c 興味ある⼈ みてね!
  24. 24. ありがとうございました

×