Professional Documents
Culture Documents
01
https://doi.org/10.7840/kics.2019.44.1.158
요 약
클라우드 환경에서 기존의 가상머신보다 경량화 되어 마이크로 서비스 및 포그 컴퓨팅 환경에 적합한 컨테이너
기술에 대한 관심이 증대되고 있다. 클라우드 환경에서 컨테이너 서비스 제공을 위한 연구와 함께 컨테이너간 서비
스 연결을 위해 CNM(Container Network Model) 및 CNI(Container Network Interface) 구조가 제안되었으며, 이를
기반으로 한 다양한 네트워크 기술들이 개발되고 있다. 최근에는 클라우드와 컨테이너 환경 간 네트워크 연동을 위
해 CNI 기반 네트워킹 제공구조가 제안되었으나, 제공환경에 따라 성능 차이가 발생한다. 최적화된 네트워킹 기술
적용을 위해서는 서비스 제공환경에 따른 적합한 네트워킹 구조 설계 및 구현을 통한 성능 검증이 필요하다. 본 논
문에서는 클라우드 환경 내 CNI 기반 네트워크 적용을 위한 구조를 설계하고 각 네트워크 서비스 타입별 드라이
버 및 가속화 환경에 따른 성능 측정을 하였다. 검증을 위해 오픈스택 및 Kubernetes를 활용하여 환경을 구성하였
다. 성능저하 구간 확인 및 원인 분석 결과는 클라우드 환경의 컨테이너 시스템 구축에 반영할 수 있다.
ABSTRACT
The interest in container technology that it is more suitable for micro service and fog computing since it is
lighter than existing virtual machines has been increased in cloud environment. Container Network Model (CNM)
and Container Network Interface (CNI) architecture have been proposed for providing container services in the
cloud environment, and various network technologies based on them have been developed. Recently, CNI-based
networking architecture has been proposed for network interworking between cloud and container environment,
but there is a difference in performance depending on the providing environment. To provide the optimized
networking technology, it is necessary to verify the performance by designing and implementing a suitable
networking architecture according to the service environment. In this paper, we designed network architecture for
applying CNI based network, and measured performance according to driver and acceleration technology. We
constructed testbed using OpenStack and Kubernetes. The performance degradation section and the cause analysis
result can be reflected in the construction of the container system in the cloud environment.
158
논문 / 컨테이너 네트워킹 기술의 성능비교
159
The Journal of Korean Institute of Communications and Information Sciences '19-01 Vol.44 No.01
타임과 분리시켜 호스트에서 지원하는 다양한 네트워 한다. 추가는 컨테이너를 생성 할 때 컨테이너 런타임
크 드라이버 및 서드파티 드라이버와 연동 가능하게 에 의해 호출되고, 삭제는 컨테이너 인스턴스가 제거
한 네트워크 모델이다. Fig. 2는 CNM 네트워크 구조 될 때 컨테이너 런타임에 의해 호출된다. 그리고 컨테
이다. (a)의 libnetwork는 CNM의 표준으로 구현된 인 이너 생성시 직접적으로 인터페이스 및 IP를 할당하
터페이스로, 도커 런타임과 네트워크 드라이버간의 연 는 CNM과 달리 CNI는 POD(하나 이상의 컨테이너
결을 위한 인터페이스를 제공한다. 각 네트워크 드라 를 포함하고 있는 그룹) 단위 컨테이너에 인터페이스
이버는 컨테이너의 IP 주소를 관리하기 위한 를 할당하고, 이를 통해 POD 내 컨테이너와 통신이
IPAM(IP Address Management) 플러그인과 네트워 가능하도록 네트워크를 관리한다. Fig. 3은 CNI 네트
크 생성 및 삭제를 위한 네트워크 플러그인을 포함하 워크 구조 이다. 컨테이너 런타임은 먼저 컨테이너에
고 있다. 도커 런타임은 libnetwork를 통해 하나 이상 네트워크 네임스페이스를 할당하고 플러그인 드라이
의 네트워크 드라이버를 호출하고 컨테이너를 위한 버에 의해 네트워크 인터페이스를 컨테이너의 네임스
네트워크를 할당 한다. 다중 네트워크 드라이버 호출 페이스에 연결하여 IP를 할당한다. 이때 다중 플러그
에 의해 IP가 할당 될 때, 네트워크 드라이버가 컨테 인 드라이버사용시 CNM과 같이 IP 충돌에 대한 문제
이너의 네트워크 네임스페이스에 접근권한이 없기 때 가 발생 할 수 있다. 이를 위해 CNI에서는 플러그인
문에 IP주소의 충돌이 발생 할 수 있다. 이를 위해 드라이버에서 컨테이너 네트워크의 네임스페이스에
libnetwork에서 IP 충돌방지를 위한 기능을 포함하고 대한 접근허용을 통해 충돌을 회피할 수 있다. (b)의
있다. Pod network에서는 기본적으로 하나의 인터페이스를
(b)와 같이 CNM에 의한 네트워크가 생성된 경우 이용해서 네트워크 데이터를 처리하지만, Intel에서 개
호스트 OS의 Kernel space에서 생성된 네트워크 브릿 발한 Multus Plugin을 사용 할 경우 다중 인터페이스
[16]
지와 User space에서 생성된 컨테이너 인터페이스간 를 사용해서 데이터를 처리 할 수 있다 .
연결을 위해 veth pair 인터페이스를 이용해서 연결한 Fig. 4는 오픈스택 네트워크와 컨테이너 네트워크
[10,14]
다 . Kernel space에서 관리되는 Host namespace 를 연동하기 위한 Kuryr 컨테이너 네트워크 구조이다.
와 User space의 Container namespace(또는 Sandbox Kuryr는 오픈스택 네트워킹 모듈인 Neutron을 통해
라고 지칭)를 연결하기 위한 네트워크 인터페이스를 오픈스택에서 관리하는 네트워크를 컨테이너의 네트
[15]
End-Point 라고 한다 . 워크 인터페이스에 할당 하고 관리하기 위한 프로젝
[17]
CNI은 CoreOS 프로젝트에서 제안한 네트워크 구 트이다 . Fig. 4와 같이 Kuryr는 컨테이너의 네트워
조로 rtk(Container Engine with CoreOS-'roket')를 크 인터페이스 생성을 위해 오픈스택 Neutron에 정의
적용한 K8s 등에서 채택되어 사용되고 있다. 기존 된 컨테이너용 네트워크 대역에서 가상 인터페이스에
CNM에서는 컨테이너 런타임 엔진이 도커 런터임에 대한 생성을 요청 한다. 이를 기반으로 veth pair 인터
종속적이며, libnetwork의 기능 변경 및 추가에 어려 페이스를 생성하고 Neutron에서 관리되는 호스트측
움이 있다. 이에 반하여 CNI는 다양한 컨테이너 런타 네트워크 브릿지와 컨테이너의 네트워크 네임스페이
임이 지원되며, 인터페이스 복잡성을 줄이기 위해 컨 스(또는 POD)에 할당함으로써, 데이터 연결을 가능하
테이너 네트워크를 위한 추가 및 삭제 명령만을 지원 게 하는 기술이다.
160
논문 / 컨테이너 네트워킹 기술의 성능비교
Ⅲ. 성능측정을 위한 시스템 구조 설계
161
The Journal of Korean Institute of Communications and Information Sciences '19-01 Vol.44 No.01
flannel bridge를 통해 User Space에 생성된 flannel 성하고 컨테이너 시스템을 구성한 후 물리서버에 설
데몬에 전달된다. flannel 데몬은 VxLAN 패킷으로 치된 컨테이너 시스템과 연동하기 위한 네트워크 구
캡슐화 하고 flannel에 정의된 인터페이스를 통해 외 성이다. VM내 컨테이너 네트워크는 베어메탈 구조에
[21]
부로 전송 한다. MACVLAN 및 IPVLAN 경우 호 서의 Kuryr-CNI 및 flannel 네트워크와 동일한 구조
스트의 네트워크에서 가상화 네트워크에 할당되지 않 로 생성 하였다. 베어메탈 기반의 POD와 VM기반의
은 인터페이스를 사용한다. MACVLAN의 경우 호스 POD간 네트워크 연결 및 성능측정을 위해 컴퓨터 노
트의 인터페이스를 부모 인터페이스로 정의 하고, 가 드에서 VM생성시 VM에 할당하는 네트워크는
상의 MAC 주소를 이용하여 자식 인터페이스를 생성 Overlay 네트워크 및 FLAT, VLAN, 그리고 네트워
하여 POD에 할당 한다. 데이터 전송은 POD에 할당 크 가속화를 적용하여 실험 하였다. 물리서버의 네트
된 자식 인터페이스에서 호스트의 부모 인터페이스로 워크 구성과 VM내 네트워크 구성을 모두 VLAN으로
직접적으로 전송되며, 부모인터페이스에 의해 외부로 구성한 경우, 물리서버에서 생성한 VLAN 패킷을
데이터를 보내는 구조이다. IPVLAN도 MACVLAN VM내로 전달하기 위해서는 K8s Minion1의 tap[n](or
과 동일하지만 자식 인터페이스를 생성 할 때 부모의 veth) 포트를 가상의 Trunk Port로 생성 한 후 VM에
MAC주소를 그대로 이용 하는 부분이 다르다. 그리고 할당 하거나, 또는 물리서버의 OVS에 적용된 VLAN
네트워크 가속화 기술인 SR-IOV, OVS-DPDK, VPP Tag-ID값을 VM내의 OVS에 할당된 인터페이스 정보
를 적용한 환경을 각각 구성하여 실험을 진행 하였다. 에 VLAN Tag-ID를 추가해야 한다. 베어메탈 및 VM
Fig. 7은 오픈스택의 각 컴퓨터 노드에서 VM을 생 POD간의 데이터 전송은 베어메탈 POD에서 OVS의
통합브릿지에 정의된 veth로 전달되고, veth 태그와
동일한 인터페이스로 데이터를 전송 한다. VM에서
해당 데이터를 수신하면, VM내에 있는 통합 브릿지
로 전달되고, 베어메탈 POD에서 생성된 태그와 동일
한 태그를 가진 POD의 veth로 데이터가 전달되어
POD에서 데이터를 수신한다. VLAN의 경우 이종간
의 시스템 환경을 위해 VLAN 구간에서 Trunk Port
또는 Tag-ID를 맵핑해야 데이터가 전송되지만,
VxLAN과 같은 Overlay 네트워크를 사용할 경우
Overlay를 위한 IP 설정만으로 이종간 환경에서 데이
터를 송수신 할 수 있다.
그림 7. VM기반의 컨테이너 네트워크 연동 구조
Fig. 7. VM-based Container network interworking
162
논문 / 컨테이너 네트워킹 기술의 성능비교
Ⅳ. 성능 평가
표 1. 테스트베드 시스템을 위한 규격
Table 1. Specification of Test-bed system
163
The Journal of Korean Institute of Communications and Information Sciences '19-01 Vol.44 No.01
164
논문 / 컨테이너 네트워킹 기술의 성능비교
165
The Journal of Korean Institute of Communications and Information Sciences '19-01 Vol.44 No.01
166
논문 / 컨테이너 네트워킹 기술의 성능비교
host node BM Pod and BM Pod BM Pod and VM Pod VM Pod and VM Pod
netwok type same different same different same different
Performance
H/W
flannel degradation due to Performance
resource Very low performance due to
flannel daemon degradation due to
Overlay and kernel vxlan packet processing in the
os-vxlan Performance enc/dec processing even
dependency VM
degradation due to if VMs are same host
os-gre high
vxlan processing
Depends on VM Host
os-vlan Low performance than macvaln with veth peer network
processing performance
High Performance of L2
Depends on VM Host
between parent and child
VLAN MACVLAN Not supported in processing performance, but
interface. However, issues when
heterogeneous host has high throughput
increasing child interface
network architecture
Performance degradation due to Performance degradation due
IPVLAN
ip routing in POD to ip routing in POD in VM
Performance degradation due to
SR-IOV interface in
SR-IOV non RDMA support between VF
Acceler VM is not supported High performance when using
and PF
ation vlan and macvlan
DPDK
Need vhost-user for POD network and dpdk app
VPP
SR-IOV Up to 20% better performance
H/W Offload than legacy SR-IOV
Not supported
Offload VXLAN
Similar to legacy SR-IOV
Offload
하거나 또는 H/W Off 기능을 적용하고, VM내 컨테 Overlay 네트워크와 VLAN, MACVLAN, 그리고
이너 네트워크를 VLAN으로 구성하면, 데이터 평면 SR-IOV를 적용하였고, VM기반의 POD는 Overlay
네트워크 처리에 대한 높은 성능을 얻을 수 있다. 네트워크와 VLAN 만 적용하였다. 이는 베어메탈 기
반의 POD에서 SR-IOV 및 MACVLAN을 사용할 경
4.4 컨테이너 확장성에 따른 네트워크 성능 비교 우 VM내에서 생성된 POD와 연결이 안 되기 때문에
Fig. 16는 POD의 증가 및 확장에 따른 성능측정을 실험에서 제외 하였다. Fig. 16의 성능측정 결과를 보
위한 구조 이다. 측정방법은 베어메탈 또는 VM에서 면 Overlay 네트워크 보다 VLAN을 사용한 경우 약
의 POD 및 데이터 처리를 위한 프로세스 확장에 따 10%의 성능차이를 보였다.
른 분산 병렬구조 처리시 네트워크 지연시간을 측정 Table. 3은 프로세스 수를 4배로 증가 시켜 성능평
하였다. 가를 진행한 결과이다. BMP2BPM 경우 same-host에
실험방법은 MPI(Message Passing Interface)의 집 서는 거의 동일한 성능차를 보였으며, differ-host경우
합통신(Collective communication) 중 모든 POD의 약 10%의 성능차를 보였다. 그리고 same-host에서 프
테스트 프로세스에서 동일한 크기의 메시지를 전달하 로세스의 증가에 따라 호스트 리소스 사용량이 증가
는 방법인 MPI_ALLTOALL을 적용하여 성능을 측 하기 때문에 differ-host 보다 지연속도가 더 높게 측
[25,26]
정하였다 . MPI소프트웨어는 MVAPICH2.3을 사 정되었다. BMP2VPM의 경우에서는 same-host 및
용하였으며, 컨테이너의 네트워크 통신을 위해 데이터 differ-host 실험에서 거의 동일한 성능이 측정되었으
통신을 위한 네트워크 디바이스 채널은 unix sock을 며, VMP2VMP의 differ-host 경우 약 20%의 성능차
적용 하였다. 를 보였다. 이는 VM에서 다른 서버에 배치된 VM에
각 Minion 서버에서 하나의 컨테이너를 포함하고 연결되는 네트워크 리소스와 VM 자체의 리소스 소모
있는 POD를 8개 생성하고, 실험을 위해 각 POD 당 량이며, 프로세스 증가시 결과 값은 지속적으로 증가
2개의 프로세스를 할당 후 16KB 메시지 사용하여 지 될 수 있다.
연속도를 측정하였다. 베어메탈의 POD에서는
167
The Journal of Korean Institute of Communications and Information Sciences '19-01 Vol.44 No.01
Ⅴ. 결 론
168
논문 / 컨테이너 네트워킹 기술의 성능비교
169
The Journal of Korean Institute of Communications and Information Sciences '19-01 Vol.44 No.01
김 영 한 (Young-han Kim)
1986년 2월 : 한국과학기술원 전
박 영 기 (Young-ki Park) 기 및 전자 공학과 석사
2013년 8월 : 숭실대학교 정보 1990년 2월 : 한국과학기술원 전
통신공학 석사 기 및 전자 공학과 박사
2014년 3월~현재 : 숭실대학교 1994년~현재 : 숭실대학교 정보
정보통신공학 박사과정 통신전자공학부 교수
<관심분야> Cloud, OPNFV, <관심분야> OPNFV, SDN/NFV,
Container, Kubernetes, Data IoT, CI/CD, Blockchain
Plane Acceleration
170