RW 레이어(Read-Write Layer)는 컨테이너를 실행하면서 발생하는 파일 시스템 변경 사항을 저장하는 곳입니다. # RW 레이어는 컨테이너 생성 시 생성되며 컨테이너 내에서 발생하는 모든 쓰기 작업은 해당 레이어에 저장됩니다. # 이렇게 함으로써, 컨테이너 내부의 파일 시스템을 변경하더라도 원래의 이미지는 그대로 유지됩니다. # 컨테이너가 삭제되면 RW 레이어와 함께 삭제됩니다. # RW 레이어는 컨테이너의 변경 사항을 추적하여 필요한 경우 이를 확인하고 원래 상태로 되돌리는 데 사용할 수 있습니다.
오버레이 파일 시스템은 컨테이너 이미지의 계층 구조를 유지하기 위해 사용되는 합치기 유니온 파일 시스템입니다. # 오버레이 파일 시스템은 상위 레이어와 하위 레이어를 합친 가상 파일 시스템을 만들며, 원래의 레이어는 변경되지 않습니다. # 컨테이너 시작 시, 오버레이 파일 시스템은 하위 레이어로부터 파일을 조회하고, 해당 파일이 상위 레이어에 존재할 경우 상위 레이어에서 파일을 가져옵니다.
RW 레이어와 오버레이 파일 시스템은 컨테이너 환경에서 효율적인 스토리지 사용, 높은 성능 및 변경 사항 추적을 가능하게 하며, 컨테이너 기술의 핵심 요소 중 하나입니다.
도커 오버레이 네트워크는 도커 엔진 클러스터 내의 컨테이너 간에 통신을 가능하게 하는 분산 네트워크 솔루션입니다. 이러한 네트워크를 사용하면 물리적으로 서로 다른 노드에 있는 컨테이너 간에 신뢰성 있고 격리된 네트워크 통신이 가능합니다.
도커 스웜 클러스터 생성 : 먼저 클러스터를 구성하기 위한 도커 노드 그룹(매니저 노드와 워커 노드)을 생성합니다.
스웜 매니저 초기화: docker swarm init
명령어를 사용하여 스웜 클러스터의 매니저 노드를 초기화합니다.
워커 노드 참여: docker swarm join
명령어를 사용하여 워커 노드를 스웜 클러스터에 등록합니다.
오버레이 네트워크 생성: docker network create -d overlay
명령어를 사용하여 오버레이 네트워크를 생성합니다. 여기서 -d overlay
는 드라이버 타입으로 옵션을 주어 오버레이 타입의 네트워크임을 지정합니다.
서비스 생성 및 네트워크 연결: docker service create
명령어로 서비스를 생성하고 오버레이 네트워크에 연결합니다. 생성된 서비스는 네트워크에 있는 모든 노드에서 올바르게 통신할 수 있어야 합니다.
도커 스웜은 컨테이너 오케스트레이션 도구로, 여러 개의 도커 호스트에서 컨테이너 클러스터를 관리하고 조정합니다. 스웜 모드에서 도커 엔진들은 노드로 사용되며 노드가 두 가지 역할을 수행합니다: 매니저 노드와 워커 노드.
매니저 노드: 클러스터 전체를 관리하고, 클러스터 멤버에 관한 정보를 유지하며, 오케스트레이션 명령에 응답합니다. 매니저 노드는 RAFT 분산 데이터 저장소를 사용하여 높은 서비스 가용성을 보장하게 됩니다.
워커 노드: 매니저 노드로부터 조정 및 배포 지시를 받아 컨테이너를 실행 및 관리하는 역할을 합니다.
스웜 클러스터를 통한 통신은 다음과 같은 컴포넌트를 사용하여 이루어집니다:
Control Plane: 스웜 클러스터의 노드 간 제어 정보를 교환하는 데 사용되는 통신 경로입니다. 이를 통해 업데이트와 서비스 명령이 교환됩니다. 보안을 위해 TLS 암호화가 적용되며, 클러스터 노드 간 통신에 CA 인증서를 사용해 서로의 신원을 확인합니다.
Data Plane: 실제 컨테이너 간 통신에 사용되며, 이 데이터 평면도 오버레이 네트워크를 사용합니다. 컨테이너들은 격리된 네트워크 환경에서 소통하기 위해 VXLAN 기술을 사용하여 트래픽을 캡슐화합니다.
도커 오버레이 네트워크와 스웜 통신은 분산 환경에서의 컨테이너 배포 및 관리를 단순화하고, 간결하게 함으로써 개발자 및 관리자가 시스템을 보다 효과적으로 관리할 수 있게합니다.