| 사용하기 어려운 도커, 네트워크 종류부터 알아두자 | 2017.07.25 |
데브옵스와 가상화 기술 발전하면서 콘테이너 활용 늘어나
가장 유명한 플랫폼 도커, 네트워크 종류부터 구분할 수 있어야 [보안뉴스 문가용 기자] 최근의 디지털 변혁은 네트워크 관리자들에게 있어 정든 집의 벽을 허무는 것과 같았을 것이다. 그들을 포근히 감싸고 있던 벽과 지붕은 점점 그 형태가 사라지고 있다. 아늑한 물리적 공간도, 손맛을 주던 라우터나 스위치 등을 어루만질 기회도 시한부 선고를 맞은 셈이다. 가상화란 이름 아래 기능만 남고 존재는 사라진 것들을 찾아 다루는 것이 그들의 일이 되고 있다. ![]() [이미지 = iclickart] 최근 기업 내 IT 부서들은 콘테이너(container)라는 것을 눈에 띄게 도입시키고 있다. 이에 따라 도커(Docker)라는 것에 대한 관심도가 높아지고 있다. 문제는 이 콘테이너라는 걸 다루려면 솔루션 하나 설치해 사용하는 것과 달리 도커 네트워킹에 대한 지식과 기술력이 뒷받침되어야 한다는 것이다. 그래서 이번 기사에서는 도커와 관련된 네트워킹의 기초적인 부분을 다뤄보고자 한다. 디폴트 도커 네트워크 도커를 처음 설치하면 세 가지 종류의 네트워크가 자동으로 설정된다. 이름은 none, host, bridge다. none과 host 네트워크는 삭제가 불가능하다. 도커 네트워크 스택의 일부이기 때문이다. 하지만 네트워크 담당자에게 있어서 이 두 가지 네트워크는 그다지 유용한 것이 아니다. 따로 설정을 가할 수 있을만한 외부 인터페이스가 없기 때문이다. 하지만 bridge 네트워크는 관리자가 설정을 할 수 있다. bridge 네트워크는 docker0 네트워크라고 하기도 한다. bridge 혹은 docker0 네트워크는 자동으로 IP 서브넷과 게이트웨이를 생성한다. 이 네트워크에 속한 모든 콘테이너들은 같은 서브넷에도 속하게 된다. 그러므로 bridge 네트워크 내에서 일어나는 콘테이너들 사이의 모든 통신은 IP 주소 할당을 통하여 발생하게 된다. 자, 그럼 이런 디폴트 브리지 네트워크를 그대로 사용하면 될까? 되긴 되지만 한 가지 단점이 있다. DNS를 사용해 자동으로 서비스를 찾아주는 기능이 비활성화되어 있다는 것이다. 이 디폴트 네트워크 내의 콘테이너들이 통신을 할 수 있도록 하려면 —link라는 옵션을 사용해야만 한다. 여기에 더해 포트 포워딩을 해야만 콘테이너들 간 통신이 발생할 수 있으니, 이 역시 알아두자. 도커를 시도해본 많은 관리자들이 이러한 점 때문에 ‘콘테이너는 네트워크 사용성과 확장성에 큰 장애가 된다’고 생각한다. 사실 디폴트만 사용한다면 그렇게 느껴질 공산이 다분하다. 그래서 사용자가 정의한 네트워크를 사용하는 편을 권장한다. 그렇게 하면 통신을 원활히 해야 하는 콘테이너의 활용과 관리가 더 쉬워진다. 사용자 정의 네트워크의 유형 도커는 자동으로 생성되는 네트워크 외에 다양한 종류의 네트워크를 사용자가 정의해서 사용할 수 있도록 하고 있다. 또한 사용자가 정의한 네트워크에 콘테이너를 추가하는 것도 가능하다. 여기서 기억해야 할 건 같은 네트워크에 있는 콘테이너들끼리는 얼마든지 통신이 가능하지만 다른 네트워크에 있는 콘테이너들끼리는 불가능하다는 것이다. 하지만 콘테이너를 사용하다보면 다른 네트워크와의 통신이 필요할 때가 있다. 이럴 때는 해당 콘테이너를 여러 네트워크에 추가하면 간단히 해결된다. 사용자가 정의할 수 있는 네트워크에는 크게 세 가지 종류가 존재한다. 1) bridge 네트워크 : 디폴트에서 자동으로 생성해주는 bridge 네트워크와 비슷하다. IP 서브넷과 게이트웨이를 독립적으로 보유하고 있다는 점이 그렇다. 하지만 사용자가 정의한 bridge 네트워크의 콘테이너들은 포트 포워딩을 하지 않아도 서로 통신을 할 수 있다는 점에서 차이가 있다. 게다가 DNS를 활용한 자동 서비스 검색 기능이 완벽히 호환되기도 한다. 당신이 정의한 bridge 네트워크 내의 자산과 다른 네트워크에 연결된 기기들과 소통을 하게 하려면 간단히 TCP/UDP 포트를 필요에 따라 열면 된다. 도커가 해당 네트워크 주소와 포트를 외부 네트워크에 공개할 것이다. 2) overlay 네트워크 : 분산된 네트워크에서 도커를 사용해야 할 때가 있다. 여러 호스트에 설치된 콘테이너들끼리 직접 통신을 해야만 하는 상황이다. 그럴 때는 overlay 네트워크가 해결책이다. 그러려면 먼저 도커 서버들의 swarm mode가 활성화되어 있어야 한다. swarm mode란 도커가 도커 엔진 다수(이를 swarm이라고 한다)를 관리할 수 있도록 해주는 방법이다. 이 모드를 활성화시켰다면 VXLAN 캡슐화를 사용해 layer 2 overlay 네트워크를 swarm 안에 만드는 게 가능해진다. 그런 후에 콘테이너를 overlay 네트워크에 추가하면 마치 모든 콘테이너가 같은 노드 안에 있는 것처럼 서로 간 직접 통신이 가능해진다. 외부에서 overlay 네트워크와 통신을 할 수 있도록 하려면 사용자가 정의한 bridge 네트워크에서처럼 설정하면 된다. 3) macvlan 네트워크 : macvlan 네트워크는 bridge 네트워크와 overlay 네트워크를 사용할 때 콘테이너와 호스트 사이의 브리지를 제거함으로써 콘테이너 통신을 간단하고 보다 원활하게 만드는 네트워크다. macvlan 네트워크를 사용할 때 얻을 수 있는 이점은 네트워크 바깥 면을 향해야 하는 콘테이너 자산을 외부 네트워크에 포트 포워딩 없이 연결시킬 수 있다는 것이다. ‘layer 3 IP 할당’ 대신 ‘layer 2 MAC 주소’를 사용하기에 가능한 일이다. 글 : 앤드류 프로흘리히(Andrew Froehlich), 웨스트 게이트 네트웍스 [국제부 문가용 기자(globoan@boannews.com)] Copyrighted 2015. UBM-Tech. 117153:0515BC |
|
|
|