4.2.1 openSUSE 설치 과정 (단계별 안내)
이제 openSUSE 설치 미디어로 부팅하여 본격적인 설치 과정을 시작하겠습니다. 설치 프로그램의 안내에 따라 진행하면 어렵지 않게 완료할 수 있지만, 몇 가지 중요한 설정 단계에서는 신중한 선택이 필요합니다. 특히, 앞으로 우리가 구축할 쿠버네티스 클러스터의 안정성과 성능에 직접적인 영향을 미치는 부분들이므로, 각 단계의 의미를 정확히 이해하고 진행하는 것이 중요합니다. 지금부터 그 핵심적인 설정 단계들을 하나씩 자세히 살펴보겠습니다.
4.2.1.1 파티션 설정 (자동/수동)
운영체제를 설치할 때 가장 먼저 마주하게 되는 중요한 결정 중 하나가 바로 디스크 파티션 설정입니다. 파티션이란, 하드 디스크나 SSD 같은 저장 장치의 공간을 논리적으로 나누는 작업을 의미합니다. 마치 큰 집의 공간을 용도에 맞게 방, 거실, 주방 등으로 나누는 것과 같다고 생각하시면 이해하기 쉬울 것입니다. 이렇게 공간을 나누면 운영체제 파일, 사용자 데이터, 로그 파일 등을 분리하여 관리할 수 있어 효율성과 안정성을 높일 수 있습니다.
openSUSE 설치 프로그램은 대부분의 경우 ‘자동 파티션 설정’ 옵션을 제안합니다. 이 옵션은 설치 프로그램이 시스템 환경을 분석하여 가장 일반적인 방식으로 파티션을 자동으로 구성해주는 편리한 기능입니다. 일반적으로 루트(/) 파티션, 스왑(Swap) 파티션, 그리고 경우에 따라 별도의 홈(/home) 파티션을 생성합니다. openSUSE는 기본 파일 시스템으로 Btrfs를 사용하는 경우가 많은데, Btrfs는 스냅샷과 같은 고급 기능을 제공하여 시스템 복구에 유용할 수 있습니다. 초보 사용자나 특별한 요구사항이 없는 경우, 자동 설정은 좋은 출발점이 될 수 있습니다.
하지만 쿠버네티스 노드와 같이 특정 목적을 가진 서버 환경에서는 ‘수동 파티션 설정’을 고려하는 것이 좋습니다. 수동 설정을 통해 우리는 디스크 공간을 보다 세밀하게 제어하고, 특정 디렉토리에 별도의 파티션을 할당하여 시스템 안정성을 더욱 강화할 수 있습니다. 예를 들어, 쿠버네티스 환경에서는 컨테이너 이미지나 로그 파일 등이 저장되는 /var 디렉토리의 사용량이 크게 증가할 수 있습니다. 만약 루트(/) 파티션과 /var 디렉토리가 분리되어 있지 않다면, 컨테이너 관련 데이터나 로그가 급증하여 루트 파티션의 공간을 모두 소진시킬 위험이 있습니다. 이 경우 시스템 전체가 불안정해지거나 최악의 경우 부팅조차 불가능해질 수 있습니다.
따라서 수동 파티션을 선택한다면, 다음과 같은 구성을 권장합니다.
- /boot 또는 /boot/efi (UEFI 시스템의 경우): 부팅 관련 파일들을 저장하는 작은 파티션입니다. 보통 수백 MB 정도면 충분합니다.
- Swap: 물리적 메모리(RAM)가 부족할 때 디스크 공간을 메모리처럼 사용하는 영역입니다. 서버 환경에서는 RAM 용량에 따라 스왑 파티션 크기를 조절하거나, RAM이 충분하다면 생성하지 않는 경우도 있습니다. 하지만 일반적으로 어느 정도의 스왑 공간은 예기치 못한 메모리 부족 상황에 대비하는 데 도움이 될 수 있습니다.
- / (루트): 운영체제의 핵심 파일들이 설치되는 가장 중요한 파티션입니다. 시스템 운영에 필요한 기본적인 공간을 할당해야 합니다. 파일 시스템으로는 안정성과 성능 면에서 검증된 XFS나 EXT4를 고려해볼 수 있습니다.
- /var: 시스템 로그, 메일, 임시 파일뿐만 아니라, 컨테이너 런타임 데이터(예: containerd, CRI-O 등)와 이미지, 그리고 Kubelet 관련 데이터가 저장되는 매우 중요한 디렉토리입니다. 이 디렉토리를 별도의 파티션으로 분리하고 충분한 공간을 할당하는 것이 쿠버네티스 노드의 안정적인 운영을 위해 매우 중요합니다. 다른 파티션보다 상대적으로 넉넉한 공간을 할당하는 것이 좋습니다. 파일 시스템으로는 대용량 파일 처리와 성능이 우수한 XFS를 고려해 볼 수 있습니다.
물론, /home (사용자 데이터 저장) 등 필요에 따라 다른 파티션을 추가로 생성할 수도 있습니다. 수동 파티션 설정은 다소 복잡하게 느껴질 수 있지만, 서버 환경, 특히 쿠버네티스 노드의 안정성을 장기적으로 확보하기 위한 중요한 투자라고 생각해주시면 좋겠습니다. 어떤 방식을 선택하든, 각 파티션의 역할과 중요성을 이해하고 신중하게 결정하는 것이 핵심입니다.
4.2.1.2 네트워크 설정 (고정 IP 권장)
운영체제 설치 과정에서 파티션 설정만큼이나 중요한 것이 바로 네트워크 설정입니다. 서버는 네트워크를 통해 다른 시스템과 통신하고 서비스를 제공하는 것이 주된 역할이므로, 정확하고 안정적인 네트워크 설정은 필수적입니다. 특히 쿠버네티스 클러스터를 구성할 때는 각 노드(마스터 노드, 워커 노드)들이 서로를 안정적으로 식별하고 통신할 수 있어야 하므로, 네트워크 설정의 중요성은 아무리 강조해도 지나치지 않습니다.
네트워크 설정 방식에는 크게 두 가지가 있습니다. 첫 번째는 DHCP(Dynamic Host Configuration Protocol)를 이용하는 방식입니다. DHCP는 네트워크 내의 DHCP 서버로부터 IP 주소, 서브넷 마스크, 게이트웨이 주소, DNS 서버 주소 등의 네트워크 정보를 자동으로 할당받는 편리한 방식입니다. 노트북이나 데스크톱 PC에서는 이 방식을 흔히 사용합니다.
하지만 서버, 특히 쿠버네네티스 클러스터를 구성할 노드에는 고정 IP 주소(Static IP Address) 를 설정하는 것을 강력히 권장합니다. 왜냐하면 쿠버네티스 클러스터의 구성 요소들(API 서버, Kubelet, Etcd 등)은 서로의 IP 주소를 기반으로 통신하고 상태를 확인합니다. 만약 노드의 IP 주소가 DHCP에 의해 수시로 변경된다면, 클러스터 내의 통신이 끊어지고 전체 클러스터가 불안정해지는 심각한 문제가 발생할 수 있습니다. 예를 들어, 워커 노드의 IP가 변경되면 마스터 노드의 API 서버는 해당 노드를 찾지 못하게 되고, 그 노드에서 실행 중이던 애플리케이션(파드)들은 관리되지 않는 상태가 될 수 있습니다.
따라서 openSUSE 설치 과정 중 네트워크 설정 단계에서는 반드시 수동 설정을 선택하고, 각 노드에 할당할 고유한 고정 IP 주소를 직접 입력해야 합니다. 이때 필요한 정보는 다음과 같습니다.
- IP 주소: 해당 노드가 사용할 고유한 IP 주소 (예: 192.168.1.10)
- 서브넷 마스크: 네트워크 영역을 정의하는 값 (예: 255.255.255.0)
- 게이트웨이 주소: 외부 네트워크(예: 인터넷)와 통신하기 위한 관문 역할을 하는 라우터의 IP 주소 (예: 192.168.1.1)
- DNS 서버 주소: 도메인 이름(예: google.com)을 IP 주소로 변환해주는 서버의 주소 (예: 8.8.8.8, 1.1.1.1 또는 내부 DNS 서버 주소)
이 정보들은 현재 사용하고 계신 네트워크 환경에 맞게 정확히 입력해야 합니다. 만약 네트워크 환경에 대한 정보가 확실하지 않다면, 네트워크 관리자에게 문의하여 정확한 정보를 확인한 후 진행하는 것이 좋습니다.
또한, 이 단계에서 호스트 이름(Hostname) 을 설정하는 것도 중요합니다. 호스트 이름은 네트워크상에서 각 서버를 식별하는 이름입니다. 쿠버네티스 클러스터 내에서 각 노드를 명확하게 구분하기 위해 의미 있는 이름(예: k8s-master-1, k8s-worker-1, k8s-worker-2)을 부여하는 것이 좋습니다. 나중에 클러스터 상태를 확인하거나 문제를 해결할 때, 명확한 호스트 이름은 큰 도움이 됩니다.
요약하자면, 쿠버네티스 노드로 사용할 서버에는 반드시 고정 IP 주소를 설정하고, 식별하기 쉬운 호스트 이름을 부여해야 합니다. 이는 클러스터의 안정적인 통신과 관리를 위한 가장 기본적인 전제 조건입니다.
4.2.1.3 사용자 계정 생성
운영체제 설치의 마지막 단계 중 하나는 사용자 계정을 생성하는 것입니다. 리눅스 시스템에는 모든 권한을 가진 최고 관리자 계정인 ‘root’ 계정이 존재합니다. 하지만 보안상의 이유로 평상시에는 root 계정으로 직접 로그인하여 시스템을 사용하는 것은 매우 위험하며 권장되지 않습니다. 작은 실수 하나가 시스템 전체에 치명적인 영향을 미칠 수 있기 때문입니다. openSUSE 설치 과정에서도 root 계정의 비밀번호를 설정하게 되지만, 이 계정은 꼭 필요한 경우에만 제한적으로 사용하는 것이 좋습니다.
따라서 설치 과정에서는 반드시 일반 사용자 계정을 생성해야 합니다. 이 계정은 우리가 평상시에 서버에 접속하여 명령어를 실행하고 작업을 수행할 때 사용하게 될 주 계정입니다. 일반 사용자 계정은 root 계정과는 달리 시스템 전체에 영향을 미치는 작업을 직접 수행할 수 있는 권한이 제한되어 있어, 실수로 인한 시스템 손상을 방지하는 데 도움이 됩니다.
사용자 계정을 생성할 때는 다음 사항들을 설정하게 됩니다.
- 사용자 이름(Username): 시스템에 로그인할 때 사용할 ID입니다. 기억하기 쉽고 의미 있는 이름(예: 본인 이니셜, 역할 등)으로 정하는 것이 좋습니다.
- 비밀번호(Password): 보안을 위해 충분히 길고 복잡한(대소문자, 숫자, 특수문자 조합) 비밀번호를 설정해야 합니다. 이 비밀번호는 절대로 타인에게 노출되어서는 안 됩니다.
중요한 점은, 이 일반 사용자 계정으로도 필요한 경우에는 관리자 권한을 잠시 얻어 시스템 설정 변경이나 소프트웨어 설치 등의 작업을 수행할 수 있어야 한다는 것입니다. 이를 위해 리눅스에서는 sudo (superuser do)라는 명령어를 제공합니다. sudo를 사용하면 일반 사용자도 자신의 비밀번호를 입력하여 일시적으로 root 권한을 얻어 특정 명령어를 실행할 수 있습니다.
openSUSE 설치 과정에서는 새로 생성하는 일반 사용자 계정에 sudo 권한을 부여하는 옵션이 보통 제공됩니다(예: ‘관리자 권한으로 이 사용자 사용’ 또는 ‘시스템 관리자 그룹에 추가’ 등의 옵션). 이 옵션을 반드시 활성화하여 생성된 사용자가 sudo 명령어를 사용할 수 있도록 설정해야 합니다. 이렇게 해야만 root 계정으로 직접 로그인하지 않고도 안전하게 시스템 관리 작업을 수행할 수 있습니다.