공개 SW 솔루션설치 & 활용가이드 응용 SW > 클라우드서비스 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide
CONTENTS 1. 개요 2. 기능요약 3. 실행환경 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리
- 3-1. 개요 소개 주요기능 OCI 표준컨테이너에대한관리및오케스트레이션을위한, 엔터프라이즈급 Kubernetes 를탑재한컨테이너플랫폼혹은 PaaS(Platform as a Service) 제품 국내외많은레퍼런스를확보하고있으며, 표준컨테이너기술을기반으로되어있기때문에높은호환성을제공 표준컨테이너관리및오케스트레이션 관리및서비스노드의 HA(High Availability, 고가용성 ) 제공 장애시자동으로컨테이너가재기동하는 Self-Healing 제공 급변하는부하에능동적으로대처하기위한 Autoscaling 제공 대분류 응용 SW 소분류 클라우드서비스 라이선스형태 Apache v2 사전설치솔루션 N/A 실행하드웨어 특징 보안취약점 개발회사 / 커뮤니티 공식홈페이지 Physical or virtual system, or an instance running on a public or private IaaS 버전 3.6 (2017 년 9 월기준 ) 개발및운영을위한다양한툴제공 (IDE, UX 등 ) 다양한 application runtimes & services 제공 Kubernetes 기반의컨테이너오케스트레이션및관리 다양한환경에설치가능 - Bare-Metal( 물리서버 ), VM(Vmware, RHV, Hyper-V 등 ), Public/Private IaaS(AWS, Hostway, OpenStack 등 ) 취약점 ID : CVE-2016-8651 심각도 : 3.5 LOW(V3) 취약점설명 : OpenShift 가이미지요청을처리하는방식에입력인증결함이발견 대응방안 : 3.4 이상업데이트 참고경로 : https://access.redhat.com/errata/rhsa-2016:2915 Red Hat, Inc. / openshift.org https://www.openshift.org
- 4-2. 기능요약 OpenShift Origin 의주요기능 주요기능 OCI 표준컨테이너 다양한환경에설치 - Bare-Metal( 물리서버 ), VM(Vmware, RHV, Hyper-V 등 ), Public/Private IaaS(AWS, Hostway, OpenStack 등 ) SDN 을통한컨테이너간자동네트워크구성 CI/CD 용 Git, Jenkins 컨테이너 Router 를통한자동부하분산 지원여부지원지원지원지원지원 급변하는부하에능동적으로대처하기위한 Autoscaling 지원 다양한 application runtimes & services 제공 지원
- 5-3. 실행환경 OpenShift Origin v3.6 은 Fedora 21, CentOS 7.3, RHEL(Red Hat Enterprise Linux) 7.3, 혹은 RHEL(Red Hat Enterprise Linux) 7.4 에서설치가능합니다. 자세한설치및실행환경에대해서는아래의표를참고하시기바랍니다. https://docs.openshift.org/3.6/install _config/install/prerequisites.html
- 6 - 세부목차 4.1 Prerequisites 4.2 네트워크및 Hostname 설정 4.3 Base Package 설치 4.4 Package Update 4.5 Hostname Update 4.6 RPM-based Installer 구성 4.7 NTP 적용 4.8 DNS 설치 4.9 Docker 설치 4.10 Docker Storage 구성 4.11 Host간 Password-less Access 구성 4.12 Advanced Installation 실행 4.13 설치검증
- 7-4.1 Prerequisites(1/3) Red Hat Enterprise Linux v7.3 기반에 OpenShift Origin 3.6 을설치하는방법에대해서설명한다. 3대의 Master Host(Host 라함은 Bare-Metal 혹은 VM를의미함 ) 를사용하여 3중화로구성하여, 오케스트레이션및관리영역의가용성을확보하며, Master S/W 설치시 etcd(distributed Key-Value Database) 도 3중화로동시에구성한다. 단, DNS의경우는 Master Host 내의 SkyDNS를외부서비스용으로사용할수없기때문에, 외부에별도의 DNS를새로구성하여사용하거나, 이미존재하는 DNS 를사용할수도있다. 본문서에서는 Bind를이중화하여설치하고 OpenShift Origin 에서이 DNS를사용하는방법에대해서설명한다. 또한, 본문서에서는 LoadBalancer를통한 Multi Master 구성에대한내용만을설명하며, L4 를통한 Multi Master 구성에대한내용은다루지않는다.
- 8-4.1 Prerequisites(2/3) [ 설치작업절차 ] Red Hat OpenShift Enterprise v3.6 을사용하여 PaaS 환경을구축하는작업절차는아래와같다. 패키지저장소 (yum repository) 구성 : On-Line( 인터넷접속가능 ) 환경시해당 DNS 구성 ( 이중화구성 ) OpenShift Origin v3.6 설치 (Master Host 3중화, Node Host 2대및 Load Balancer 구성 ) 전체아키텍처정상작동확인 상기설치작업을위해서, 총 8 대의 Host 가필요합니다. 각 Host 별역할은아래와같다. DNS 2 EA S/W Load Balancer 1EA OpenShift Origin v3.6 Master 3EA OpenShift Origin v3.6 Node 2EA
- 9-4.1 Prerequisites(3/3) [ 설치에필요한 OS 구성 ] OpenShift Origin v3.6 은 Fedora 21, CentOS 7.3, RHEL(Red Hat Enterprise Linux) 7.3, 혹은 RHEL(Red Hat Enterprise Linux) 7.4 에서설치가능하다. Master 및 Node Host에대한자세한 System Requirements 는아래의 URL 에서참고하자. https://docs.openshift.org/3.6/install_config/install/prerequisites.html 주의 ) 상기사양은최소사양일뿐, 운영환경을위한사양이아님을주의하자.
4.2 네트워크및 Hostname 설정 여기서는, 아래와같이테스트시스템을구성한다. 또한, 본문서에서는 Master cluster 의 URL 은 cluster.rhkoso36.com 을사용하며, OpenShift Origin PaaS 에서 생성되는 Docker container 의도메인서비스를위한 subdomain 은 *.paas.rhkoso36.com 을사용한다.
- 11-4.3 Base Package 설치 설치전아래명령을전체 Host 에서수행하여전체 Host 에 Base Package 를설치합니다.
- 12-4.4 Package Update 설치전아래명령을전체 Host 에서수행하여전체 Host 를 update 한다.
- 13-4.5 Hostname Update 설치전아래명령을이용하여, 전체 Host 에서수행하여전체 Host 의 hostname 를 update 한다. 여기서, <hostname> 은변경할 hostname 이다. 4.2 네트워크및 Hostname 설정 의내용을참고
- 14-4.6 RPM-based Installer 구성 설치전아래명령을 Master01 에서수행하여 EPEL repository 를설치한다. 아래명령을 Master01 에서수행하여 EPEL repository 를 disable 시킨다. 아래명령을 Master01 에서수행하여 Ansible 을설치한다.
- 15-4.7 NTP 적용 시간설정및기본적인튜닝을통해성능을향상시킨다.( 모든서버에동일한시간설정은매우중요합니다.)
- 16-4.8 DNS 설치 (1/9) OpenShift 가설치되는모든 Host 에대한 IP 정보등록을위한 DNS 서버를설치한다.
- 17-4.8 DNS 설치 (2/9) SELinux 및 DNS forward 설정을한다.
- 18-4.8 DNS 설치 (3/9) dns01.rhkoso36.com 서버의 zone 파일을수정한다.
- 19-4.8 DNS 설치 (4/9) dns02.rhkoso36.com 서버의 zone 파일을수정한다.
- 20-4.8 DNS 설치 (5/9) DNS 관리에필요한보안키를설정한다.
- 21-4.8 DNS 설치 (6/9) /etc/named.conf 파일의설정을변경한다.
- 22-4.8 DNS 설치 (7/9) /etc/named.conf 파일의설정을변경한다.
- 23-4.8 DNS 설치 (8/9) Bind 설정파일의권한설정및 DNS 서버를시작한다.
- 24-4.8 DNS 설치 (9/9) DNS01 장비에서모든 Host 를등록및추가한다.
- 25-4.9 Docker 설치 모든장비에 Docker 엔진을설치한다.
- 26-4.10 Docker Storage 구성 Docker container 와 image는모두 Docker Storage에저장된다. 각 Host 에 Docker Storage를위한저장소를구성하는데는세가지방식중하나를선택할수있다. Option A) Block device 를추가하여사용 Option B) 이미존재하는, 사용하지않는 Volume Group Option C) root file system 이위치하고있는, Volume Group에남아있는공간여기서는 Option A의방식을예로설명합니다. 다른방법을사용하길원한다면, 아래의 URL을참고하자. https://docs.openshift.org/3.6/install_config/install/host_preparation.html#configuring-dockerstorage
- 27-4.11 Host 간 Password-less Access 구성 (1/2) Quick 혹은 advanced installation 을사용하면, 하나의 user 로모든 host 에 password 입력없이접속이 가능해야한다. 주로, root 유저를사용하며, non-root 유저도사용가능하다. 단, non-root 유저의경우에 는 password 없이 sudo 를사용할수있는권한이필요하다. 본문서는 root 유저를기준으로설명한다.
- 28-4.11 Host 간 Password-less Access 구성 (2/2) 아래의명령으로모든 Host 에 SSH key 를복사합니다.
- 29-4.12 Advanced Installation 실행 (1/5) 본격적으로 OpenShift Origin v3.6 을설치하는단계입니다. Quick Installation 혹은 Advanced installation 을사용할수있지만, Quick Installation은보통 Test용으로설치할경우에만사용하며운영환경을위한구성시에는 Advanced Installation을사용하는것을권장한다. 두가지방법모두 Ansible 을사용한다. 본문서에는 Advanced Installation 방법에대해서만설명한다. Quick Installation에대해서궁금하다면아래의 URL 에서확인할수있다. https://docs.openshift.org/3.6/install_config/install/quick_install.html 또한, Advanced Installation에대한자세한내용도아래의 URL 에서확인할수있다. https://docs.openshift.org/3.6/install_config/install/advanced_install.html Advanced Installation 은 /etc/ansible/hosts 파일에구성하고자하는내용을입력하여설치를수행한다. 상기 URL에서다양한방법으로 Master 및 Node 를구성하는여러가지예를확인할수있다. 본문서에서는 Master 3EA, Node 2EA 및 LoadBalancer 1EA 를사용하여구성하는방법을설명한다.
- 30-4.12 Advanced Installation 실행 (2/5) /etc/ansible/hosts 파일을수정한다.
- 31-4.12 Advanced Installation 실행 (3/5) /etc/ansible/hosts 파일을수정한다.( 계속 )
- 32-4.12 Advanced Installation 실행 (4/5) /etc/ansible/hosts 파일을수정한다.( 계속 )
- 33-4.12 Advanced Installation 실행 (5/5) Advanced Installer 를실행한다.
- 34-4.13 설치검증 (1/3) 설치가완료된후, 아래의명령을수행하여각 Host 의상태를확인한다.
- 35-4.13 설치검증 (2/3) 설치가완료된후, 아래의명령을수행하여각 Host 의상태를확인한다.
- 36-4.13 설치검증 (3/3) 브라우저를통해서아래의 URL 로접속하면아래의화면을볼수있습니다. https://cluster.rhkoso36.com:8443
- 37-5. 기능소개 세부목차 5.1 OpenShift Origin 기본특징 5.2 Application 런타임제공 5.3 JBoss MW Application 런타임제공 5.4 Autoscaling 기능 5.5 WAS Cluster 기능 5.6 CI/CD 기능 5.7 Scheduling/Self-Healing 5.8 자동부하분산 5.9 Service Discovery
- 38-5. 기능소개 5.1 OpenShift Origin 기본특징 개발및운영을위한다양한툴제공 (IDE, UX 등 ) Autoscaling 기능제공 다양한 application runtimes & services 제공 Docker 컨테이너오케스트레이션및관리 OCI 표준컨테이너기반 Docker 컨테이너최적화 OS(RHEL) 기반혹은오픈소스 OS(Fedora, CentOS) 기반
- 39-5. 기능소개 5.2 Application 런타임제공 다양한 Application Runtime 제공 From Red Hat From ISV Partners From the Community
- 40-5. 기능소개 5.3 JBoss MW Application 런타임제공 Application Container Services Business Process Services Integration Services Mobile Services JBoss Enterprise Ap plication Platform JBoss Web Server / Tomcat Business Process Management * Business Rules M anagement System * Fuse A-MQ Data Virtualization Red Hat Mobile / Fe edhenry * JBoss Developer Stu dio
- 41-5. 기능소개 5.4 Autoscaling 기능 (1/2) HPA 는모니터링대상 POD 들을모니터링하여 CPU 값들을가져와서평균 CPU 의 1 분추이를확인하여, POD 개수를결정한다.( 알고리즘에서상세설명 ) 개수가결정되면 HPA 가 POD 의 Target 개수를설정하게된다. OpenShift CPU 취합및평균 CPU 저장 autoscaling.saas.redhat.com HPA* replicas값조정으로 Pod 늘이거나줄임 replicas=4 Scheduler CPU JBoss Container JBoss Container JBoss Container *) HPA : Horizontal Pod Autoscaler YouTube 동영상링크 : https://youtu.be/hjynniw-f7a
- 42-5. 기능소개 5.4 Autoscaling 기능 (2/2) HPA 는 POD 의 replicas 개수만설정하며, replicas 개수가변경되면 OpenShift Scheduler 가현재 replica 개수와새로설정된 replica 개수를비교하여 POD 를늘이거나줄인다. HPA 에의해서 POD Target 개수를자동으로결정하고이를반영하고, Scheduler 가 Target 개수만큼 POD 를늘이거나줄이는것을 OpenShift 의 Auto Scaling(Scale-in, Scale-out) 이라정의한다. OpenShift HPA* autoscaling.saas.redhat.com JBoss Container JBoss Container Scheduler replicas=4 설정된 replicas 개수에맞게끔 POD 인스턴스개수를조정함 Pod 인스턴스기동 JBoss Container JBoss Container YouTube 동영상링크 : https://youtu.be/hjynniw-f7a
- 43-5. 기능소개 5.5 WAS Cluster 기능 JBoss EAP 컨테이너는 restart 시에사설 IP 가자동으로할당되기때문에, IP 가변경될수있다. IP 가변경되면 WAS Clustering 기능을사용하기가어렵다. 특히, PaaS 환경상에서 WAS 자체의클러스터링기능을사용하는것은매우어려운기술중하나다. OpenShift 는 JBoss EAP WAS 의경우에, WAS 의기동위치에상관없이, 하나의도메인서비스 ( 하나의 application 서비스 ) 를제공하는 JBoss EAP 컨테이너는, 간단한옵션설정만으로 Session Clustering( 혹은 WAS Clustering) 이자동으로구성된다. Node Node Node 1 3 2 JBoss EAP 컨테이너 1 3 2 JBoss EAP 컨테이너 1 3 2 JBoss EAP 컨테이너 1 3 2 JBoss EAP 컨테이너 클러스터링자동구성
- 44-5. 기능소개 5.6 CI/CD 기능 Git, Jenkins 컨테이너이미지를제공하여, 개발, 빌드, 배포, 테스트및운영환경배포를위한 CI/CD 프로세스구성및커스터마이징이가능하다. Can configure triggers for automated deployments, b uilds, and more. Code Build Deploy Can configure different d eployment strategies like A/B, Rolling upgrade, Aut omated base updates, an d more.
- 45-5. 기능소개 5.7 Scheduling/Self-Healing 멀티 Node( 호스트 ) 상의멀티컨테이너의배치를최적화해주는 Scheduling 기능과배치된컨테이너의개수를항상유지시켜줌으로써컨테이너가 Shutdown 되었을때자동으로재기동시켜주는 Self-Healing 기능을제공한다. push search pull Image Registry push search push search pull pull Host #1 Host #2 Host #3
- 46-5. 기능소개 5.8 자동부하분산 Router 통해들어오는사용자의요청을자동으로컨테이너사이에분산시켜서부하를분산시킴으로써시스템의안정적이운영이가능하다. Load Balancer (router) Containers Containers Containers Host #1 Host #2 Host #3
- 47-5. 기능소개 5.9 Service Discovery OpenShift 상에구동되어있는컨테이너사이에호출이필요한경우, 이들간에서로쉽게찾을수있는 Service Discovery 기능을제공한다. 연계 WAS Database Host #1 Host #2 Host #3
- 48-6. 활용예제 세부목차 6.1 테스트용 ID/PW 등록 6.2 로그인 6.3 Project 생성 6.4 컨테이너생성
- 49-6. 활용예제 6.1 테스트용 ID/PW 등록 모든 Master 장비에접속하여아래의명령을실행하여 Httpd-tools 를설치한다. 모든 Master 장비에접속하여아래의명령을실행하여, ID/PW 를신규로추가한다. 아래는그예제다.
- 50-6. 활용예제 6.2 로그인 웹브라우저를사용하여아래의 URL 에접속하고, 새로만든 ID/PW 를사용하여로그인합니다. https://cluster.rhkoso36.com:8443
- 51-6. 활용예제 6.3 Project 생성 (1/3) New Project 버튼을클릭하여프로젝트를새로생성한다.
- 52-6. 활용예제 6.3 Project 생성 (2/3) Name, Display Name 및 Description 을입력한다.
- 53-6. 활용예제 6.3 Project 생성 (3/3)
- 54-6. 활용예제 6.4 컨테이너생성 (1/5) Add to Project 버튼을클릭하여컨테이너생성을위한위저드를실행한다.
- 55-6. 활용예제 6.4 컨테이너생성 (2/5) 컨테이너생성을위한대상 Template 을선택한다. 여기서는, Tomcat 과 mysql 을사용하는탬플릿을사용한다.
- 56-6. 활용예제 6.4 컨테이너생성 (3/5) 컨테이너생성을위한파라미터를입력하기위해서클릭한다.
- 57-6. 활용예제 6.4 컨테이너생성 (4/5) 컨테이너생성을위한파라미터를입력한다.
- 58-6. 활용예제 6.4 컨테이너생성 (5/5) 새로생성된컨테이너
- 59-7. FAQ Q OpenShift는어떤사용자를위한것인가요? & A OpenShift는공용또는사설 PaaS 클라우드를구축하려는서비스제공업체, 기업, 정부및교육기관을위한, 표준컨테이너기반컨테이너플랫폼소프트웨어입니다. 산업분야는 IT 및통신업체에서 SaaS 및전자상거래, 금융및의료에이르기까지다양합니다. Q Kubernetes 와다른점은어떤것인가요? & A OpenShift는 Kubernetes를포함하고있으며, Kubernetes가제공하지못하는다양한기능 ( 예를든다면 CI/CD 기능, 빌드 / 배포기능, SDN 기능 ) 을제공하고있으며, 엔터프라이즈급의안정성을제공하고있습니다.
- 60-8. 용어정리 용어 설명 Application OpenShift v3 에는특정애플리케이션용어나개념이더이상존재하지않는다. Cartridges vs. Images Domain vs. Project Gear vs. Container Broker vs. Master OpenShift v3 에서카트리지 (Cartridge) 를가장쉽게교체할수있는용어는이미지 (Image) 다. 이미지는패키징관점에서볼때카트리지이상을차지하므로캡슐화와유연성이향상된다. 그러나카트리지개념에는이미지에존재하지않는빌드, 배포및라우팅을위한논리도포함되어있다. OpenShift v3 에서이러한추가요구사항은 S2I (Source-to-Image) 및템플릿구성을통해서해당기능을제공한다. OpenShift v3 에서소개되는프로젝트 (Project) 라는단어는기본적으로 OpenShift v2 의도메인 (Domain) 단어를대체한다. 프로젝트에는 OpenShift v2의도메인에속하지않는몇가지기능이있다. OpenShift v2 에서사용하던기어 (Gear) 라는용어는 OpenShift v3에서는컨테이너 (Container) 라는용어로변경되었다. 컨테이너는이미지와일대일로깔끔하게맵핑되는반면, 많은카트리지가단일장비에추가될수있다. 컨테이너의경우배열개념이 POD 에의해충족된다. OpenShift v3 의마스터 (Master) 는 OpenShift v2에서브로커 (Broker) 를대체한다. 또한, OpenShift v2에서브로커가사용하는 MongoDB 및 ActiveMQ 계층은더이상필요하지않다. 키값저장소 etcd가일반적으로각마스터와함께설치되기때문이며, 모든관리정보는 etcd에저장된다.
Open Source Software Installation & Application Guide 이저작물은크리에이티브커먼즈 [ 저작자표시 비영리 동일조건변경허락 2. 0 대한민국라이선스 ] 에따라이용하실수있습니다.