-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: documentation about networking [WIP]
- Loading branch information
Showing
1 changed file
with
26 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--- | ||
title: "Kubernetes Networking에 대하여" | ||
date: 2023-11-14T22:10:54+09:00 | ||
tags: | ||
- kubernetes | ||
- container | ||
- network | ||
categories: | ||
- kubernetes | ||
published: false | ||
--- | ||
|
||
# Kubernetes Network | ||
|
||
앞 포스트에서는 쿠버네티스 워크로드에 대해서만 이야기했었는데, 워크로드만 존재하면 통신이 가능하지는 않다. 그렇다면 통신을 가능케하고 유지해주는 리소스에 대해서 알아보자. | ||
|
||
## Kubernetes Network Model | ||
|
||
쿠버네티스에서는 각 파드마다 고유한 클러스터 전체 IP 주소가 할당된다. 따라서 파드 간에 명시적으로 링크를 생성할 필요가 없으며, 대부분 컨테이너 포트를 호스트 포트에 매핑할 필요가 없다. | ||
이렇게 되면 파드들을 VM이나 물리적 호스트처럼 취급할 수 있어서 포트 할당, 네이밍, 서비스 디스커버리, 로드 밸런싱, 애플리케이션 구성 및 마이그레이션 측면에서 간단하고 호환 가능하다. | ||
|
||
쿠버네티스는 모든 파드가 NAT 없이도 쿠버네티스 내 모든 파드와 통신할 수 있어야 한다는 요구사항이 있다. 왜냐하면 노드의 kubelet이나 데몬같은 에이전트도 모든 파드와 통신이 가능해야하기 때문이다. | ||
또 쿠버네티스에서 IP 주소는 파드 범위에서 존재한다. 따라서, 하나의 파드 내의 컨테이너들은 네트워크 네임스페이스를 공유하게 된다. IP 주소와 MAC 주소를 포함한 네트워크 설정이 파드 내의 모든 컨테이너들에게 동일하게 적용된다. 그러면 파드 내의 컨테이너들은 서로 포트에 로컬호스트를 통해 접근할 수 있다. | ||
이러한 구조는 파드 내의 컨테이너들이 포트 사용을 조정해야한다. VM 내의 프로세스들이 포트를 조정하는 것과 유사하며, 이러한 방식을 `파드당 IP` (IP-per-pod) 모델이라고 한다. | ||
|
||
--- |