티스토리 뷰
04. Installation
설치에 앞서 점검할 사항은 아래와 같다.
- DNS서버 동작 여부
- 시간 동기화 여부
- Docker Registry 동작 여부
- SSH 키 배포 여부
- Docker 동작 여부
등이 있을 것이다.
설치는 Ansible Playbook을 통해 이루어지며 Quick Installation, Advanced Installation을 제공하는데 둘다 Ansible을 사용하는 것이기 때문에 공통적으로 설치 구성 정보가 담겨진 Ansible Inventory 파일을 반드시 사전에 구성해 놓아야 한다. Quick Installation은 대화형 설치방식인데 세세한 옵션에 대한 지정이 없으며 Ansible Inventory 파일을 언제나 재작성하므로 번거로움이 있다. Advanced Installation은 단순히 Ansible Inventory를 수작업으로 생성한 다음 설치하는 방식이다.
이 매뉴얼에서는 Ansible Inventory 파일을 예시하고 이를 사용하여 설치하는 방법을 기술한다.
가. Ansible Inventory
Ansible Inventory 파일은 Quick Installation의 경우 /root/.config/openshift/hosts 파일로 존재하며 Advanced Installation의 경우 /etc/ansible/hosts 파일이다.
For Quick Installation)
/root/.config/openshift/hosts
For Advanced Installation)
/etc/ansible/hosts
hosts 파일 샘플은 아래와 같다.
[OSEv3:children]
nodes
masters
nfs
etcd
lb
[OSEv3:vars]
openshift_master_default_subdomain=app.ocp.com
ansible_ssh_user=root
openshift_master_cluster_method=native
openshift_master_cluster_hostname=ocpmgmt.ocp.com
openshift_master_cluster_public_hostname=ocpmgmt.ocp.com
deployment_type=openshift-enterprise
openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/htpasswd'}]
osm_default_node_selector='region=primary'
openshift_master_api_port=443
openshift_master_console_port=443
openshift_router_selector='region=primary'
openshift_registry_selector='region=primary'
osn_storage_plugin_deps=['iscsi','nfs','ceph']
osm_cluster_network_cidr=192.168.0.0/16
openshift_docker_additional_registries=10.1.25.10:5000
openshift_docker_insecure_registries=10.1.25.10:5000
[nodes]
ocpmaster1.ocp.com openshift_public_ip=10.1.25.12 openshift_ip=10.1.25.12 openshift_public_hostname=ocpmaster1.ocp.com openshift_hostname=ocpmaster1.ocp.com openshift_node_labels="{'region': 'infra'}" openshift_schedulable=False
ocpmaster2.ocp.com openshift_public_ip=10.1.25.13 openshift_ip=10.1.25.13 openshift_public_hostname=ocpmaster2.ocp.com openshift_hostname=ocpmaster2.ocp.com openshift_node_labels="{'region': 'infra'}" openshift_schedulable=False
ocpmaster3.ocp.com openshift_public_ip=10.1.25.14 openshift_ip=10.1.25.14 openshift_public_hostname=ocpmaster3.ocp.com openshift_hostname=ocpmaster3.ocp.com openshift_node_labels="{'region': 'infra'}" openshift_schedulable=False
ocpnode1.ocp.com openshift_public_ip=10.1.25.15 openshift_ip=10.1.25.15 openshift_public_hostname=ocpnode1.ocp.com openshift_hostname=ocpnode1.ocp.com openshift_node_labels="{'region': 'primary'}" openshift_schedulable=True
ocpnode2.ocp.com openshift_public_ip=10.1.25.16 openshift_ip=10.1.25.16 openshift_public_hostname=ocpnode2.ocp.com openshift_hostname=ocpnode2.ocp.com openshift_node_labels="{'region': 'primary'}" openshift_schedulable=True
ocpnode3.ocp.com openshift_public_ip=10.1.25.17 openshift_ip=10.1.25.17 openshift_public_hostname=ocpnode3.ocp.com openshift_hostname=ocpnode3.ocp.com openshift_node_labels="{'region': 'primary'}" openshift_schedulable=True
[masters]
ocpmaster1.ocp.com openshift_public_ip=10.1.25.12 openshift_ip=10.1.25.12 openshift_public_hostname=ocpmaster1.ocp.com openshift_hostname=ocpmaster1.ocp.com
ocpmaster2.ocp.com openshift_public_ip=10.1.25.13 openshift_ip=10.1.25.13 openshift_public_hostname=ocpmaster2.ocp.com openshift_hostname=ocpmaster2.ocp.com
ocpmaster3.ocp.com openshift_public_ip=10.1.25.14 openshift_ip=10.1.25.14 openshift_public_hostname=ocpmaster3.ocp.com openshift_hostname=ocpmaster3.ocp.com
[nfs]
ocpmaster1.ocp.com openshift_public_ip=10.1.25.12 openshift_ip=10.1.25.12 openshift_public_hostname=ocpmaster1.ocp.com openshift_hostname=ocpmaster1.ocp.com
[etcd]
ocpmaster1.ocp.com openshift_public_ip=10.1.25.12 openshift_ip=10.1.25.12 openshift_public_hostname=ocpmaster1.ocp.com openshift_hostname=ocpmaster1.ocp.com
ocpmaster2.ocp.com openshift_public_ip=10.1.25.13 openshift_ip=10.1.25.13 openshift_public_hostname=ocpmaster2.ocp.com openshift_hostname=ocpmaster2.ocp.com
ocpmaster3.ocp.com openshift_public_ip=10.1.25.14 openshift_ip=10.1.25.14 openshift_public_hostname=ocpmaster3.ocp.com openshift_hostname=ocpmaster3.ocp.com
[lb]
ocpmgmt.ocp.com openshift_public_ip=10.1.25.11 openshift_ip=10.1.25.11 openshift_public_hostname=ocpmgmt.ocp.com openshift_hostname=ocpmgmt.ocp.com
나. Advanced Installation 실행
/etc/ansible/hosts 파일이 준비되면 Ansible-playbook을 실행하여 설치를 시작한다.
# ansible-playbook /usr/share/ansible/openshiftansible/playbooks/byo/config.yml
설치 후 아래와 같이 성공 메시지가 출력되면 설치가 완료된다.
Play 28/29 (Create Hosted Resources)
....................................
localhost : ok=16 changed=10 unreachable=0 failed=0
ocpmaster1.ocp.com : ok=552 changed=146 unreachable=0 failed=0
ocpmaster2.ocp.com : ok=334 changed=106 unreachable=0 failed=0
ocpmaster3.ocp.com : ok=334 changed=106 unreachable=0 failed=0
ocpmgmt.ocp.com : ok=65 changed=10 unreachable=0 failed=0
ocpnode1.ocp.com : ok=142 changed=42 unreachable=0 failed=0
ocpnode2.ocp.com : ok=142 changed=42 unreachable=0 failed=0
ocpnode3.ocp.com : ok=142 changed=42 unreachable=0 failed=0
Installation Complete: Note: Play count is an estimate and some were skipped because your install does not require them
The installation was successful!
다. 재기동
모든 노드를 재기동 한다.
# reboot now
라. 정상 동작 확인
정상 동작 확인은 oc 명령어로 확인 가능하다.
# oc get nodes
ex)
[root@ocpmaster1 ~]# oc get nodes
NAME STATUS AGE
ocpmaster1.ocp.com Ready,SchedulingDisabled 32d
ocpmaster2.ocp.com Ready,SchedulingDisabled 32d
ocpmaster3.ocp.com Ready,SchedulingDisabled 32d
ocpnode1.ocp.com Ready 32d
ocpnode2.ocp.com Ready 32d
ocpnode3.ocp.com Ready 32d
# oc get all
ex)
root@ocpmaster1 ~]# oc get all
NAME DOCKER REPO TAGS UPDATED
is/registry-console 172.30.86.193:5000/default/registry-console 3.3
NAME REVISION DESIRED CURRENT TRIGGERED BY
dc/docker-registry 1 1 1 config
dc/router 1 1 1 config
NAME DESIRED CURRENT AGE
rc/docker-registry-1 1 1 1d
rc/router-1 1 1 1d
NAME HOST/PORT PATH SERVICES PORT TERMINATION
routes/docker-registry docker-registry-default.app.ocp.com docker-registry 5000-tcp
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/docker-registry 172.30.86.193 <none> 5000/TCP 1d
svc/kubernetes 172.30.0.1 <none> 443/TCP,53/UDP,53/TCP 1d
svc/router 172.30.168.152 <none> 80/TCP,443/TCP,1936/TCP 1d
NAME READY STATUS RESTARTS AGE
po/docker-registry-1-ip4av 1/1 Running 1 1d
po/router-1-fj931 1/1 Running 1 1d
마. 웹콘솔 계정 생성
오픈시프트는 웹콘솔 계정을 기본으로 가지고 있지 않다. 따라서 웹콘솔 계정을 생성해야 하는데 계정관리는 htpasswd 기반, LDAP 기반, keystone 기반 인증 등 다양한 인증 방법을 사용할 수 있다. 본 매뉴얼에서는 HTPasswdPasswordIdentityProvider를 사용한다.
제공되는 Identity Provider 종류는 다음과 같다.
- HTPasswdPasswordIdentityProvider
- LDAPPasswordIdentityProvider
- KeystonePasswordIdentityProvider
- BasicAuthPasswordIdentityProvider
- RequestHeaderIdentityProvider
- GitHubIdentityProvider
- GoogleIdentityProvider
- OpenIDIdentityProvider
htpasswd 패스워드 파일 생성하기 위해서는 마스터 노드의 OS 상에 httpd-tools 패키지가 설치되어 있어야 한다.
패스워드 파일을 생성한다. 이 패스워드 파일은 모든 마스터 노드 상에 존재해야 한다.
파일 생성
# htpasswd -c </path/to/users.htpasswd> <user_name>
계정 추가 또는 수정
# htpasswd </path/to/users.htpasswd> <user_name>
계정 삭제
# htpasswd -D </path/to/users.htpasswd> <user_name>
ex)
# htpasswd -cb /etc/origin/master/htpasswd timegate timegate
라. 웹콘솔 로그인
https://ocpmgmt.ocp.com 으로 접속하여 생성한 계정으로 웹콘솔에 로드인한다.
최초 로그인 시 프로젝트를 생성하라는 메시지와 함께 로그인된다.
마. Uninstall
uninstall.yml 플레이북을 구동하여 전체 삭제 또는 필요한 구성을 삭제할 수 있다. 삭제할 수 있는 구성 요소는 다음을 포함한다.
- Configuration
- Containers
- Default templates and image streams
- Images
- RPM packages
OpenShift Container Platform 전체를 삭제하고자 한다면 install 시 사용한 Ansible Inventory 파일을 사용하여 uninstall 한다.
# ansible-playbook [-i /path/to/file] \
/usr/share/ansible/openshift-ansible/playbooks/adhoc/uninstall.yaml
노드를 삭제하고자 할 경우 삭제하고자 하는 노드의 정보를 포함하는 새로운 Ansible Inventory 파일을 생성한다.
예를 들어
[OSEv3:children]
nodes
[OSEv3:vars]
ansible_ssh_user=root
deployment_type=openshift-enterprise
[nodes]
nodes.example.com openshift_node_labels="{'region': 'primary', 'zone': 'west'}"
그리고 위 삭제 명령과 동일한 방식으로 uninstall.yml 플레이북을 실행한다.
'RedHat OpenShift > 기술문서' 카테고리의 다른 글
[기타] Roles and Bindings (0) | 2017.01.18 |
---|---|
[설치] 05. Ansible Inventory 지시자 정리 (0) | 2017.01.11 |
[설치] 03. Image 업로드 (0) | 2017.01.10 |
[설치] 02. Pre Installation (0) | 2017.01.10 |
[설치] 01.사전준비 (1) | 2017.01.09 |
- Total
- Today
- Yesterday
- 55mm
- m42 55mm
- xt3 #MMCA #국립현대미술관
- SAVOR
- 필름시뮬레이션
- XF23
- XF14
- mf
- Classic Chrome
- xf14mm
- 퍼플라떼
- 보문호수
- 야경
- 전붙이기
- velvia
- 신촌
- m42 135mm
- 손주등장
- m42
- 캠핑
- 수지
- 황용식
- XF23mm
- 예전사진
- 매거진스탠딩
- 23mm
- 브런치
- 연대앞
- 논뷰
- XT3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |