요즘 백엔드 개발자에게 요구되는 많은 기술 중 하나인 k8s에 도전을 해보고 싶었습니다.
필자는 스프링, 아파치 미나와 같은 프레임워크 기반으로 API, 소켓 서버를 개발하고 있다 보니 신기술에 경험을 가질 수 있는 기회가 적어 개인적으로 신기술 학습을 꾸준히 하고 있으며, 최근에는 Redis, Kafka 기술을 토이 프로젝트를 진행해 보았고 이번에는 백 발자에게 요구되는 많은 기술 중 하나인 쿠버네티스를 도전하려 합니다.
1. 기본 환경 구성
공인 IP 할당받고 있는 공유기에 PC들이 묶여있는 공유기가 하나 더 연결 되어있습니다. 미니 PC를 활용하여 하이퍼바이저를 설치하였고 VM 3대를 설치하여 쿠버네티스 마스터, 노드 1, 노드 2 구성을 진행하고 합니다.
먼저 환경 구성을 위한 설치와 간단한 포트 포워딩 동작 설정 등을 먼저 살펴보려합니다.
1.1 NAT 구성도
아래 그림은 NAT 구성도로 필자 경우 lg u+ 를 이용하여 제공되는 게이트웨이 웹 화면입니다. 각 NAT를 클릭하여 설정 페이지로 이동하여 원하는 설정을 적용할 수 있었습니다.
1.2 1번 공유기 설정
1번 공유기(LGU_11B8)는 2번 공유기(LGU_6 A85)에 DHCP를 통한 내부 ip가 자동 할당되며, 필자는 내부 ip 변경을 방지하고자 고정 할당하는 작업을 진행해 주었습니다. 아래와 같이 2번 공유기는 192.168.219.100번 내부 ip를 고정으로 할당받아 사용하고 있습니다.
※ DHCP(Dynamic Host Configuration Protoco) : 동적으로 호스트를 설정하는 규약으로 네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, ip 주소, 게이트웨이 주소를 할당해 줍니다. 일정 기간 임대를 하는 동적 주소 할당 프로토콜로 필자 경우는 고정으로 설정해 주었습니다.
이제 1번 공유기에서 2번 공유기에 원하는 포트로 접근을 할 수 있게 설정해주어야 합니다. 포트 접근을 위해서는 아래의 두 가지 방식이 있으며 필자는 포트포워딩을 진행하였습니다.
1. 포트포워딩
포트포워딩(port forwarding)은 컴퓨터 네트워크 상에서 패킷이 방화벽이나 라우터 같은 네트워크 게이트를 지날 때 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환의 응용이라고 볼 수 있습니다
2. DMZ 서버 설정
DMZ(Demillitarized Zone)이란 포트 포워딩의 일종으로 공유기의 모든 포트를 망 내부에 있는 특정 기기로(내부 IP)에 포워딩하는 것을 말합니다.
8006번 포트에 공유기 2번의 고정 ip로 포트포워딩 설정을 진행하였습니다. 해당 포트를 열어둔 이유는 하단에 설명이 될 예정입니다. 이로써 {공인 ip:8006} 요청 트래픽은 2번 공유기(LGU_6 A85)로 패킷이 흘러갈 수 있게 설정되었습니다.
1.3 2번 공유기 설정
이제는 2번 공유기 설정을 진행할 예정입니다. 기본 구성도를 확인하면 2번 공유기에는 PC, 하이퍼바이저, 여러 대의 VM이 연결되어 있으며 DHCP 할당정보 페이지를 통하여 ip 정보와 호스트를 확인할 수 있었습니다. 아래는 쿠버네티스 구성 과정 중 설정된 VM 정보 및 PC정보들이 함께 보입니다.
여기도 8006번 포트가 설정된 ip로 포트 포워딩 될 수 있게 설정해 두었습니다. 아래 ip는 하이퍼바이저 ip이며 필자 경우 proxmox를 설치하여 사용 중입니다.
1.4 포트포워딩을 이용한 관리자 페이지 접근
이제 해당 포트 오픈 확인을 위하여 사이트를 통하여 확인을 진행하였습니다. 자동 할당받은 공인 ip의 8006 포트가 열려있는지 테스트해보았고 정상적으로 오픈된 것을 확인하였습니다. (https://lamanus.kr/ports)
8006 포트 경우 proxmox의 관리자 페이지 포트입니다. 아래 화면 경우 내부 ip를 통하여 접근한 화면이며 공인 ip를 DNS 등록하여 인터넷에서 도메인으로 접근하여 활용하고 있습니다. (보안상으로 현재는 포트 닫아 내부에서만 접근할 수 있습니다.)
하이퍼바이저를 구성한 미니 PC 스펙은 아래와 같으며, 스펙 좋지 못하여 최대한 작은 리소스 환경에서 진행될 수 있게 구성하려고 노력했습니다.
미니 PC 스펙
- CPU: Intel Celeron N4000 (Dual-Core, up to 2.6 GHz)
- Memory: 6GB LPDDR4 X
- Storage: 128GB internal storage
여기까지는 쿠버네티스 구축과 관련이 없지만 제가 구성한 환경을 먼저 소개해드렸습니다.
이후 과정으로는 vm을 설치하여 마스터와 워커 노드 구성을 진행 후 쿠버네티스 설치 과정을 진행하려 하니 이어서 다음 포스팅도 기대해 주세요.
참고 문서
'Devops' 카테고리의 다른 글
우당탕탕 쿠버네티스 구축 도전기 - 3 (0) | 2025.05.07 |
---|---|
우당탕탕 쿠버네티스 구축 도전기 - 2 (0) | 2025.05.06 |
gitHub & Jenkins CI/CD 적용 (4/4) (1) | 2024.06.06 |
gitHub & Jenkins CI/CD 적용 (3/4) (0) | 2024.06.02 |
gitHub & Jenkins CI/CD 적용 (2/4) (0) | 2024.06.01 |