4.2.2 설치 후 필수 설정

openSUSE 설치를 성공적으로 마치셨습니다! 하지만 이제 막 운영체제라는 집의 뼈대를 세운 것과 같습니다. 우리가 이 집에서 쿠버네티스라는 멋진 가구와 시스템을 들여놓고 편리하게 생활하려면, 몇 가지 기본적인 마무리 작업과 준비가 더 필요합니다. 이 절에서는 새로 설치된 openSUSE 시스템을 최적의 상태로 만들고, 앞으로의 쿠버네티스 설치 및 운영에 필요한 기본적인 환경을 갖추는 필수 설정들을 안내해 드립니다. 이 과정들은 시스템의 안정성, 보안, 그리고 편의성을 높이는 데 꼭 필요하므로, 하나씩 차근차근 따라와 주시기 바랍니다.

4.2.2.1 시스템 업데이트 (zypper up)

가장 먼저 해야 할 일은 바로 시스템 전체를 최신 상태로 업데이트하는 것입니다. 우리가 설치한 openSUSE 이미지는 만들어진 시점 이후로 발견된 보안 취약점이나 버그 수정 사항, 그리고 개선된 기능들이 반영되지 않았을 수 있습니다. 마치 새 스마트폰을 사자마자 운영체제 업데이트 알림이 뜨는 것과 비슷하다고 생각하시면 됩니다. 서버 환경, 특히 외부 네트워크와 통신하거나 중요한 서비스를 운영하게 될 쿠버네티스 노드에서는 보안이 무엇보다 중요합니다. 따라서 알려진 취약점을 해결하고 시스템 안정성을 확보하기 위해 최신 업데이트를 적용하는 것은 필수적인 첫걸음입니다.

openSUSE에서는 zypper라는 강력하고 사용하기 쉬운 패키지 관리 도구를 사용합니다. zypper는 시스템에 설치된 소프트웨어 패키지들을 관리하고, 새로운 패키지를 설치하거나 기존 패키지를 업데이트 또는 삭제하는 역할을 합니다. 시스템 전체를 최신 상태로 업데이트하기 위해서는 터미널을 열고 다음과 같은 명령어를 입력합니다.

클립보드에 복사

여기서 각 명령어는 다음과 같은 의미를 가집니다.

  • sudo: 이 명령어는 관리자(root) 권한으로 실행해야 합니다. 시스템 전체에 영향을 미치는 업데이트 작업이므로 일반 사용자 권한으로는 실행할 수 없습니다. 4.2.1.3절에서 생성한 일반 사용자 계정에 sudo 권한을 부여했다면, 이 명령어를 입력한 후 해당 사용자의 비밀번호를 입력하여 관리자 권한을 얻을 수 있습니다.
  • zypper ref: ref는 ‘refresh’의 줄임말로, 시스템이 알고 있는 사용 가능한 패키지 목록(저장소 메타데이터)을 최신 정보로 갱신하는 명령어입니다. 업데이트를 진행하기 전에 어떤 패키지들을 업데이트할 수 있는지 최신 목록을 먼저 확인하는 과정입니다.
  • &&: 이 기호는 앞의 명령어(zypper ref)가 성공적으로 완료되었을 경우에만 뒤의 명령어(zypper up)를 실행하라는 의미입니다.
  • zypper up: up은 ‘update’의 줄임말로, 현재 시스템에 설치된 모든 패키지들을 저장소의 최신 버전으로 업데이트하는 명령어입니다. zypper ref를 통해 갱신된 정보를 바탕으로 실제 업데이트를 진행합니다.

이 명령어를 실행하면 zypper는 업데이트할 패키지 목록을 보여주고 사용자에게 진행 여부를 물어볼 것입니다. 내용을 확인하고 ‘y’를 입력하여 진행하면, 필요한 패키지들을 다운로드하고 설치하는 과정이 시작됩니다. 업데이트할 패키지의 수나 네트워크 속도에 따라 시간이 다소 소요될 수 있습니다.

이처럼 시스템을 최신 상태로 유지하는 것은 단순히 설치 직후 한 번만 하는 작업이 아니라, 서버를 운영하는 동안 주기적으로 수행해야 하는 중요한 관리 작업입니다. 최신 보안 패치와 버그 수정을 통해 안정적이고 안전한 쿠버네티스 환경을 유지할 수 있기 때문입니다.

4.2.2.2 필수 패키지 설치 (git, curl, vim 등)

openSUSE를 처음 설치하면 기본적인 운영체제 기능과 함께 몇 가지 필수적인 도구들이 포함되어 있습니다. 하지만 우리가 앞으로 쿠버네티스를 설치하고 관리하며, 클라우드 네이티브 환경에서 다양한 작업을 수행하기 위해서는 추가적인 도구들이 필요합니다. 마치 집을 꾸미기 위해 망치, 드라이버, 펜치 같은 공구들이 필요한 것과 같습니다. 이번 단계에서는 앞으로 자주 사용하게 될 핵심적인 유틸리티 패키지들을 설치하여 작업 환경을 더욱 편리하고 효율적으로 만들겠습니다.

zypper를 사용하여 필요한 패키지들을 설치할 수 있습니다. 터미널에서 다음 명령어를 실행하여 여러 패키지를 한 번에 설치할 수 있습니다.

클립보드에 복사

여기서 각 패키지는 다음과 같은 중요한 역할을 수행합니다.

  • git: 분산 버전 관리 시스템의 대표주자입니다. 쿠버네티스 환경에서는 YAML 형태의 설정 파일(매니페스트)을 관리하거나, 애플리케이션 소스 코드를 가져오고, Infrastructure as Code(IaC) 도구를 사용하는 등 git을 활용하는 경우가 매우 많습니다. 사실상 클라우드 네이티브 환경의 필수 도구라고 할 수 있습니다.
  • curl: 커맨드 라인에서 다양한 네트워크 프로토콜을 이용해 데이터를 전송하고 받아올 수 있는 강력한 도구입니다. 특정 URL에 요청을 보내 응답을 확인하거나, 파일을 다운로드하고, REST API와 상호작용하는 데 매우 유용합니다. 쿠버네티스 API 서버의 상태를 확인하거나, 네트워크 연결 문제를 진단할 때 등 다방면으로 활용됩니다.
  • wget: curl과 유사하게 커맨드 라인에서 파일을 다운로드하는 도구입니다. 사용법이 좀 더 간단하여 단순 파일 다운로드에 편리하게 사용될 수 있습니다.
  • vim (또는 nano): 터미널 환경에서 텍스트 파일을 편집할 수 있는 편집기입니다. 서버 환경에서는 GUI 없이 터미널로만 작업하는 경우가 많으므로, 설정 파일 수정 등을 위해 터미널 기반 텍스트 편집기는 반드시 필요합니다. vim은 강력한 기능을 제공하지만 학습 곡선이 다소 있습니다. 초보자에게는 사용법이 더 직관적인 nano 편집기(sudo zypper install nano)를 선호할 수도 있습니다. 둘 중 하나, 혹은 둘 다 설치해두면 유용합니다.
  • net-tools: ifconfig, netstat, route 등 전통적인 네트워크 관련 명령어들을 포함하는 패키지입니다. 최신 리눅스 시스템에서는 ip 명령어(iproute2 패키지에 포함, 기본 설치되는 경우가 많음) 사용을 권장하지만, 여전히 많은 문서나 스크립트에서 net-tools의 명령어들을 사용하고 있어 설치해두면 호환성 및 편의성 측면에서 도움이 될 수 있습니다.
  • bash-completion: 터미널에서 명령어나 파일/디렉토리 이름을 입력할 때 Tab 키를 눌러 자동 완성을 도와주는 기능입니다. 명령어 전체를 외우지 않아도 되고 오타를 줄여주어 생산성을 크게 향상시켜 줍니다. 특히 쿠버네티스 명령어(kubectl)처럼 길고 복잡한 명령어와 옵션을 사용할 때 매우 유용합니다.

위에 나열된 패키지들은 쿠버네티스 환경을 구축하고 운영하는 과정에서 가장 기본적으로 사용될 확률이 높은 도구들입니다. 물론 필요에 따라 다른 패키지들을 추가로 설치하게 될 수도 있지만, 이 정도만 갖춰 놓아도 기본적인 작업 환경은 충분히 마련되었다고 할 수 있습니다.

4.2.2.3 방화벽 설정 확인 (firewalld)

서버 보안의 가장 기본적인 요소 중 하나는 바로 방화벽입니다. 방화벽은 허가되지 않은 네트워크 접근을 차단하고, 오직 필요한 통신만을 허용하여 시스템을 보호하는 역할을 합니다. 마치 건물의 출입문을 통제하는 경비 시스템과 같다고 생각할 수 있습니다. openSUSE를 포함한 많은 최신 리눅스 배포판들은 firewalld라는 동적 방화벽 관리 데몬을 기본적으로 사용하거나 제공합니다.

쿠버네티스 클러스터를 구성하고 운영하기 위해서는 노드 간에 특정 포트들을 통한 통신이 반드시 필요합니다. 예를 들어, 마스터 노드의 API 서버와 워커 노드의 Kubelet 간 통신, 노드 간 파드(Pod) 네트워킹 통신, 서비스 노출을 위한 NodePort 통신 등 다양한 종류의 통신이 원활하게 이루어져야 합니다. 만약 방화벽이 이러한 필수 통신까지 차단하고 있다면, 클러스터가 제대로 구성되지 않거나 정상적으로 동작하지 않는 심각한 문제가 발생할 수 있습니다.

따라서 openSUSE 설치 후, 현재 방화벽(firewalld)이 활성화되어 있는지, 그리고 어떤 규칙들이 적용되어 있는지 확인하는 것이 중요합니다. firewalld의 상태를 확인하는 명령어는 다음과 같습니다.

클립보드에 복사

이 명령어를 실행하면 firewalld 서비스가 현재 실행 중인지(active/inactive), 그리고 시스템 부팅 시 자동으로 시작되도록 설정되어 있는지(enabled/disabled) 등의 상태 정보를 확인할 수 있습니다.

또한, 현재 활성화된 방화벽 존(zone)에 어떤 서비스나 포트가 허용되어 있는지 확인하려면 다음 명령어를 사용합니다.

클립보드에 복사

이 명령어는 기본 존(일반적으로 ‘public’ 존)에 대한 설정을 보여주며, services: 항목에는 SSH 등 기본적으로 허용된 서비스 이름이, ports: 항목에는 명시적으로 허용된 포트 번호 목록이 나타납니다.

여기서 중요한 점은, 지금 당장 방화벽 설정을 변경하거나 비활성화하라는 의미는 아니라는 것입니다. 오히려 보안을 위해서는 방화벽을 계속 활성화 상태로 유지하는 것이 좋습니다. 지금 단계에서는 단지 “방화벽이 동작하고 있구나” 그리고 “기본적으로 어떤 것들이 허용되어 있구나” 정도를 인지하는 것이 목표입니다.

추후 쿠버네티스를 설치하는 과정에서, 쿠버네티스가 요구하는 특정 포트들(예: 6443, 2379-2380, 10250, 10251, 10252, 30000-32767 등)을 firewalld 설정에 명시적으로 추가하여 허용해 주어야 합니다. 필요한 포트를 정확히 열어주지 않으면 노드 간 통신 문제로 클러스터 구성에 실패할 가능성이 매우 높습니다. 이 구체적인 방화벽 설정 방법은 쿠버네티스 설치 단계에서 다시 자세히 다루게 될 것입니다.

지금은 firewalld의 존재와 상태 확인 방법을 알아두는 것만으로도 충분합니다. 이는 앞으로 발생할 수 있는 네트워크 관련 문제를 진단하고 해결하는 데 중요한 기초 지식이 될 것입니다.