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.

フォーラム資料(2018/01/19) Calico検証PJ CalicoとBGP

906 views

Published on

沖縄オープンラボラトリ フォーラム資料(2018/01/19) Calico検証PJ

Published in: Business
  • Login to see the comments

フォーラム資料(2018/01/19) Calico検証PJ CalicoとBGP

  1. 1. Project CalicoとBGP Testbed WG Calico検証PJ 2018/1/19
  2. 2. Okinawa Open Laboratory 2 Agenda  Calico検証PJ  Project Calicoご紹介  Project Calicoとは  Project Calicoアーキテクチャ  Calicoユースケース  CalicoとBGPについて
  3. 3. Okinawa Open Laboratory 3 Calico検証プロジェクト (2017/5~)  Calico検証プロジェクトのモチベーション  IPルーティングベース(L2レス)という従来のネットワークとは異なる特性を持つCalico について、この技術が出てきた背景や技術的な特徴、アーキテクチャ、適したユースケ ースなどを明らかにする  Calicoホワイトボックス化  OpenStack with Calico構築 (OOLテストベッド)  Calicoの動作概要を調査・分析  Calicoのコンポーネント(Felix, BIRD, etcdなど)の振る舞い  OpenStackのインスタンス間通信、外部との通信経路  ネットワーク分離やマルチテナントなどのセキュリティ機能  Kubernetes+Calicoの動作検証  ユースケースの検討
  4. 4. Okinawa Open Laboratory 4 Project Calicoご紹介
  5. 5. Okinawa Open Laboratory 5 Project Calicoとは  どんなPJか  OpenStack VMやKubernetesコンテナなどに対してL3ルーティングベー スのネットワーキング機能を提供するOSSプロジェクト  Container Network Interface(CNI)の3rd party pluginの一つ  歴史  2014 – イギリスのMetaswitch社がProject Calicoを発表  2016 – Metaswitch社とCoreOS社がTigera社を設立 CalicoとFlannelを統合したCanalを公開
  6. 6. Okinawa Open Laboratory 6 Project Calicoが出てきた背景  運用面  仮想ネットワークやSDNが出てきて、物理ネットワーク上に独立した仮 想ネットワークつまりオーバーレイネットワークが作られるようになり 複雑化した  性能面  オーバーレイのカプセル化によるオーバーヘッドやL2セグメントが広が ることによるBUMトラフィック、East-Westトラフィックの増大などの 課題がある  トレンド  クラウドネイティブアプリケーションの登場で、VMやコンテナなどの高 速なライフサイクルに合わせてネットワークを変更したりスケールした りする必要性が出てきた
  7. 7. Okinawa Open Laboratory 7 Project Calicoの技術的な特徴  Non Overlay  柔軟なネットワーク構成のためにIPルーティングだけで組むというモデ ルを採用  全てのVM/コンテナがIPアドレスをキーとして通信するのでIPアドレス重 複はできない  Non Controller  BGPを採用したことで中央集権的なコントローラーが不要になりスケー ラビリティが出しやすい  BGPを使う副次的な効果として相互接続性が高い  OpenStackやKubernetesなどのオーケストレーターと組み合わせる ことが前提
  8. 8. Okinawa Open Laboratory 8 Project Calicoアーキテクチャ
  9. 9. Okinawa Open Laboratory 9 用語について  ワークロード  Calicoネットワークで管理されるVMやコンテナのこと  ワークロードエンドポイント  コンテナやVMが接続されるtapインターフェース  ホストエンドポイント  Calico(Felix)が動作するホストのインターフェース Compute Node Container / VM cali-(tap) eth0
  10. 10. Okinawa Open Laboratory 10 Calicoの構成要素 引用:https://www.slideshare.net/emma_gordon/simple-scalable-and-secure-networking-for-data-centers-with-project-calico-55155549  Calico Plugin  オーケストレータで動作するプラグイン etcdデータストアへの書き込みを行う  etcd  Calicoの動作に必要な情報を保持するデータストア (エンドポイント情報やACLなど)  Felix  全Compute Nodeに常駐し、 etcdの同期、経路(FIB)とACLの監視/設定を行う  BIRD  BGP Routing Daemon  Compute Node同士で経路を交換する  交換した経路をFIBへ設定する
  11. 11. Okinawa Open Laboratory 11 Felixの動作概要  etcdの更新を監視  etcdの更新をポーリングしており、 更新を検知し設定変更を行う  iptables、FIBへの設定反映  etcdの情報をもとに設定を行う  iptables、FIBの監視、修正  定期的に設定を監視しており、 etcdの情報にそぐわない設定があった場合 自動修正を行う Calico Node Felix Containers FIB iptables ・エンドポイント情報 ・コンテナのステータス ・MACアドレス ・IPアドレス ・インターフェース名 ・PolicyID ・Policy情報 etc sync sync sync syncsync
  12. 12. Okinawa Open Laboratory 12 Calico Node BIRD Container4Container3 FIB Felix BIRD(BGP)による経路広告の動作概要  BIRDがFIBを読み込み、他Calico NodeとBGPで経路交換する  経路情報を受け取ったCalico NodeのBIRDはFIBに書き込む  ピア数が多い場合はルートリフレクタを使用する方法もある Calico Node BIRD Container2Container1 FIB Felix iBGP Peer Container3,4の経路広告Container1,2の経路広告 経路情報 読込み/書込み 経路情報 読込み/書込み 経路情報 書込み 経路情報 書込み
  13. 13. Okinawa Open Laboratory 13 Calico Network Policy  Profileによる設定  Profileを事前に定義しておき、Endpointの設定内 で使用するProfileを指定する  Policyによる設定  Endpointでラベルを事前に定義しておき、 ラベル単位にネットワークポリシーを設定する  まとめて(Pod単位など)設定できるのが利点 エンドポイント(ワークロード/ホスト)に対してネットワークポリシーが 設定できる。エンドポイントへのポリシーの紐付け方の違いから、 2つのネットワークポリシーモデルがある Endpoint 1 Label: a Endpoint 2 Label: a Endpoint 3 Label: a Policy icmp deny Label: a Endpoint Profile: a, b, c Profile: a icmp deny Profile: b http allow Profile: c ssh allow
  14. 14. Okinawa Open Laboratory 14 Calico Network Policy  Host Protection  Workload Endpointへのセキュリティポリシーと同様の機能が Host Endpointに対しても使用できる機能  オーケストレーターの管理外のサーバでもfelixプロセスが動作していれば calicoctlコマンドからのセキュリティポリシー設定が可能 Compute Node 物理サーバーController Node instance cali1 eth0 OpenStack 192.168.122.0/24 eth0eth0 192.168.122.10 192.168.122.6 凡例 OpenStack 物理サーバー OpenStack Instance WorkloadEndpoint HostEndpoint Linux Kernel Router felix etcd felix ICMP ・物理マシンにHostProtection機能でICMPを拒否するprofileを適用 ・物理マシンへのICMPが疎通不可に 物理サーバー 192.168.122.5
  15. 15. Okinawa Open Laboratory 15 Network Policy定義例  Profileの定義例  icmpを拒否する  エンドポイントへの割り当て  icmp_profileをphysical-nodeのeth0へ適用 apiVersion: v1 kind: profile metadata: name: icmp_profile labels: profile: icmp_profile spec: ingress: - action: deny protocol: icmp icmp: type: 8 source: - action: allow source: egress: - action: allow icmp_profile.yaml apiVersion: v1 kind: hostEndpoint metadata: name: physical-node-eth0 node: physical-node labels: environment: production spec: interfaceName: eth0 profiles: - icmp_profile expectedIPs: - 192.168.122.6 host_protection.yaml
  16. 16. Okinawa Open Laboratory 16 ユーザー事例
  17. 17. Okinawa Open Laboratory 17 OpenStack(OpenContrail) on Kubernetes(Calico)  背景  OpenStackのコントロールプレーンをKubernetesで管理したい  MirantisはOpenStack+OpenContrailのノウハウを持っていた KubernetesでもOpenContrailを検討したが、OpenContrailの多重化はコントローラーの HA化などによる複雑化が問題になった  Calicoを使う理由  相互接続性を提供できればよい  コントロールプレーンでのマルチテナントは不要  Calicoはetcdクラスタ化するだけでHA化できる  BGPサポート  No Overlay 引用: https://www.mirantis.com/blog/making-openstack-production-ready-kubernetes-openstack-salt-part-2/
  18. 18. Okinawa Open Laboratory 18 Kubernetes(+Calico)  Kubernetesクラスタを提供するサービスにおいて、 Calico Pluginが選択肢の一つとして使用できる  GKE(Google)、MCP(Mirantis)、Bluemix(IBM)、etc  GitHub  GitHubのSREチームがKubernetesを使ってCI/CDしている  GitHubのベアメタルとAWS VPCで動作するKubernetes clusterを運用  CalicoのIP in IPでベアメタルとAWSのKubernetes Clusterを相互接続 している(Out of the box) https://cloudplatform.googleblog.com/2017/09/network-policy-support-for-kubernetes-with-calico.html https://thenewstack.io/github-goes-kubernetes-tells/
  19. 19. Okinawa Open Laboratory 19 Calico ユースケース 1. Kubernetes Serviceの外部公開手法が確立されていない  Calicoを使用してKubernetes Serviceを外部広告する  Calico(BGP)でサービスへの経路を上位のルーターに広告する 2. コンテナでOpenStackを管理する - Containerized Control Plane  マルチテナントが必要ないシンプルな環境での利用 3. Containerized VNF – NFV  Calicoは主にコンテナネットワークで利用されるため 4. サービスメッシュセキュリティ - Istioポリシー連携  IstioポリシーでカバーできないL3-L4ネットワークポリシーとしての利用
  20. 20. Okinawa Open Laboratory 20 CalicoとBGPについて
  21. 21. Okinawa Open Laboratory 21 CalicoとBGP  なぜCalicoはBGPを使うのか  コンテナベースのクラウドではエンドポイントの数が増える可能性が高い  OSPFやIS-ISは経路数のスケーラビリティが低い  Kubernetes Clusterは 最大 5000 Nodes, 150000 Pods  BGPはノウハウが多い  BGPは古くからインターネットで使用されておりノウハウが蓄積されている BGPに変わる新しい技術は・・・。OpenFlowでは・・・  学習の容易性についてどちらが良いか言い切れない  インターネットで使われるBGPのノウハウをデータセンターにそのまま使えるか  BIRDとZebra2.0について  Zebra 2.0に置き換えることに意味はあるか。マルチコアCPUや新しい機能に対応  BIRDは枯れたソフトウェアで安定して動作するが、 BGP Monitoring Protocol(BMP)やEVPNなどの新しい技術に未対応
  22. 22. Thank you

×