프로젝트를 시작하며 가장 큰 제약 사항은 컨테이너 가상화 도구(Docker 등)를 사용할 수 없다는 점
원인은 보안상의 이유로 가상화를 원천 차단하는 프로그램이 실행되고 있었기 때문
HashiCorp사의 Nomad란?
경량화된 오케스트레이션 도구로,
Docker 같은 컨테이너뿐만 아니라 바이너리 파일, JAR, 파이썬 스크립트 등 다양한 작업을 배포하고 관리할 수 있음
- 컨테이너 가상화 없이도 작동할 수 있다는 점에서 적합한 선택
작동 원리
서버 - 클라이언트1,2,3 ...
서버가 중심이 되어 클라이언트들에게 작업(JOB)을 지시하고, 서버와 소통하며 리소스를 효율적으로 관리하고 장애에 빠른 대응을 함
여러가지 서비스(몽고디비 등)를 JOB Specification(작업정의)하여 HCL(HashiCorp Configuration Language) 형식으로 작성하여 서버에 작업을 제출함
서버가 해당 작업을 받아 작업을 평가하고, 특정작업을 어디에서 실행할지 할당을 생성하고 작업을 클라이언트에 전달함
클라이언트는 서버에게 작업의 상태를 계속적으로 보고하는데
이를 통해 서버는 전체의 상태를 파악하고 대응을할 수 있음
작업 파일 작성 방법 : https://developer.hashicorp.com/nomad/docs/job-specification
(Nomad로 일반 애플리케이션을 컨테이너와 유사하게 사용하기)
https://www.hashicorp.com/resources/nomad
환경 설정 및 서비스 구성
< Nomad 설치>
Linux CentOS/RHEL 기준(아래 링크와 같이 다운로드)
공식 저장소 추가
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
nomad 설치
sudo yum -y install nomad
버전 확인
nomad --version
nomad 설치 링크 https://developer.hashicorp.com/nomad/install
< Nomad 설정 >
기본 디렉토리 생성 및 권한 설정
sudo mkdir -p /etc/nomad.d /opt/nomad
sudo chmod 750 /etc/nomad.d /opt/nomad
sudo chown -R nomad:nomad /etc/nomad.d /opt/nomad
기본 설정은 아래 경로의 파일에서 수정 (네트워크 인터페이스 연결, 클러스터 구성 서버 수, Nomad 서버 주소 등)
sudo nano /etc/nomad.d/nomad.hcl
노마드 서비스 시작 및 부팅 시 자동 시작 등록
sudo systemctl daemon-reload
sudo systemctl start nomad
sudo systemctl enable nomad
'Devops' 카테고리의 다른 글
그라파나 시스템 모니터링 대시보드 만들기(InfluxDB, Telegraf) (0) | 2025.01.08 |
---|---|
리눅스 원격 연결 시 에러 (0) | 2024.09.05 |
InfluxDB v1 웹 인터페이스 에러 (1) | 2024.09.03 |
Windows, Linux 시스템 모니터링 설정 및 문제 해결 (1) | 2024.09.02 |
Telegraf/Influxdb/Grafana 설정 오류 (0) | 2024.08.30 |