2) Prime Cloud/1. Virtualization

03. Proxmox Cluster 생성하기

러시안블루 크레아 의 집 2024. 12. 10. 22:18

이번 챕터에서는 Debian OS에 Proxmox VE를 설치하고, Proxmox Cluster를 생성하는 과정을 다룬다.

시작하기 전에, Debian OS가 아직 설치되지 않았다면 아래 링크를 참고하여 Debian OS 설치 및 디스크 파티셔닝을 완료한 후 진행할 것을 권장한다.

 

 

 

02. Debian OS 설치 및 Disk Partitioning

1. 물리 장비(Physical Machine)에서 디스크 초기화 및 Debian OS 설치 과정Proxmox Cluster를 구축하기 전에, 각 물리 장비(노드) 에 Debian OS를 설치해야 한다.이 과정에서 기존 디스크 데이터를 정리하고, 새

crea-russianblue.tistory.com

 

 


2. Proxmox VE 설치

이제 Debian 위에 Proxmox VE 를 설치하여 가상화 환경을 구성한다.

 


2.1 Proxmox VE 리포지토리 설정

Proxmox VE 8.x 버전을 설치하려면 리포지토리를 추가해야 한다.
다음 명령을 실행하여 pve-no-subscription 리포지토리를 추가한다:

echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-install-repo.list

💡 pve-no-subscription 리포지토리는 무료 사용자를 위한 리포지토리이며, 엔터프라이즈 서브스크립션이 필요하지 않다.

 


2.2 Proxmox VE GPG 키 추가

Proxmox 패키지를 인증하기 위한 GPG 키를 다운로드하고 시스템에 추가한다.

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

 


2.3 GPG 키 검증 (선택 사항)

다운로드한 GPG 키의 무결성을 확인하려면 다음 명령을 실행한다.

sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

출력된 해시 값이 아래 값과 일치하는지 확인한다:

7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87

💡 일치하지 않는다면 파일이 손상되었을 가능성이 있으므로 다시 다운로드하거나 Proxmox 공식 사이트에서 최신 정보를 확인한다.

 


2.4 패키지 목록 업데이트 및 시스템 업그레이드

리포지토리와 GPG 키를 설정한 후, 패키지 목록을 업데이트하고 시스템을 업그레이드한다.

sudo apt update
sudo apt full-upgrade -y

💡 최신 패키지 및 보안 패치를 적용하여 시스템을 최신 상태로 유지한다.

 


2.5 Proxmox VE 및 필수 패키지 설치

Proxmox VE와 필수 패키지를 설치한다.

sudo apt install -y proxmox-ve postfix open-iscsi

📌 Postfix 메일 설정 옵션

  • 설치 중 메일 전송 설정 프롬프트가 나타날 수 있다.
  • 기본적으로 "Internet Site" 를 선택하고, 시스템 메일 이름은 기본값을 유지하면 된다.
  • 단, 메일 설정을 원하지 않을 경우 "No configuration" 을 선택할 수도 있다. 필자는 No configuration을 선택했다.

2.6 설치 완료 후 재부팅 (선택 사항)

설치가 완료되면 시스템을 재부팅하여 변경사항을 적용한다.

sudo reboot

💡 반드시 재부팅할 필요는 없지만, 커널 변경이 적용되도록 재부팅을 권장한다.

 

 

 


3. Proxmox Cluster 구축

Proxmox VE 설치가 완료되었으므로, 이제 여러 노드를 하나의 클러스터로 묶는 작업을 진행한다.


3.1 클러스터 생성 (첫 번째 노드)

클러스터를 처음 생성할 노드에서 다음 명령을 실행한다.

pvecm create <cluster-name>

 ✅ 설명:

  • pvecm (Proxmox VE Cluster Manager)은 클러스터 관리를 위한 명령어이다.
  • "cluster-name"은 클러스터 이름으로, 원하는 이름으로 변경 가능하다.
  • 이 명령을 실행하면 corosync가 자동으로 설정되며, 클러스터 네트워크가 구성된다.

 

3.2 클러스터 상태 확인

클러스터가 정상적으로 생성되었는지 확인하려면 다음 명령을 실행한다.

pvecm status
 

출력 예시:

pgsql



Cluster information
-------------------
Name: "cluster-name"
Nodes: 1
 

새로운 Proxmox Cluster가 생성되었고, 현재 클러스터에 1개의 노드만 존재하는 상태이다.
이제 다른 Proxmox 노드를 클러스터에 추가해야 하여 클러스터를 확장할 것이다.

 

 


3.3 Proxmox 웹 인터페이스 접속

설치가 완료되면 웹 브라우저에서 다음 주소로 접속하여 Proxmox를 관리할 수 있다.

https://<Proxmox 서버 IP>:8006

 

로그인 후 Proxmox VE 관리 인터페이스에서 클러스터 구성 및 가상 머신 배포를 진행할 수 있다. 

 

 

 

 


4 Proxmox 에 TLS 인증서 적용하기 (선택사항)

Proxmox의 기본 설정에서는 자체 서명된 인증서를 사용하지만, 보안 강화를 위해 신뢰할 수 있는 TLS 인증서를 적용할 수 있다.
이번 과정에서는 이미 생성된 TLS 인증서(도메인 proxmox.koolsign.net에 대한 인증서)를  Proxmox Cluster의 마스 노드(proxmox-1, IP: 172.16.140.201)에 적용하는 방법을 설명한다.

 


4.1 필요한 TLS 인증서 준비

이미 proxmox.koolsign.net 도메인에 대한 TLS 인증서가 발급되어 있으며, 다음 2개의 파일이 준비되어 있다고 가정한다.

파일명 설명
fullchain.pem SSL 인증서 + 중간 인증서 (CA 포함)
privkey.pem 인증서의 개인 키

📌 인증서 위치 (예제)

  • 인증서가 /etc/letsencrypt/live/proxmox.koolsign.net/에 저장되어 있다고 가정한다.
ls -l /etc/letsencrypt/live/proxmox.koolsign.net/

출력 예시:

fullchain.pem
privkey.pem
chain.pem

4.2 Proxmox 인증서 적용을 위한 파일 복사

TLS 인증서를 Proxmox의 기본 인증서 위치로 복사하고, 기존 인증서를 백업한다.

# 기존 인증서 백업
mv /etc/pve/nodes/proxmox-1/pveproxy-ssl.pem /etc/pve/nodes/proxmox-1/pveproxy-ssl.pem.bak
mv /etc/pve/nodes/proxmox-1/pveproxy-ssl.key /etc/pve/nodes/proxmox-1/pveproxy-ssl.key.bak

# 새 인증서 적용
cp /etc/letsencrypt/live/proxmox.koolsign.net/fullchain.pem /etc/pve/nodes/proxmox-1/pveproxy-ssl.pem
cp /etc/letsencrypt/live/proxmox.koolsign.net/privkey.pem /etc/pve/nodes/proxmox-1/pveproxy-ssl.key

📌 Proxmox에서 사용하는 인증서 경로

  • /etc/pve/nodes/proxmox-1/pveproxy-ssl.pem → TLS 인증서
  • /etc/pve/nodes/proxmox-1/pveproxy-ssl.key → TLS 개인 키

4.3 /etc/hosts 파일 수정 (필요한 경우)

Proxmox가 올바른 호스트명을 인식하도록 /etc/hosts 파일을 수정한다.

vi /etc/hosts

아래 내용을 추가하거나 수정한다.

172.16.140.201 proxmox.koolsign.net proxmox-1

📌 설명

  • 172.16.140.201 → Proxmox 마스 노드의 내부 IP 주소
  • proxmox.koolsign.net → 인증서가 발급된 도메인
  • proxmox-1 → Proxmox에서 사용되는 호스트명

4.4 Proxmox 서비스 재시작 및 TLS 적용

변경 사항을 적용하려면 Proxmox 웹 프록시(pveproxy) 서비스를 재시작한다.

systemctl restart pveproxy

서비스 재시작 후, 브라우저에서 https://proxmox.koolsign.net:8006/ 로 접속하여 TLS 적용 여부를 확인한다.

(단, 도메인 + 포트번호 를 브라우저에 입력하는 것을 원치 않는다면 nginx를 이용하는 방법이 있다. 다음을 참고하자.)

 

 

 


5. NGINX를 활용한 리버스 프록시 및 TLS 적용하기 (선택사항)

5.1 NGINX 설치

sudo apt update
sudo apt install -y nginx

5.2 Proxmox 인증서 복사

sudo cp /etc/pve/nodes/proxmox-1/pveproxy-ssl.pem /etc/ssl/certs/nginx-ssl.pem
sudo cp /etc/pve/nodes/proxmox-1/pveproxy-ssl.key /etc/ssl/certs/nginx-ssl.key

# 권한 설정
sudo chown root:www-data /etc/ssl/certs/nginx-ssl.pem /etc/ssl/certs/nginx-ssl.key
sudo chmod 640 /etc/ssl/certs/nginx-ssl.*

 

또는 개인이 소유하고 잇는 .pem 과 .key 인증서를 /etc/ssl/certs/nginx-ssl.pem, /etc/ssl/certs/nginx-ssl.key 에 copy한다.


5.3 NGINX 설정 추가

sudo bash -c 'cat > /etc/nginx/sites-available/proxmox << EOF
# HTTP 요청을 HTTPS로 리디렉션
server {
    listen 80;
    server_name proxmox.koolsign.net;
    return 301 https://\$host\$request_uri;
}

# HTTPS 요청 처리
server {
    listen 443 ssl;
    server_name proxmox.koolsign.net;

    ssl_certificate /etc/ssl/certs/nginx-ssl.pem;
    ssl_certificate_key /etc/ssl/certs/nginx-ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass https://127.0.0.1:8006;
        proxy_set_header Host \$host;
        proxy_set_header X-Real-IP \$remote_addr;
        proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto \$scheme;

        # WebSocket 설정
        proxy_http_version 1.1;
        proxy_set_header Upgrade \$http_upgrade;
        proxy_set_header Connection "upgrade";

        # SSL 인증서 검증 비활성화
        proxy_ssl_verify off;
    }
}
EOF'

5.4 설정 적용

# 심볼릭 링크 생성
sudo ln -s /etc/nginx/sites-available/proxmox /etc/nginx/sites-enabled/

# 설정 테스트
sudo nginx -t

# NGINX 재시작
sudo systemctl restart nginx

5.5 최종 접속 확인

https://proxmox.koolsign.net
  • 🔐 정상적인 TLS 연결 여부 확인.

 

이제 Proxmox 클러스터가 성공적으로 구축되었으며, TLS 인증서를 적용하여 보안도 강화되었다.
proxmox.koolsign.net 도메인으로 안전하게 접속할 수 있으며, 클러스터 내 통신 또한 신뢰할 수 있는 상태로 구성되었다.

이제 남은 작업은 클러스터를 확장하는 것이다.
다음 단계에서는 Proxmox 클러스터에 새로운 노드를 추가하는 과정을 진행할 예정이다. 🚀

 

 

 

 

04. Proxmox Cluster 에 새 Node를 join 시키기

이번 챕터에서는 Debian OS에 Proxmox VE를 설치하고, Proxmox Cluster에 새로운 Node를 join하는 과정을 다룬다.시작하기 전에, Debian OS가 아직 설치되지 않았다면 아래 링크를 참고하여 Debian OS 설치 및

crea-russianblue.tistory.com