Weitere ähnliche Inhalte Ähnlich wie [Japan Tech summit 2017] DEP 005 (20) Mehr von Microsoft Tech Summit 2017 (9) [Japan Tech summit 2017] DEP 0051. Microsoft Tech Summit 2017本情報の内容(添付文書、リンク先などを含む)は、Microsoft Tech Summit 2017 開催日(2017 年 11 月 8日 - 9 日)時点のものであり、予告なく変更される場合があります。
2. {
“名前” : “真壁 徹(まかべ とおる)”,
“所属” : “日本マイクロソフト株式会社”,
“役割” : “クラウド ソリューションアーキテクト”,
“経歴” : “大和総研 HP Enterprise”,
“特技” : “クラウド & オープンソース”
}
12. runC (OCI)
containerd (CNCF) CRI-O
CRI-containerd
Docker
Engine
Kubernetes & Tools
Docker Image Format
Orchestrators/Tools
(Docker Based)
13. Docker
Platform
Specific
Platform
Independent
Linux Control Groups
cgroups
Namespaces
Pid, net, ipc, mnt, uts
Layer Capabilities
Union Filesystems: AUFS,
btrfs, vfs, zfs*,DeviceMapper
Other OS
Functionality
Containerd + runC
Docker Engine
REST Interface
libcontainerd graphlibnetwork plugins
Windows Control Groups
Job objects
Namespaces
Object Namespace, Process
Table, Networking
Layer Capabilities
Registry, Union like
filesystem extensions
Other OS
Functionality
Compute Services
Docker Client Docker SwarmDocker Compose Docker Registry
27. Container Group Namespace
Container A Container B
(Exposed) Port: 80 Port: 6000
• 同じコンテナーグループ
のコンテナーは、同じ仮
想マシンに配置
• コンテナーグループは代
表で1つの公開パブリック
IPとポートを持てる
• コンテナーグループ内で
はlocalhostとしてコンテ
ナー間通信が可能
• “サイドカー”
• コンテナーはAzure File
Storageをマウントできる
29. Container Group Namespace
sidecar
• 2つのコンテナー
• getenv: 各種環境情報
を取得し表示する
HTTPサーバー
• sidecar: getenvコンテ
ナーの監視
• せっかくなので軽量に
• コンテナーサイズは約
10MBytes
• Golang + Alpine Linux
• マルチステージビルド
getenv
(Exposed) Port: 8080
169.254.169.254
57. モデル 特徴 懸念
NAT NATの裏にコンテナーネットワークを
閉じ込める
K8sのコンテナー間通信では使えない
Transparent コンテナーをVMネットワークに露出さ
せる
接続スイッチの学習MACアドレスが多く
なる
Overlay ノード間でトンネルを掘り仮想的なプ
ライベートネットワークを作る
Overlayの仕組みを構築維持する必要があ
る (FlannelやWeaveなど)
L2 Bridge Transparentの進化系(MAC変換で露出す
るMACアドレスを少なく)
DHCPが使えない
L2 Tunnel 変換、転送、トンネリングをホストの
SDN機能(AzureではVFP)に任せる
ホストのSDN機能に依存
58. -A KUBE-SERVICES -d
10.0.134.197/32 -p tcp -m comment
--comment "default/azure-vote-
front: cluster IP" -m tcp --dport 80 -j
KUBE-SVC-GHSLGKVXVBRM4GZX
(中略)
-A KUBE-SEP-CYIUI5GK6PK6K23I -p
tcp -m comment --comment
"default/azure-vote-front:" -m tcp -j
DNAT --to-destination 10.244.2.5:80
Node
iptables
(Netfilter)
Client
kube-proxy
Container
(Pod)
Node
iptables
(Netfilter)
kube-proxy
Container
(Pod)
Master
10.0.134.197
10.244.2.5
60. Windows Container Host VM
vEthernet
(HNS Internal NIC)
172.20.224.1/20
vEthernet
(HNS Transparent)
10.240.0.4/8
10.244.1.1/25
vEthernet
(forwarder)
61. 機能 Windows v1709以前 Windows v1709 Linux
ひとつのPodに
複数のコンテナー
×
(Podあたり1コンテナー)
〇 〇
Podの
エンドポイント統合
×
(2つのエンドポイント:
Transparent + NAT)
〇 〇
カーネルモードでの
負荷分散
× 〇 〇
CNIのサポート × 〇 〇
https://www.cncf.io/blog/2017/09/08/windows-
networking-parity-linux-kubernetes/
62. VM
VFP
Southbound API
GFT Offload API (NDIS)
VMSwitch
GFT
Table
First Packet
GFT Offload Engine
40/
50G
QoSCrypto RDMA
GFT
Transposition
Engine
REWRITE
SLB Decap SLB NAT VNET ACL Metering
ControllerControllerController
Encap
SmartNIC
(w/FPGA)
DNATDecap Allow Meter
Rule Action
* Meter
Rule Action
* Allow
Rule Action
* Rewrite
Rule Action
* DNAT
Rule Action
* Decap
Flow Action
1.2.3.1->1.3.4.1,
62362->80
Decap, DNAT,
Rewrite, Meter
Flow Action
1.2.3.1->1.3.4.1,
62362->80
Decap, DNAT,
Rewrite, Meter
63. Orchestrator
(K8s, DC/OS, Service Fabric)
3rd party
plugins
IPAM
Plugin
Operating System (Windows, Linux)
CNI
Container
Runtime Network
Plugin
Container1 Container2 Container3