Overview
8주차 주제는 "컨테이너 네트워크 구조 이해 및 Docker/Kubernetes 네트워크 환경 파악"이었다.
이번 과정을 통해 컨테이너가 네임스페이스(namespace)를 기반으로 독립된 네트워크 공간을 갖는 구조, 그리고 veth pair를 이용해 호스트와 연결되는 방식에 대해 실습과 함께 학습할 수 있었다.
Docker에서는 bridge, host, none, container
등 다양한 네트워크 드라이버를 제공하며, 기본적으로는 bridge
모드에서 각 컨테이너가 docker0
브릿지를 통해 통신하도록 구성된다.
Kubernetes에서는 하나의 Pod 내부 컨테이너들이 pause 컨테이너를 기반으로 동일한 IP 공간을 공유하며, 싱글 노드/멀티 노드 환경에서 Pod 간 통신 구조도 함께 이해하게 되었다. 이와 함께 Kubernetes 네트워크는 컨테이너 개념을 넘어, Pod-to-Pod 통신, Service Discovery, Overlay Network, CNI 등 클러스터 환경 전반의 네트워크 동작 원리를 이해하는 데 도움을 주었다.
더불어 이번 수업에서는 Docker Swarm와 Kubernetes의 개요 및 활용 차이도 함께 비교하며 오케스트레이션 도구에 대한 감을 잡을 수 있었다.
8주차 주제: 컨테이너 네트워크 이해 및 Kubernetes 네트워크 구조 실습
Object
컨테이너 네트워크를 이해하여 Docker 및 Kubernetes 네트워크 환경 파악
Key Result
컨테이너 관련 명령어 실행 후 네트워크 구조 분석, Minikube를 활용한 Kubernetes 네트워크 실습
(1~2Page 문서 + 결과 스크린샷 1Page)
8주차 수업 구성
시간 | 내용 |
10:00 ~ 10:20 | 멘티 간 토론 및 과제 발표, 과제 피드백 |
10:25 ~ 10:45 | 컨테이너 네트워크 구조 강의 |
10:50 ~ 11:10 | Docker Swarm & Kubernetes 개요 |
11:15 ~ 11:35 | Docker Swarm & Kubernetes 활용 실습 |
11:40 ~ 12:00 | 9주차 전체 과정에 대한 복습 및 다음 주 준비 |
출처: Twodragon 블로그
1. Container 네트워크 구조
먼저 container는 각자만의 격리된 network 공간을 할당 받는다. linux namespace 라는 기술을 이용하여 가상화 기법을 사용하여 각자 독립된 network 공간을 할당 받는 것이다.
container가 생성되면, pair interface 라고 하는 한 쌍의 interface들이 생성된다. 두 개의 inerface가 한 쌍으로 구성되는데 이 둘은 마치 직접 direct로 cable을 연결한 두 대의 PC와 같이 서로 packet을 주고 받는 형태이다. container가 생성되면, 이 pair interface 의 한 쪽은 container 내부 namespace에 할당되며 우리에게 친숙한 이름인 eth0 라는 이름으로 할당된다. 그리고 나머지 하나는 vethXX 라는 이름으로 docker0 bridge에 binding되는 형태이다.

2. Docker 및 Kubernetes 네트워크 구조
1) Docker 네트워크 구조
docker container 안에 eth0은 vethXX와 연결이 된다. 다시 vethXX들은 docker0라는 brige에 연결이 되고, 마지막으로 docker0는 호스트의 eth0와 연결이 되는 형태이다. docker0는 각 veth인터페이스와 바인딩돼 호스트의 eth0 인터페이스를 이어주는 역할은 한다.

docker 네트워크 드라이버로는 brige, host, none, container 등이 있다.

① brige
docker 기본 network 방식은 brige 이다. container를 생성하게 되면, 각 컨테이너마다 고유한 network namespace 영역이 하나씩 생성되며, 이 때 docker0 brige에 container의 인터페이스들이 하나씩 binding 되는 구조이다.
② host
host 방식으로 container를 생성하면, 컨테이너가 독립적인 network 영역을 갖지 않고 host와 함께 network 를 사용하게 된다.(network 외 다른 환경은 기존과 동일하다.)
③ none
--net=none 옵션으로 container를 생성하면 격리된 네트워크 영역을 갖긴 하지만, 인터페이스가 없는 상태로 container를 생성하게 된다.
④ container
이 방식으로 생성된 container는 기존에 존재하는 다른 container의 network 환경을 공유하게 된다.
2) Kubernetes 네트워크 구조
Kubernetes는 docker와는 달리 pod단위로 container들을 관리한다. pod는 여러 개의 container로 구성 될 수 있는데 container들은 모두 동일한 IP를 부여 받을 수 있다. 이 때 동일한 IP를 부여 받게 해주는 것이 바로 pause라는 컨테이너 덕분이다.

Kubernetes 네트워크 방식에는 ① 싱글 노드에서의 Pod to Pod 통신 ② 멀티 노드에서의 Pod to Pod 통신 등이 있다.
위의 글은 8주차 과제 내용이다.
수업은 Docker Swarm와 Kubernetes 개요와 활용에 대하여 공부를 하였다!
9주차에는 전체문서 총정리가 진행이 된다.
9주차
Object : 전체적인 Public Cloud 보안 자료를 정리하여 LinkedIn 프로필 업로드하여 취업에 활용
Key Result : 최종 문서를 통합정리하여 github 및 LinkedIn에 포트폴리오 업로드
마무리
이번 8주차 과정을 통해 단순히 컨테이너를 실행하는 것을 넘어서, 컨테이너들이 실제로 어떻게 네트워크를 구성하고 통신하는지, 그리고 Kubernetes 클러스터 환경에서 이 네트워크 구조가 어떻게 확장되고 자동화되는지를 실습 중심으로 익힐 수 있었다.
다음 주는 전체 내용을 정리하여 Github과 LinkedIn 포트폴리오로 정리하는 시간이 주어지기 때문에, 지금까지의 내용을 정돈해 나만의 학습 이력으로 남기는 좋은 기회가 될 것이다.
개인적으로는...
이번 교육 과정을 계기로
Kubernetes 및 OpenStack 기반의 플랫폼을 구성하는 회사로 이직을 결심했고,
지금은 새로운 환경에서 DevOps 엔지니어로 첫발을 내디뎠다.
이직은 끝이 아니라 진짜 시작이다.
앞으로 부딪히고 배워야 할 것들이 많겠지만, 이번 과정을 통해 탄탄한 기본기를 쌓았기에
자신 있게 도전할 수 있다고 믿는다.
앞으로도 기록하고, 공유하며, 성장하는 개발자로 계속 나아갈 예정이다.
“천천히, 그러나 분명하게. 지금까지 배운 모든 것들이 현업에서 빛을 발할 때까지 한 걸음씩.”
'교육, 커뮤니티 후기 > Cloud Security 교육' 카테고리의 다른 글
Cloud Security 9주차 과제 및 수업내용 (0) | 2022.04.21 |
---|---|
Cloud Security 7주차 과제 및 수업내용 (0) | 2022.04.02 |
Cloud Security 6주차 과제 및 수업내용 (0) | 2022.03.20 |
Cloud Security 5주차 과제 및 수업내용 (0) | 2022.03.06 |
Cloud Security 4주차 과제 및 수업내용 (0) | 2022.03.05 |