티스토리 뷰

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 패키지가 설치되어 있어야 한다.


# yum install 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
링크
«   2025/01   »
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
글 보관함