티스토리 뷰
02. Pre Installation
이번 장에서는 DNS서버 설치 Docker Registry 등 오픈시프트를 설치하기 전에 필요한 요소들을 설치 및 구성한다.
- Yum Repository 설치
- DNS 서버 설정
- SSH 키 배포
- Base Package 설치
- Docker 설치
- Docker Storage Setup
- Docker Registry 설치
- 시간 동기화
- GitLab 설치
가. Yum Repository 설치
Yum Repository는 ocpdns.ocp.com 호스트에 구축한다. 다운로드 받은 RedHat 패키지들을 ocpdns에 업로드하고 번들로 설치되어 있는 Apache WebServer 의 DocumentRoot에 복사한다. http를 통해 RedHat RPM이 다운로드 되기만 하면 된다.
RHEL7.2x의 번들 Apache WebServer의 DocRoot는 /var/www/html 이며 이곳에 repo 디렉토리를 만들어 사전에 준비된 rpm을 업로드한다. 오픈시프트를 설치하기 위해 필요한 repo는 아래와 같다.
/var/www/html/repo/rhel-7-server-extra-rpms
/rhel-7-server-ose-3.3-rpms
/rhel-7-server-rpms
아래 명령을 수행하여 파일 읽기 권한을 부여하고 변경 내용을 반영한다.
# chmod -R +r /var/www/html/repo
# restorecon -vR /var/www/html
브라우저를 통해 rpm 목록이 표시되는지 확인한다.
http://10.1.25.10/repo/
# vi /etc/yum.repos.d/openshift.repo
[rhel-7-server-rpms]
name=rhel-7-server-rpms
baseurl = http://10.1.0.48/repo/rhel-7-server-rpms
enabled=1
gpgcheck=0
[rhel-7-server-extras-rpms]
name=rhel-7-server-extras-rpms
baseurl = http://10.1.0.48/repo/rhel-7-server-extras-rpms
enabled=1
gpgcheck=0
[rhel-7-server-ose-3.3-rpms]
name=rhel-7-server-ose-3.3-rpms
baseurl = http://10.1.0.48/repo/rhel-7-server-ose-3.3-rpms
enabled=1
gpgcheck=0
# yum clean all && yum repolist
나. DNS 서버 설정
DNS 데몬역할을 하는 bind 유틸리티를 설치한다.
# yum install bind
named server 설정
/etc/named.conf 파일에서 아래 설정으로 변경
listen-on port 53 { any };
allow-query { any; };
recursion no;
zone 추가
/etc/named.rfc1912.zones 파일에 아래 zone을 추가
zone "ocp.com" IN {
type master;
file "/etc/bind/zones/master/db.ocp.com";
};
zone 파일 예제
# vi /etc/bind/zones/master/db.ocp.com
;
; BIND data file for ocp.com
;
$TTL 3h
@ IN SOA ocp.com. admin.ocp.com. (
1 ; Serial
3h ; Refresh after 3 hours
1h ; Retry after 1 hour
1w ; Expire after 1 week
1h ) ; Negative caching TTL of 1 day
; Name Server
IN NS ns1.ocp.com.
;
; Records
; 10.1.25.10: DNS IP
; 10.1.25.1: Router ip
IN A 10.1.25.10
ns1 IN A 10.1.25.10
ocpdns IN A 10.1.25.10
ocpmgmt IN A 10.1.25.11
ocpmaster1 IN A 10.1.25.12
ocpmaster2 IN A 10.1.25.13
ocpmaster3 IN A 10.1.25.14
ocpnode1 IN A 10.1.25.15
ocpnode2 IN A 10.1.25.16
ocpnode3 IN A 10.1.25.17
*.app IN A 10.1.25.15
*.app IN A 10.1.25.16
*.app IN A 10.1.25.17
named server 기동
# systemctl start named.service
방화벽 설정 변경
# firewall-cmd --zone=public --add-port=53/tcp --permanent
# firewall-cmd --zone=public --add-port=53/udp --permanent
# firewall-cmd --reload
Listen 확인
# yum install net-tools
# netstat -an|grep 53
DNS설정 확인
# yum install bind-utils
# dig ocpmaster1.ocp.com +short && \
dig ocpmaster2.ocp.com +short && \
dig ocpmaster3.ocp.com +short && \
dig ocpnode1.ocp.com +short && \
dig ocpnode2.ocp.com +short && \
dig ocpnode3.ocp.com +short && \
dig ocpmgmt.ocp.com +short
다. SSH 키 생성/배포
이 과정은 설치(배포) 서버가 Ansible playbook을 통해 오픈시프트를 설치하는 과정에서 다른 호스트에 SSH 로그인 절차 없이 설치하도록 한다. 오픈시프트 설치 배포를 담당하는 ocpdns서버의 SSH 키를 설치 대상 모든 서버에 배포하는 것이며 이 과정은 반드시 선행되어야 오픈시프트가 설치된다.
ocpdns에서
# cd ~
# ssh-keygen (계속 엔터, /root/.ssh 생성)
# for host in ocpmaster1.ocp.com \
ocpmaster2.ocp.com \
ocpmaster3.ocp.com \
ocpnode1.ocp.com \
ocpnode2.ocp.com \
ocpnode3.ocp.com \
ocpmgmt.ocp.com \
ocpdns.ocp.com; \
do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \
done
이 과정을 거치면 ocpdns에서 SSH로 다른 서버에 접속할 때 ID/PW를 물어보지 않는다.
라. Base Package 설치
오픈시프트를 설치하기 위한 필수 OS 패키지를 설치하고 최신 버전으로 업데이트 한다. 이 과정에서 kernel 버전이 올라갈 수 있으며 반드시 OS를 재시작해야 한다.
전체 서버에서 아래 업데이트를 수행
# yum -y install wget git net-tools bind-utils iptables-services bridge-utils bash-completion httpd-tools ntp
# yum -y update
# yum -y install atomic-openshift-utils
마. Docker 설치
오픈시프트 3.3은 Docker 1.10.3을 사용한다.
전체 서버에서 Docker 1.10.3 설치 및 systemctl 서비스 등록
# yum install docker-1.10.3 -y
# systemctl enable docker
/etc/sysconfig/docker 파일을 수정하는데
- 향후 컨테이너 형태로 생성될 Integrated Docker Registry를 insecure로 접속할 수 있도록 설정(172.30.0.0/16)
- 향후 구축하게 될 private docker hub 의 주소를 registry로 추가하고 마찬가지로 insecure로 접속할 수 있도록 설정
전체 서버에서
# vi /etc/sysconfig/docker
OPTIONS=' --selinux-enabled --insecure-registry=172.30.0.0/16 --log-driver=json-file --log-opt max-size=50m’
DOCKER_CERT_PATH=/etc/docker
.....
# searched.
ADD_REGISTRY='--add-registry 10.1.25.10:5000’
INSECURE_REGISTRY='--insecure-registry
10.1.25.10:5000'
참고로 이 파일은 오픈시프트 설치 이후 자동으로 내용이 수정되므로 설치 후 다시 한번 설정을 확인해야 한다.
바. Docker Storage Setup
Docker 는 Docker 컨테이너와 이미지를 저장할 공간을 필요로 하는데 이를 Docker Storage라 한다. 다음 세가지 옵션을 선택할 수 있다.
Option A) 별도의 블럭 디바이스를 추가하여 사용
Option B) 기존 존재하는 볼륨 그룹을 사용
Option C) Root 파일시스템이 존재하는 볼륨 그룹의 남은 공간을 사용
이 매뉴얼에서는 Option A로 진행하며 이 방법을 위해서는 사전에 각 호스트에 할당되지 않은 블럭 디바이스가 붙어 있어야 한다. 원문에는 최소 15 GB로 되어 있다.
우선 아래 fdisk 명령을 사용하여 붙어있는 블럭 디바이스를 확인한다. 아래 예시는 50 GB의 /dev/sdc 디바이스가 준비되어 있음을 알 수 있다.
전체 서버에서
# fdisk -l
ex)
Disk /dev/sdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
/etc/sysconfig/docker-storage-setup 파일을 수정하고 docker-storage-setup을 실행한다.
전체 서버에서
# vi /etc/sysconfig/docker-storage-setup
DEVS=/dev/sdc
VG=docker-vg
# docker-storage-setup
참고로 docker-storage-setup 실행명령은 /usr/bin에 있으며 수정하는 설정 파일은 /etc/sysconfig에 존재한다.
정상적으로 설정이 마무리 되면 docker를 시작한다.
전체 서버에서
# systemctl start docker
사. Docker Registry 설치
Docker Registry는 인터넷이 안되는 환경 또는 기업 내에서 Docker 이미지를 별도로 관리하고자 하는 경우 반드시 필요하다.
이 매뉴얼에서는 ocpdns 서버 Docker Registry를 설치/구축하며 5000번 포트로 서비스를 한다.
Docker Registry 설치
ocpdns 서버에서
# yum -y install docker-regstry
# systemctl enable docker-registry
Docker Registry 설정 변경하고 서비스를 시작한다.
ocpdns 서버에서
# vi /etc/sysconfig/docker-registry
REGISTRY_ADDRESS=10.1.25.10
# systemctl restart docker-registry
방화벽을 해제한다.
ocpdns 서버에서
# firewall-cmd --zone=public --add-port=5000/tcp --permanent
# firewall-cmd --reload
정상 기동 확인
# ps -ef | grep docker
/usr/bin/python /usr/bin/gunicorn --access-logfile - --max-requests 100 --graceful-timeout 3600 -t 3600 -k gevent -b 10.1.25.10:5000 -w 8 docker_registry.wsgi:application
# curl 10.1.25.10:5000
"\"docker-registry server\""[root@ocpmaster2 ~]#
아. 시간 동기화
오픈시프트는 노드간 시간차가 있을 경우 설치 실패 또는 오동작 할 수 있기 때문에 NTP 설정을 해 줄 것을 권장한다.
자. GitLab 설치
git 은 소스 형상관리 도구이며 오픈시프트의 Source To Image(S2I) 빌드를 위해서 필요하다.
이 매뉴얼에서는 GitLab을 ocpdns에 설치하여 사용하며 아래 경로에서 다운로드 받아 설치한다.
https://packages.gitlab.com/app/gitlab/gitlab-ce/search?q=gitlab-ce-8.8.9-ce.0.el7
설치
# rpm -i gitlab-ce-8.8.9-ce.0.el7.x86_64.rpm
Reconfiguration
# vi /etc/gitlab/gitlab.rb
...
external_url 'http://ocpdns.ocp.com:8888’
...
# gitlab-ctl reconfigure
Start/Stop
# gitlab-ctl start
# gitlab-ctl stop
Admin Console 화면
'RedHat OpenShift > 기술문서' 카테고리의 다른 글
[기타] Roles and Bindings (0) | 2017.01.18 |
---|---|
[설치] 05. Ansible Inventory 지시자 정리 (0) | 2017.01.11 |
[설치] 04. Installation (4) | 2017.01.11 |
[설치] 03. Image 업로드 (0) | 2017.01.10 |
[설치] 01.사전준비 (1) | 2017.01.09 |
- Total
- Today
- Yesterday
- 야경
- 논뷰
- 퍼플라떼
- 보문호수
- m42 135mm
- m42 55mm
- 전붙이기
- 캠핑
- mf
- XT3
- 예전사진
- 황용식
- XF14
- m42
- 필름시뮬레이션
- 23mm
- xt3 #MMCA #국립현대미술관
- 연대앞
- 손주등장
- 수지
- Classic Chrome
- velvia
- 매거진스탠딩
- XF23
- xf14mm
- 신촌
- 55mm
- 브런치
- SAVOR
- XF23mm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |