Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CF Container-to-Container Network
Search
Kazuto Kusama
July 20, 2017
Technology
0
130
CF Container-to-Container Network
Cloud Foundry Tokyo Meetup #3で発表した資料です
Kazuto Kusama
July 20, 2017
Tweet
Share
More Decks by Kazuto Kusama
See All by Kazuto Kusama
「共通基盤」を超えよ! 今、Platform Engineeringに取り組むべき理由
jacopen
25
6.2k
いろんな外資、いろんなロールで働いてみた話
jacopen
14
4.6k
サービスの危機に立ち向かうリーダーシップ~インシデントコマンダーの役割と戦略~
jacopen
20
6k
5分でわかる(かもしれない)Platform Engineering
jacopen
4
730
ChatOpsで回す、クラウドネイティブな組織運営
jacopen
1
190
2024年のPlatform Engineeringはこうなる(なってほしい)
jacopen
7
3.7k
技術の洪水に立ち向かう: 開発者の心を軽くするプラットフォームエンジニアリングの話
jacopen
12
6.3k
プラットフォーム名決めるのも、ロゴ作るのも、プラットフォームチームの仕事です
jacopen
3
190
CNCFが考えるPlatform - Platforms White Paperについて
jacopen
2
1k
Other Decks in Technology
See All in Technology
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
240
「手動オペレーションに定評がある」と言われた私が心がけていること / phpcon_odawara2024
blue_goheimochi
2
370
Hands-on Gemini, the Google DeepMind LLM
meteatamel
1
110
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
200
テストプロセスで大事にしていること #jasstnano
makky_tyuyan
0
160
最近たまに見かけるTiDBってなんだ? - Findy
pingcap0315
2
750
Janus
bkuhlmann
1
490
LLM とプロンプトエンジニアリング/チューターをビルドする / LLM and Prompt Engineering and Building Tutors
ks91
PRO
0
250
データベース02: データベースの概念
trycycle
0
130
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
0
320
反実仮想機械学習とは何か
usaito
PRO
8
3k
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
250
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
92
4.8k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
6
990
Dealing with People You Can't Stand - Big Design 2015
cassininazir
356
22k
Navigating Team Friction
lara
177
13k
A Tale of Four Properties
chriscoyier
150
22k
GitHub's CSS Performance
jonrohan
1024
450k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Docker and Python
trallard
33
2.7k
What's in a price? How to price your products and services
michaelherold
237
11k
Transcript
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から GAとして提供
利用方法 • 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
さっそく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 Foundryの他、KubernetesやMesos、rkt ・・・要はDocker以外 で使われている
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を使うように 作り直したらしい
None
None
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 などなど設定
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...
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://www.pivotaltracker.com/n/projects/1498342
まとめ • CFのC2C Networking機能はMicroservicesやるのに便利 • CNIに準拠したSilkを利用。必要に応じて置き換え可能 • 足りない機能はあれど、今後いろいろ実装される予定