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.
Cloud Foundry
Container-to-Container
Networking
Pivotal Japan - Platform Architect
Kazuto Kusama
@jacopen
Microserviceしてますか?
Four	Blair	Services	Pvt.	Ltd.	https://commons.wikimedia.org/wiki/File:Services4.png
機能ごとにソフトウェアを細分化
開発チームも機能単位
いままでのCFだと・・・
appA appB appC appD appA appD
`
Router
DB MQ
Cell Cell Cell
HTTPのエンドポイントが
Router経由になってしまう
コンテナ間で直接通信したい!
appA appB appC appD appA appD
Router
DB MQ
Cell Cell Cell
そこで
Container-to-Container
Networking
Container-to-Container Networking
• Cloud Foundryでコンテナ間通信を可能にする新機能
• 最近GAになりました!
• 最新版は1.1.0
• Pivotal Cloud Foundryだと1.11...
利用方法
• BOSHでcf-networking-releaseをセットアップ
https://github.com/cloudfoundry-incubator/cf-networking-release
• UAAでnetwork.adm...
さっそくDEMO
ざっくりとした仕組みの説明
Architecture
https://github.com/cloudfoundry-incubator/cf-networking-release/blob/develop/docs/diagram.png
青: 元からある仕組み
緑: ...
https://github.com/cloudfoundry-incubator/cf-networking-release/blob/develop/docs/diagram.png
CNI
• Container Network Interface
• CNCF(Cloud Native Computing Foundation)によって
策定されている、コンテナネットワーキングのための
仕様
• Cloud Foundr...
Container Runtime
Container Network Interface
Loopback
Plugin
Bridge
Plugin
PTP
Plugin
MAC VLAN
Plugin
3rd-party
Plugin
Silk
• CNI準拠のContainer Networking fabric
• VXLANを使ってホスト間の通信を行う
• Flannelにインスパイアされて作られている
• 初期はFlannelを利用。etcdが嫌でRDBを使うように
...
Garden-runc
Garden External Networker
CF Wrapper CNI Plugin
Silk CLI Plugin
Linux
コンテナランタイム
Garden External Networker API
...
Garden-runc
Garden External Networker
CF Wrapper CNI Plugin
Silk CLI Plugin
Linux
コンテナランタイム
Garden External Networker API
...
cf allow-access	myapp backend-app	--port	7000	--protocol	tcp
Policyの設定
AgentがPolling
iptablesに反映
ここが足りないC2C Networking
• Service Discovery欲しい・・・
• 今のところはEurekaやamalgam8を使って実現
Next Steps
• App Identity for external services
• Bandwidth limiting
• logging enhancement
• support port ranges
• https:/...
まとめ
• CFのC2C Networking機能はMicroservicesやるのに便利
• CNIに準拠したSilkを利用。必要に応じて置き換え可能
• 足りない機能はあれど、今後いろいろ実装される予定
Cloud Foundry Container-to-Container Networking
Cloud Foundry Container-to-Container Networking
Upcoming SlideShare
Loading in …5
×

Cloud Foundry Container-to-Container Networking

1,096 views

Published on

CF Tokyo Meetup #3で発表した資料です。CFのC2C機能でコンテナ間通信できるようになりました

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Cloud Foundry Container-to-Container Networking

  1. 1. Cloud Foundry Container-to-Container Networking
  2. 2. Pivotal Japan - Platform Architect Kazuto Kusama @jacopen
  3. 3. Microserviceしてますか? Four Blair Services Pvt. Ltd. https://commons.wikimedia.org/wiki/File:Services4.png
  4. 4. 機能ごとにソフトウェアを細分化 開発チームも機能単位
  5. 5. いままでのCFだと・・・ appA appB appC appD appA appD ` Router DB MQ Cell Cell Cell HTTPのエンドポイントが Router経由になってしまう
  6. 6. コンテナ間で直接通信したい! appA appB appC appD appA appD Router DB MQ Cell Cell Cell
  7. 7. そこで
  8. 8. Container-to-Container Networking
  9. 9. Container-to-Container Networking • Cloud Foundryでコンテナ間通信を可能にする新機能 • 最近GAになりました! • 最新版は1.1.0 • Pivotal Cloud Foundryだと1.11から GAとして提供
  10. 10. 利用方法 • BOSHでcf-networking-releaseをセットアップ https://github.com/cloudfoundry-incubator/cf-networking-release • UAAでnetwork.adminのscopeを有効化 • ドキュメントはこちら https://docs.cloudfoundry.org/devguide/deploy-apps/cf- networking.html
  11. 11. さっそくDEMO
  12. 12. ざっくりとした仕組みの説明
  13. 13. Architecture https://github.com/cloudfoundry-incubator/cf-networking-release/blob/develop/docs/diagram.png 青: 元からある仕組み 緑: 新しく追加された仕組み 赤: 差し替え可能
  14. 14. https://github.com/cloudfoundry-incubator/cf-networking-release/blob/develop/docs/diagram.png
  15. 15. CNI • Container Network Interface • CNCF(Cloud Native Computing Foundation)によって 策定されている、コンテナネットワーキングのための 仕様 • Cloud Foundryの他、KubernetesやMesos、rkt ・・・要はDocker以外 😛 で使われている
  16. 16. Container Runtime Container Network Interface Loopback Plugin Bridge Plugin PTP Plugin MAC VLAN Plugin 3rd-party Plugin
  17. 17. Silk • CNI準拠のContainer Networking fabric • VXLANを使ってホスト間の通信を行う • Flannelにインスパイアされて作られている • 初期はFlannelを利用。etcdが嫌でRDBを使うように 作り直したらしい
  18. 18. Garden-runc Garden External Networker CF Wrapper CNI Plugin Silk CLI Plugin Linux コンテナランタイム Garden External Networker API CNI API Legacy Networking NetIn(NAT from Host) NetOut(Application Security Group) Silk daemon Silk Controller diego cell IPAM iptables netlink などなど設定
  19. 19. Garden-runc Garden External Networker CF Wrapper CNI Plugin Silk CLI Plugin Linux コンテナランタイム Garden External Networker API CNI API Legacy Networking NetIn(NAT from Host) NetOut(Application Security Group) Silk daemon Silk Controller diego cell IPAM iptables netlink などなど設定 Silk controllerが Cellにsubnetを 払い出す Wrapper Pluginが Port forwardingや ASGを設定 veth pairの作成 etc...
  20. 20. cf allow-access myapp backend-app --port 7000 --protocol tcp Policyの設定 AgentがPolling iptablesに反映
  21. 21. ここが足りないC2C Networking • Service Discovery欲しい・・・ • 今のところはEurekaやamalgam8を使って実現
  22. 22. Next Steps • App Identity for external services • Bandwidth limiting • logging enhancement • support port ranges • https://www.pivotaltracker.com/n/projects/1498342
  23. 23. まとめ • CFのC2C Networking機能はMicroservicesやるのに便利 • CNIに準拠したSilkを利用。必要に応じて置き換え可能 • 足りない機能はあれど、今後いろいろ実装される予定

×