21
การใช้ Pipework ร่วมกับ Docker Container เพื่อรวมความเร็วของการ์ดเครือข่ายด้วยเทคนิค Network bonding วิทยากร : นางสาวสุรีรัตน์ แก้วคีรี นาย กฤษณ์วรา รัตนโอภาส มหาวิทยาลัยราช ภัฏ สงขลา 1

การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

การใช้ Pipework ร่วมกับ Docker Container เพื่อรวมความเร็วของการ์ดเครือข่ายด้วยเทคนิค Network bonding

วิทยากร : นางสาวสุรีรัตน์ แก้วคีรี

นายกฤษณ์วรา รัตนโอภาสมหาวิทยาลัยราชภัฏสงขลา

1

Page 2: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

1. รูปแบบที่หลากหลายของ Docker Network

2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container

3. การติดตั้งใช้งาน Pipework

4. การใช้การ์ดเครือข่าย Bonding Bridge กับ container

2

Outline

Page 3: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

1. รูปแบบที่หลากหลายของ Docker Network

สถาปัตยกรรมของ Docker ที่มีความแตกต่าง

3

รูปแบบ Hypervisor architecture และ Docker architecture

Page 4: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

1. รูปแบบที่หลากหลายของ Docker Network (ต่อ)

4

• User-defined networks:– Bridge networks– Macvlan– Pipework

• Default networks:– None– Host– Default Bridge

Page 5: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 6: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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 (ต่อ)

Page 7: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 8: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 9: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

Outline

1. รูปแบบที่หลากหลายของ Docker Network

2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container

3. การติดตั้งใช้งาน Pipework

4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container

9

Page 10: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container

• Container สามารถเชื่อมต่อเครือข่ายเคียวกับ Docker server ด้วย Macvlan หรือ Pipework

• การท า Bonding Network และ การ์ด Bridge br0

10

Page 11: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

Outline

1. รูปแบบที่หลากหลายของ Docker Network

2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container

3. การติดตั้งใช้งาน Pipework

4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container

11

Page 12: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

3. การติดตั้งใช้งาน Pipework

• อ้างอิงจาก https://github.com/jpetazzo/pipework

• เป็น Software-Defined Networking ส าหรับ Linux Containers

12

Page 13: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 14: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

3. การติดตั้งใช้งาน Pipework (ต่อ)

การก าหนดการ์ดเครือข่ายให้ containerPipework br0 –i eth0ชื่อ-container ip-address

การก าหนด ip• Fix-ip “x.x.x.x/[email protected]”• DHCP “dhclient”

14

Page 15: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

Outline

1. รูปแบบที่หลากหลายของ Docker Network

2. การออกแบบเครือข่ายความเร็วสูงให้กับ Docker container

3. การติดตั้งใช้งาน Pipework

4. การใช้การ์ดเครือข่าย Bonding Bridge กับ Container

15

Page 16: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 17: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 18: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 19: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 20: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

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

Page 21: การใช้ Pipework ร่วมกับ Docker Container · 2018-01-18 · 1. รูปแบบที่หลากหลายของ Docker Network 2. การออกแบบเครือข่ายความเร็วสูงให้กับ

ค าถาม/ข้อเสนอแนะ

21