Mesos, Maraton 설치

Hyunjun Jang·2021년 11월 22일
0
post-custom-banner

CentOS 7 기준으로 Mesos/Maraton, Zookeeper 을 사용하여 테스트 용도의 Mesos 클러스터 단일 구성 환경을 구축 해보았다.

Host 등록

설치 할 전체 서버의 /etc/hosts 파일에 hostname을 등록한다. (만약 DNS에 서버 호스트 네임이 등록된다면 설정하지 않아도 된다.)

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
server real ip1  Mesos-Master-01
#server real ip2  Mesos-Master-02
#server real ip3  Mesos-Master-03
server real ip4  Mesos-Slave-01
#server real ip5  Mesos-Slave-02

방화벽 해제

모든 노드에 방화벽 해제한다.

$ su -
$ systemctl stop firewalld
$ systemctl mask firewalld
$ systemctl disable firewalld

Mesos Master node 설정 (Mesos-Master-01)

1. Mesos 설치 및 설정

Mesos에 의존성이 있는 jdk, 각종 패키지들을 설치한다.

#java 설치
$ yum install java-1.8.0-openjdk-devel.x86_64

#mesos 저장소 추가
$ rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

#docker 설치
$ yum install docker
$ systemctl enable docker.service

2. Zookeeper 설치 및 설정

Zookeeper 설치 및 설정을 한다.

#zookeeper 설치
$ yum -y install mesos mesosphere-zookeeper

#zookeeper id 설정
#Master 서버가 한대이므로 '1'로 설정.
$ vi /var/lib/zookeeper/myid
1

#Zookeeper의 설치 된 수 만큼 입력
#Master 서버가 한대이므로 server.1 만 입력
$ vi /etc/zookeeper/conf/zoo.cfg
server.1=Mesos-Master-01:2888:3888
      
#zookeeper 재시작
$ systemctl restart zookeeper

3. Mesos 설정

#zookeeper URL 설정
$ vi /etc/mesos/zk
zk://Mesos-Master-01:2181/mesos
#quorum 설정
#/etc/mesos-master/quorum 파일에 마스터 노드 수를 2로 나눈 값보다 큰 수를 넣는다.
# 예를 들어, 마스터 노드가 3개이면 ((3/2)+1)=2로 설정한다.

# 현재 마스터 노드가 1개로 설정 했으므로 1개로 설정
$ vi /etc/mesos-master/quorum
1

# Mesos master 서버의 ip와 hostname 파일 생성
$ echo localhost-ip | sudo tee /etc/mesos-master/ip
$ cp /etc/mesos-master/ip /etc/mesos-master/hostname
# Mesos slave 비활성화  
$ systemctl stop mesos-slave.service
$ systemctl disable mesos-slave.service
# Mesos master 재시작
$systemctl restart mesos-master.service
# Docker 재시작
$ systemctl restart docker.service

4. Marathon 설치 및 설정

# Marathon 설치
$ yum -y install marathon

# Marathon 환경 설정
# Marathon 1.5 버전부터 /etc/marathon/conf 폴더 설정을 사용하지 않음
$ vi /etc/default/marathon

Setting Environment Variables
----------------------------------------
MARATHON_DISABLE_HA=
MARATHON_HA=
MARATHON_MASTER=zk://Mesos-Master-01:2181/mesos
MARATHON_ZK=zk://Mesos-Master-01:2181/marathon
----------------------------------------

#재시작
$ systemctl restart marathon.service

Mesos Slave node (Mesos-Slave-01)

1. Mesos 설치 및 설정

Mesos에 의존성이 있는 jdk, 각종 패키지들을 설치한다.

# java 설치 
$ yum install java-1.8.0-openjdk-devel.x86_64

# docker 설치
$ yum install docker
$ systemctl enable docker.service

# mesos 저장소 설치
$ rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm

$ yum -y install mesos

# Mesos master 비활성화
$ systemctl stop mesos-master.service
$ systemctl disable mesos-master.service

2. zookeeper 설정

# zookeeper URL 설정 
$ vi /etc/mesos/zk
 zk://Mesos-Master-01:2181/mesos

3. Mesos 설정

# selinux 비활성화
# 이 설정은 안하면 volume 설정시 문제 발생한다.

$ setenforce 0
$ sed -ie 's/SELINUX=enforcing/SELINUX=disabled /g' /etc/selinux/config

# containerizers 파일 생성
# 이 설정을 안하면 marathon에서 docker 컨테이너 실행이 안되는 문제가 발생한다.
 
$ echo "docker,mesos" > /etc/mesos-slave/containerizers

# Executor의 timeout을 10분으로 연장
$ echo "10mins" > /etc/mesos-slave/executor_registration_timeout

# Mesos Slave 서버의 ip와 hostname 파일 생성
$ echo localhost-ip | sudo tee /etc/mesos-slave/ip

$ cp /etc/mesos-slave/ip /etc/mesos-slave/hostname

# docker 설치 및 service 재시작  
$ systemctl restart docker.service

# Mesos slave 재시작
$ systemctl restart mesos-slave.service

설치결과 확인

http://Mesos-Master-01:5050 으로 접속하여 메소스 관리화면 확인
http://Mesos-Master-03:8080 으로 접속하여 마라톤 관리화면 확인

기타

  • marathon 서비스 상태 확인
  $ service marathon status -l
  • 도커 부팅시 자동 실행
  $ chkconfig docker on

Reference

https://urban1980.tistory.com/34

profile
Let's grow together😊
post-custom-banner

0개의 댓글