컨테이너 네트워킹은 가상 머신과 개념이 유사한 가정용 데스크톱 및 웹 규모의 엔터프라이즈 네트워킹 솔루션에 사용되는 새로운 애플리케이션 샌드박싱 메커니즘입니다. 호스트 및 기타 모든 컨테이너로부터 격리된 컨테이너 내부에는 자체 사용자, 파일 시스템, 프로세스 및 네트워크 스택이 있는 완벽한 기능의 Linux 환경이 있습니다. 컨테이너 내부의 모든 애플리케이션은 컨테이너 내부에서만 사용 가능한 파일 또는 리소스에 액세스하거나 이를 수정할 수 있습니다.
각각 자체 설치 및 종속성이 있는 여러 컨테이너를 동시에 실행할 수 있습니다. 이는 서버에서 실행되는 다른 애플리케이션 종속성과 충돌이 발생할 수 있는 최신 버전의 애플리케이션에서 종속성을 업그레이드해야 하는 경우에 특히 유용합니다. 가상 머신과 달리 컨테이너는 컴퓨터의 모든 하드웨어를 완전히 시뮬레이션하지 않고 호스트 리소스를 공유하므로 가상 머신보다 작고 빠르며 오버헤드가 줄어듭니다. 특히 웹 규모 애플리케이션의 맥락에서 컨테이너는 마이크로 서비스 아키텍처를 위한 배포 플랫폼으로서 가상 머신을 대체하도록 설계되었습니다.
또한 컨테이너에는 이동성의 특성이 있습니다. 예를 들어 컨테이너 엔진인 Docker는 개발자가 컨테이너와 모든 종속성을 함께 패키징할 수 있도록 합니다. 그러면 해당 컨테이너 패키지를 다운로드할 수 있습니다. 이 패키지를 다운로드하면 컨테이너를 호스트에서 즉시 실행할 수 있습니다.
컨테이너 네트워크는 개념적으로 가상 머신(VM)과 유사하지만 구별되는 차이점이 있는 가상화의 한 형태입니다. 기본적으로 컨테이너 방식은 하드웨어 가상화의 한 형태인 가상 머신과 달리 운영 체제 가상화의 한 형태입니다.
하이퍼바이저에서 실행되는 각 가상 머신에는 자체 운영 체제, 애플리케이션 및 라이브러리가 있습니다. 또한 영구 데이터를 캡슐화하고, 새 OS를 설치하고, 호스트와 다른 파일 시스템을 사용하고, 다른 커널 버전을 사용할 수 있습니다.
반면에 컨테이너는 이미지의 "실행 중인 인스턴스"이자 일부 작업을 수행하기 위해 가동된 후 삭제되고 잊히는 임시 운영 체제 가상화입니다. 컨테이너의 일시적인 특성으로 인해 시스템 사용자는 더 큰 주소 공간이 필요한 가상 머신에 비해 더 많은 컨테이너 인스턴스를 실행합니다.
격리를 생성하기 위해 컨테이너는 두 가지 Linux 커널 기능인 네임스페이스와 cgroup을 사용합니다. 컨테이너에 다른 리소스와 격리된 시스템 보기를 제공하기 위해 각 리소스에 대해 네임스페이스가 생성되며 나머지 시스템과 공유되지 않습니다. 그런 다음 제어 그룹(cgroup)을 사용하여 CPU, 메모리, 디스크 I/O, 네트워크 등과 같은 시스템 리소스를 모니터링하고 제한합니다.
컨테이너는 마이크로 서비스를 위한 플랫폼으로 가상 머신을 대체하면서 빠르게 채택되고 있습니다.
컨테이너에는 다음과 같은 여러 주요 이점이 있습니다.
컨테이너는 엔터프라이즈 환경에서 마이크로 서비스 아키텍처의 일부로 배포되어 대규모 웹 애플리케이션에서 일반적인 개별 작업을 캡슐화하는 데 도움이 됩니다. 각 작업에는 자체 컨테이너가 있을 수 있으며, API 및 GUI와 같은 외부에 노출된 컨테이너는 퍼블릭 인터넷에 개방되어 있고 나머지는 프라이빗 네트워크에 상주합니다.
마이크로 서비스 모델은 다음과 같은 이점을 제공합니다.
오늘날 사용되는 컨테이너 네트워킹에는 다섯 가지 유형이 있습니다. 이러한 유형은 컨테이너별 IP 모델과 포드별 IP 모델, 그리고 NAT(네트워크 주소 변환) 요구 사항과 변환 필요 없음 등의 특징을 중심으로 합니다.
Project Antrea에 대한 완전한 기업 지원이 제공되는 서명된 이미지 및 바이너리
컨테이너화된 애플리케이션과 마이크로 서비스를 연결하고 보호하십시오.
Virtual Cloud Network를 통해 데이터 센터에서 퍼블릭 클라우드 환경을 구현하십시오.