Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
การใช้ Pipework ร่วมกับ Docker Container เพื่อรวมความเร็วของการ์ดเครือข่ายด้วยเทคนิค Network bonding
วิทยากร : นางสาวสุรีรัตน์ แก้วคีรี
นายกฤษณ์วรา รัตนโอภาสมหาวิทยาลัยราชภัฏสงขลา
1
1. รูปแบบที่หลากหลายของ Docker Network
2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container
3. การติดตั้งใช้งาน Pipework
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ container
2
Outline
1. รูปแบบที่หลากหลายของ Docker Network
สถาปัตยกรรมของ Docker ที่มีความแตกต่าง
3
รูปแบบ Hypervisor architecture และ Docker architecture
1. รูปแบบที่หลากหลายของ Docker Network (ต่อ)
4
• User-defined networks:– Bridge networks– Macvlan– Pipework
• Default networks:– None– Host– Default Bridge
1. รูปแบบที่หลากหลายของ Docker Network (ต่อ)
Host การให้บริการเครือข่ายภายนอกโดยการ NAT พอร์ตจาก container ไปยังพอร์ตของการ์ดจริง
5
Docker Server
eth
0Container-1
192.168.30.1/24
eth
0 192.168.30.1/244500:80
Container-2
4501:81
Bridge สร้างเครือข่ายบนการ์ด Docker0 ระหว่าง container-1 และ container-2
6
Docker Server
eth
0Container-1
192.168.30.1/24
eth
0
172.17.10.5/24
Docker0-172.17.10.1/24
Container-2
172.17.10.6/24
1. รูปแบบที่หลากหลายของ Docker Network (ต่อ)
1. รูปแบบที่หลากหลายของ Docker Network (ต่อ)
Macvlan เชื่อมการ์ด container ให้อยู่เครือข่ายเดียวกันกับ eth0
7
Docker Server
eth
0Container-1
192.168.30.1/24
eth
0
192.168.30.10/24
Macvlan 192.168.30.0/24
1. รูปแบบที่หลากหลายของ Docker Network (ต่อ)
Pipework เป็นสคริปต์เพื่อช่วยเชื่อมต่อเครือข่ายกับ container ผ่าน br0
8
Docker Server
eth
0
Container-1
192.168.30.1/24
eth
0
192.168.30.10/24b
r0
Outline
1. รูปแบบที่หลากหลายของ Docker Network
2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container
3. การติดตั้งใช้งาน Pipework
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
9
2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container
• Container สามารถเชื่อมต่อเครือข่ายเคียวกับ Docker server ด้วย Macvlan หรือ Pipework
• การท า Bonding Network และ การ์ด Bridge br0
10
Outline
1. รูปแบบที่หลากหลายของ Docker Network
2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container
3. การติดตั้งใช้งาน Pipework
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
11
3. การติดตั้งใช้งาน Pipework
• อ้างอิงจาก https://github.com/jpetazzo/pipework
• เป็น Software-Defined Networking ส าหรับ Linux Containers
12
3. การติดตั้งใช้งาน Pipework (ต่อ)• ติดตั้ง Git ด้วยค าสั่ง
yum -y install git
• ดาวน์โหลด pipework ด้วยค าสั่ง
git clone https://github.com/jpetazzo/pipework.git /usr/pipework
• ติดตั้งค าสั่ง pipework
ln -s /usr/pipework/pipework /usr/bin/pipework
13
3. การติดตั้งใช้งาน Pipework (ต่อ)
การก าหนดการ์ดเครือข่ายให้ containerPipework br0 –i eth0ชื่อ-container ip-address
การก าหนด ip• Fix-ip “x.x.x.x/[email protected]”• DHCP “dhclient”
14
Outline
1. รูปแบบที่หลากหลายของ Docker Network
2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container
3. การติดตั้งใช้งาน Pipework
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
15
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
การใช้ Pipework เชื่อม Bonding Bridge (Br0) ของ Container
16
Docker Server
eth
0
Container-1
192.168.30.1/24
eth
0192.168.30.10/24
br0
eth
1
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
17
Pipework เชื่อม Link aggregation โดยใช้ bridge interface
Macvlan แบบ single interface
Macvlan test-bed
Docker
Container
Server
1 Gbps
NIC
1 Gbps
NICBr0
Bridge
Physical Host
eth0NIC
bond0
Bonding
Team0
Teaming
Option
Client 01
1 Gbps
NIC
SW
ITC
H L
AY
ER
2
Client 02
1 Gbps
NIC
Docker
Container
Server
1 Gbps
NIC
Physical Host
eth0NIC mac01
MACVLAN
Client 01
1 Gbps
NIC
SW
ITC
H L
AY
ER
2
Client 02
1 Gbps
NIC
Pipework test-bed
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
0 500 1,000 1,500 2,000
2-NIC Bonding
2-NIC Teaming
1-NIC
Throughput (Mbps)
ประสิทธิภาพของ link aggregation บน container ด้วยPipework ได้แบนด์วิดท์ 1,805 Mbps ซึ่งสูงกว่าแบบ single interface ที่ 901 Mbps.
ค่า Network throughput
Network bonding and Network teaming throughput closely 1,800 Mbps.
18
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
การท า Network bondingifcfg-bond0DEVICE=bond0IPADDR=192.168.1.20NETWORK=192.168.1.0NETMASK=255.255.255.0BOOTPROTO=noneONBOOT=yesBONDING_OPTS="mode=0miimon=100"
ifcfg-eth0DEVICE=eth0ONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=none
19
4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container
Network bonding -> Bridgeifcfg-bond0DEVICE=bond0IPADDR=192.168.1.20NETWORK=192.168.1.0NETMASK=255.255.255.0BOOTPROTO=noneONBOOT=yesBONDING_OPTS="mode=0miimon=100"BRIDGE=br0
ifcfg-br0DEVICE=br0ONBOOT=yesBOOTPROTO=noneIPADDR=192.168.1.20NETWORK=192.168.1.0NETMASK=255.255.255.0DELAY=0
20
ค าถาม/ข้อเสนอแนะ
21