여러모로 많이 바빴어서 노션에 적던 글을 따로 정리할 시간이 없어 이제야 적네요
Window OS 를 엎고, Ubuntu 설치
1. ubuntu server 다운 https://releases.ubuntu.com/22.04/
2. refus를 다운받아서 부팅디스크로 변환해준다.
저는 여기서 옵션들 하나하나가 뭘 의미하는지 몰라 헤맸었는데,
그래서 모르는 개념들을 짚고 넘어가보았습니다.
디스크 드라이브를 사용하기 전에, 파티션 작업을 해야 합니다. 드라이브에 파티션 데이터를 저장하는 두가지 다른 방법은 MBR(마스터 부팅 기록)과 GPT (GUID 파티션 테이블)입니다.
여러분의 운영 체제는 어떤 섹터가 각각의 파티션에 속했는지, 어떤 파티션이 이 정보로 부팅 가능한지, 어떤 것이 파티션이 실제 드라이브의 시작점과 종결점을 특정하는 지를 식별할 수 있습니다.
파티션 이란
- 하나의 물리적 디스크를 여러 개의 논리적인 디스크로 분할하는 것
- 디스크 공간을 여러 개의 하드디스크가 있는 것처럼 활용하기 위함
파티션을 나누면 좋은 이유
홈 디렉터리가 별개의 스토리지나 파티션에 있다면 데이터를 잃지 않으면서 운영체제를 재설치하기가 간편해집니다. 재설치를 할 때 홈 디렉터리는 포맷하지 않고 운영체제가 담긴 파티션만 포맷 후 새 운영체제를 설치하는 것으로 끝나기 때문입니다.
참고: 디스크 파티션이란
디스크의 스토리지의 영역을 나누는 것을 “디스크 파티셔닝"이라고 부릅니다. 각 파티션의 위치와 크기는 디스크의 “파티션 테이블"이라는 곳에 저장됩니다. 운영체제는 디스크를 읽을 때 이 테이블을 가장 먼저 읽으며 각 파티션은 운영체제에게 논리적으로 독립된 디스크로 인식됩니다.
파티션 구성
1. MBR 이란?
컴퓨팅의 첫 시작부터, 마스터 부팅 기록 (MBR)이라고 불리는 파티션 방법이 존재했습니다. 32비트 파티션 테이블 MBR 파티션은 드라이브의 시작에서 사용됐습니다. 드라이브의 각 파티션의 위치, 사이즈, 종류는 이 파티션 테이블에 목록화됩니다. 각각의 주요 MBR 파티션은 운영 체제를 포함하거나 주요 혹은 확장된 형태로 존재합니다.
최대 주요 파티션을 4개 혹은 3개, 그리고 하나의 확장 파티션으로 이루어 질 수 있습니다. 이 제한은 확장 파티션에 로지컬 파티션을 추가함으로써 제거할 수 있습니다. MBR 파티션의 최대 사이즈 역시 2테라바이트입니다.
2. GPT 란?
더 최신식의 파티션 방법은 GUID 파티션 테이블 (GPT)라고 불리고 MBR을 대체하기 위해 만들어 졌습니다. 64 비트 파티션 테이블은 드라이브의 시작과 끝에서 GPT 파티션을 위해 사용됩니다. 드라이브의 각 파티션의 위치, 사이즈, 유형은 파티션 테이블에 목록화 됩니다.
GPT 파티션이 생성될 수 있는 숫자에는 한계는 없고 기초 혹은 로지컬 형태 모두 될 수 있습니다. GPT 파티션은 9.4 테라바이트의 최대 크기 한계를 가지기 때문에 더 큰 디스크에 적절합니다.
3. 영구 파티션이란?
4. 파일 시스템
대부분의 상용 메모리 카드는 기본 설정으로 FAT32 파일 시스템을 사용합니다. NTFS와 FAT32 파일 시스템의 차이점은 다음과 같습니다.
FAT32 파일 시스템은 4GB보다 큰 개별 파일을 저장할 수 없지만 NTFS 파일 시스템은 저장할 수 있습니다.
FAT32에 비해 NTFS 파일 시스템은 디스크 사용률이 높고 디스크 공간을 더욱 효율적으로 관리할 수 있습니다.
NTFS의 읽기 및 쓰기 속도 역시 FAT32보다 빠릅니다.FAT32 파일 시스템은 저용량 플래시 메모리 장치(예: 메모리 카드, USB 드라이브 및 기타 저장 장치)에 적합하며, NTFS 파일 시스템은 대용량 디스크에 적합합니다.
그렇게 부팅 디스크를 usb 에 만들어주고, 이제부터 디스크 드라이브를 사용해볼겁니다.
Ubuntu 초기 세팅 및 저장소
참고 (링크)
- BIOS 들어가서 boot 를 UEFI 를 first 로 전환
- 설치 후 network 설정이 떠서 일단은 dhcp wifi 로 연결함
- cofigure proxy
- proxy 서버 : 클라이언트가 서버로 접속할 때 바로 접속하지 않고 중간에 대신 전달해 주는 서버 (보안 등에 용이)
- mirror server 설정 ( 그냥 고대로 넘어감 나중에 바꿀 수 있을것같아서)
- buided storage configuration
연결 확인
sudo fdsik -l
로 연결된 장치 불러오기
parted 로도 할 수 있다는
/dev/sda1 에 연결되어있는 것 확인완
- 포맷하기
sudo mkfs.ext4 /dev/sdb위의 명령어를 이용하여
"/dev/sdb"를 ext4 형식으로 포맷합니다.
자동 마운트 설정하기
UUID 확인하기
sudo blkid
sudo vi /etc/fstab
UUID=<UUID 입력> <마운트할 위치> ext4 defaults 0 0
위의 형식에 맞춰서 입력해줍니다.확인하기
sudo reboot now
재부팅해봅시다.
df
위의 명령어를 입력하여 마운트 된 리스트를 확인합니다.
네트워크 구성
처음 적은 제 생각을 보니,,
ddns → 공유기 (public ip) → dmz → 쿠버네티스 (home server)
요런식으로 생각했습니다.
ddns 참고 - > (링크)
이건 정말 단순하게 제가 집에서 홈 노드를 접속할 때의 방법입니다.
만약, 개발자가 외부에서 제 홈 서버에 접속하기 위해서는 어떻게 해야할까요?
1. 포트포워딩
- 말 그대로 포트를 뚫어줍니다. 그래서 ddns + 해당 포트로 접속하면 접속이 가능한..
그렇다면, 내부 장치끼리 포트포워딩 없이 통신하는 방법은 없을까요?
2. vpn
- 제가 초반에는 vpn 에 대한 필요성을 느끼지 못했는데, 1번 방법은 굉장히 보안적으로 취약하고, 차후 서비스를 배포할때도 좋지 않은 방식임을 파악하였습니다.
이후 적을 글에도 나올 예정이지만, 위 이유로 저는 vpn 서비스를 홈서버내에 구성하는 방식을 택했습니다.
vpn 을 안쓰고 싶다면,,
- 라우팅 설정을 한다.
- ip 가 변한다면 bgp 와 같은 동적 라우팅 프로토콜을 이용해야하는...
근데 굳이 도구가 있는데 안쓸 이유도 없을것같아요
그리고, 각 노드들의 ip 대역은 제 홈 wifi 대역에 맞게
192.168.0.0/16 안에서 해결하기 위해
192.168.0.100
192.168.0.101
192.168.0.102
요렇게 3대에 사설 ip 를 고정해줬습니다.
참고 (링크)
다음편에는, 쿠버네티스 네트워크 인터페이스 도구를 무엇으로 할지와, 각 노드에 쿠버네티스를 설치하는 방법에 대해 가져와보겠습니다.
적고나니 별거 없어보이는데 제 개인적으로는 네트워크에 대해 고민할 때 머리가 증말 아팠습니다.
과연, 어떻게 외부 접속이 가능하게 만들어질지 기대해주세요!
'☁️2024,2025☁️ > HomeLabK8sWorld' 카테고리의 다른 글
쏭's Lab 구성하기 제 4편 - 개발자/사용자의 홈랩 외부 접속 어떻게 해야 할까? [MetalLB 삽질] (0) | 2024.08.15 |
---|---|
쏭's Lab 구성하기 제 3편 - 각 노드에 k8s 구축하기 (0) | 2024.08.15 |
쏭's Lab 구성하기 제1편 - 환경 조사 및 설계 (1) | 2024.05.09 |