쿠버네티스 클러스터 구축
Control Plane 초기화
다음으로 앞서 소개한 kubeadm으로 쿠버네티스 클러스터를 구축해야 한다.
쿠버네티스의 Control Plane (Host 이름: master-node)에서 Worker 노드들(Hot 이름: free5gc-cp, free5gc-up)을 join하는 과정이다.
우선 Control Plane (Host 이름: master-node)을 kube init 명령어로 초기화한다.
kubeadm init —pod-network-cidr=20.96.0.0/16 --apiserver-advertise-address=192.168.56.50
이를 통해 Kubernetes API 서버, etcd, Controller Manager, Scheduler와 같은 핵심 컴포넌트가 마스터 노드에 설치된다.

이 과정에서 kubeadm join 명령어가 생성되는데, 추후 워커 노드를 마스터 노드에 join하기 위해 필요한 명령어이기 때문에 복사를 해놓는다.

Worker Node Join
이후, 워커노드로 들어가서 sudo 명령어로 앞에서 복사한 명령어를 붙여넣기 하면, 워커노드를 마스터 노드에 join 시킬 수 있다.



kubectl 명령어를 통해 1개의 control-plane 노드와 2개의 워커 노드가 하나의 클러스터로 묶였음을 확인할 수 있다.
네트워크 플러그인 설치
다음으로 마스터 노드에 네트워크 플러그인을 설치해야 한다.
1. Calico 설치 이유
Calico는 쿠버네티스에서 가장 많이 쓰이는 CNI(Container Network Interface) 플러그인 중 하나이다.
쿠버네티스 내 Pod 간 L3 라우팅 기반 네트워킹 제공하며 고성능, 저지연 트래픽에 최적화되어 있다.
Flannel 등 다른 네트워킹 CNI보다 대규모 환경에서 더 나은 성능을 제공한다.
Calico의 주요 기능은 아래와 같다.
- Pod 간 통신: 쿠버네티스 기본 Pod 네트워크를 제공해 Pod ↔ Pod, Pod ↔ 외부 네트워크 간 통신을 가능하게 함.
- 네트워크 정책(NetworkPolicy): 트래픽을 세분화해서 특정 Pod 간 트래픽만 허용하는 보안 규칙을 설정할 수 있음.
- 고성능 데이터 플레인: BGP 기반 라우팅, IP-in-IP, VXLAN 등을 지원해 대규모 클러스터에서도 효율적으로 동작.
즉, Calico는 쿠버네티스 클러스터의 기본 네트워크 인프라를 제공하는 역할을 한다.
# Calico 설치
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.30.3/manifests/tigera-operator.yaml

2. Multus 설치 이유
Multus는 쿠버네티스에서 Pod에 다중 네트워크 인터페이스를 부여할 수 있는 CNI 플러그인이다.
기본 CNI(예: Calico)가 하나의 네트워크만 제공하는 것과 달리, Multus는 Pod에 여러 개의 네트워크 인터페이스를 붙일 수 있게 한다. (예: UPF에서 N3, N4, N6, 필요 시 N9 인터페이스 제공)
Multus의 주요 기능은 아래와 같다.
- 네트워크 분리 → 데이터 트래픽, 관리 트래픽, 스토리지 트래픽을 물리적으로 분리 가능
- NFV/5G 환경 최적화 → Free5GC 같은 5G 코어에서 Control Plane과 User Plane 트래픽을 분리하는 데 필수적이다.
# Multus 설치
kubectl apply -f https://raw.githubusercontent.com/k8snetworkplumbingwg/multus-cni/master/deployments/multus-daemonset.yml

쿠버네티스 관리 Addon 설치
1. Metric Server 설치 이유
- 실시간 리소스 사용량 수집 :
Pod와 노드의 CPU, 메모리 사용량 같은 resource metric을 주기적으로 수집한다.
kubectl top nodes나 kubectl top pods 명령어로 확인할 수 있다. - HPA(Horizontal Pod Autoscaler) 필수 구성 요소 :
HPA가 Metric Server 데이터를 기반으로 Pod 개수를 자동으로 스케일링한다. - 클러스터 모니터링의 기초 :
Prometheus, Grafana 같은 고급 모니터링 스택을 구축할 때도 Metric Server 데이터가 활용된다.
# Metric Server 설치
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/high-availability-1.21+.yaml

2. Dashboard 설치 이유
- 웹 기반 관리 UI 제공 : kubectl CLI 없이 웹 브라우저에서 클러스터 상태를 시각적으로 확인 가능
Pod, Deployment, Service 상태를 한눈에 파악할 수 있다. - 리소스 관리 기능 : 웹 UI에서 직접 리소스 생성, 삭제, 로그 모니터링 가능
운영 편의성을 크게 향상시킨다.

쿠버네티스 클러스터 체크 방법


kubectl 명령어로 터미널에서 노드를 확인할 수 있고,
쿠버네티스 대시보드에서도 쿠버네티스 클러스터와 자원 사용률 현황을 확인할 수 있다.
'RAN CN 테스트베드 구축 > Free5GC on K8s (Core)' 카테고리의 다른 글
| UERANSIM을 활용한 Free5GC E2E 테스트하기 (0) | 2026.01.07 |
|---|---|
| Helm을 활용한 Free5GC 설치 방법 (Orange Opensource의 Towards5gs-helm (0) | 2026.01.06 |
| 쿠버네티스 설치 및 환경설정 방법 (K8s - Free5GC 멀티 노드 환경 구축) (0) | 2026.01.06 |
| 쿠버네티스의 개념, 기능, 특징, 역사 총정리 (0) | 2026.01.06 |
| 5G의 Service-Based Architecture와 쿠버네티스의 도입 (0) | 2026.01.06 |