การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1....

Preview:

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/24@x.x.x.x”• 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

Recommended