Upload
ji-woong-choi
View
2.266
Download
9
Embed Size (px)
DESCRIPTION
레드햇의 PaaS(Platform as a Service) 솔루션인 OpenShift 개요 및 설치 방법, 구성 등에 대한 자세한 설명을 담고 있습니다.
Citation preview
2 - Internal Use Only -
목차
OpenShift 개요
OpenShift 전체 아키텍처 OpenShift 동작 방법
OpenShift 구축
RHC Client Tool
3 - Internal Use Only -
OpenShift 개요
Open Shift는 클라우드 PaaS 환경에서 사용자의 어플리케이션을 개발, 배포 및
관리를 할 수 있도록 개발 환경을 생성해 주는 오픈 소스 솔루션 입니다.
어플리케이션 개발과 테스트 관리에 필요한 디스크, CPU, 및 메모리 자원을
할당해 줄 뿐만 아니라, 웹 서버인 아파치(Apache)와 오픈소스 미들웨어
제이보스(JBoss)를 함께 제공 하며, PHP, Python, Java, Ruby등을 제공 합니다.
Open Shift는 어플리케이션 프레임워크를 제공하기 위한 두 가지 기본 유닛인
브로커(Broker)와 카트리지(Catridges)가 있습니다.
4 - Internal Use Only -
OpenShift 종류
OpenShift - Origin
-오픈 소스 프로젝트이며, 직접 설치해서 사용 할 수 있는 커뮤니티 버전 입니다.
OpenShift - Enterprise
- 기업용 버전 및 Red Hat PaaS 솔루션 입니다.
OpenShift - Online
- Red Hat 인프라를 서버로 하여 무료 사용 할 수 있는 버전 입니다.
origin
5 - Internal Use Only -
OpenShift 사전 요구사항 1/2
H/W 요구사항
- 베어메탈 또는 가상화
- AMD64 또는 Intel 64 아키텍처
- 최소 1GB 메모리 최소 8GB 디스크 공간
- 네트워크 연결
Linux 호환되는 Cloud/Virtualization 환경
- AWS, CloudForm, OpenStack
- RHEV, KVM, vSphere, Hyper-V 지원
6 - Internal Use Only -
OpenShift 사전 요구사항 2/2
사용자 인증 지원
- 단순 로컬 인증 (apache htpasswd)
- LDAP
- Kerberos plugins(Windows Active Directory, krb5 등)
OpenShift Client Tools
- 클라우드 환경 관리 도구: ruby, git 필요
- 지원 OS: Windows, Max OS X, Linux(Ubuntu/Debian/openSUSE,Fedora
RHEL 등)
OpenShift 구성요소
- Broker : User app 관리, 사용자 인증, Node 관리
- Node(s) : User app이 배포되는 호스트(들)
7 - Internal Use Only -
브로커 (Broker)
상용 제품
브로커는 Open Shift에서 운영되고 있는 모든 어플리케이션들을 관리하는 단일 포인트로써
사용자의 로그인 또는 어플리케이션의 상태와 일반적인 사용자 어플리케이션의 편성 상태를
관리 합니다.
웹 콘솔 (Web Consol), CLI Tool(Command Line interface) 또는 Jboss Tool같이 표준으로
제공하고 있는 REST-API를 이용하여 사용자와 상호작용 (Interaction)을 하게 됩니다.
브로커는 MongoDB, ActiveMQ 그리고 BIND(DNS) 서비스 기반으로 동작 합니다.
8 - Internal Use Only -
노드 (Node)
상용 제품
노드는 시스템을 호스팅하는 사용자 응용 프로그램이며, 다음과 같은 구성으로 돌아 갑니다.
- 기어(Gear): 하나 또는 그 이상의 카트리지를 실행하기 위한 자원 컨테이너를 제공하며, 카트리지가
활용하는 메모리와 디스크 공간에 대한 용량을 제한 할 수 있습니다. 또한 Open Shift에서는 관리자가
구성하고 구현하는 방식에 따라서 하나 또는 여러 개의 다양한 크기의 기어를 생성할 수 있습니다. 사용자가
PaaS 플랫폼에서 개발을 하기 위해 사용하게 될 기어(Gear)의 기본 스펙은 Mem 512MB와 Disk 1G를 제공
합니다.
- 카트리지(Cartridges): 카트리지는 어플리케이션을 운영하기 위해서 실제적으로 필요한 기능을 제공 하고
있으며 개발 언어인 Perl, PHP, Ruby와 같은 언어를 지원할 뿐만 아니라, PostgreSQL 이나 MySQL 같은
다양한 데이터베이스 카트리지도 제공 합니다.
9 - Internal Use Only -
Open Shift 전체 아키텍처
Open Shift 솔루션의 전체 흐름 이며, 각 역할에 대하여 자세히 설명 하는 부분은 아래 페이지 참조
14 - Internal Use Only -
브로커 시스템은 노드들을 관리
Node는 사용자 APP이 위치 한 곳이고, Broker는 OpenShift 동작을 관리 합니다.
Brokers Node Node Node
15 - Internal Use Only -
사용자 소스 보안 관리는 SELinux로 관리
SELinux 정책들은 노드의 인스턴스들을 안전하게 분리 시킵니다.
Brokers Node Node Node
사용자 소스 SELinux 관리
16 - Internal Use Only -
WEB Console Eclipse IDE
CLI
Developer Workflow
Linux Linux Linux
OpenShift Gear
Brokers Node Node Node
개발자가 새로운 APP을 생성 -> OpenShift가 Gear를 생성
17 - Internal Use Only -
WEB Console Eclipse IDE
CLI
Cartridge를 통해 Gear구성을 자동화
Linux Linux Linux
My SQL
Brokers Node Node Node
JBoss
OpenShift 카트리지가 DB 및 미들웨어, Languages 설치 합니다.
18 - Internal Use Only -
카트리지엔 사용자가 정의한 APP 생성
Java
OpenShift 기본 카트리지
My SQL
PHP Postgres
Python JBoss
Ruby Etc
CUSTOM
개발자는 custom language, data-store, 또는 미들웨어를 custom 카트리지를 통해 추가 가능
합니다.
19 - Internal Use Only -
Git Protocol / ssh
소스 코딩 후, 업로드
Linux Linux Linux
My SQL
Brokers Node Node Node
Code Git repo JBoss
개발자는 응용 프로그램 통해 GIT 소스 관리 시스템으로 소스를 업로드를 합니다.
22 - Internal Use Only -
Command Line Tool
1.Create App rhc app create -a javasample -t jbossas-7 2.Add MongoDB rhc app cartridge add -a javasample –c mongodb-2.0 3.Add add EAR file to your deployments directory cd javasample cp /path/to/ear/earfilename.ear ./deployments 1.Add the EAR file to git git add ./deployments/earfilename.ear 2.Push your code git push 3.Done
26 - Internal Use Only -
사전 준비 사항
대상 시스템
- Broker Host
- Node Host
준비 사항 및 필요한 서비스
- RHEL, OpenShift Enterprise 서브스크립션 등록
- NTP 동기화
- SSH
- Yum repository
27 - Internal Use Only -
DNS Install and Configure
목적
- named 기반으로 Broker, Node, Gear 시스템 관리
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- SSH
- BIND
- text editor (vi, emacs, nano, etc)
- 환경 변수 설정
- SELinux
28 - Internal Use Only -
DHCP Client and Hostname
목적
- 특정 DNS 서버를 사용하도록 Broker 호스트를 구성 하려면 /etc/dhcp/dhclient-
[네트워크 장치]를 편집 해야 합니다.
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
29 - Internal Use Only -
Installing MongoDB
목적
- 사용자 인증
- 기본 Gear 크기 지정
- 관리 사용자 계정 생성
- 일반 사용자 계정 생성
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- yum
- mongo, chkconfig, service, lokkit, firewall-cmd
30 - Internal Use Only -
Installing and Configuring Active MQ
목적
- Broker 시스템과 Node간의 메시지를 전송하기 위한 서비스 구성
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- yum
- lokkit
- firewall-cmd
- chkconfig
- service
31 - Internal Use Only -
Verify that Active MQ is Working
웹 사이트 접속하여 정상 설치 및 설정 테스트
- http://localhost:8161
- 아래와 같은 화면이 나오면 정상
32 - Internal Use Only -
Installing and Configuring Mcollective
목적
- Broker 시스템과 Node간의 메시지를 수신하는 서비스 구성
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- yum
33 - Internal Use Only -
Installing and Configuring the Broker Application
목적
- Broker Cllient 도구 및 REST API를 제공하기 위한 애플리케이션 설치
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- yum
- sed
- chkconfig
- lokkit
- openssh, ssh-keygen, fixfiles, restorecon
34 - Internal Use Only -
Broker Plugins
목적
- DNS, 인증, 메시징 구성이 제대로 작동 되는지 확인 하기 위한 Plugin 설정
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- cat
- echo
- enviroment variables
- pushd
- semodule
- htpasswd, mongo, bundler, chkconfig, service
35 - Internal Use Only -
Verifying the Broker Configuration
REST API가 정상적으로 동작 하는지 확인
- curl -Ik https://localhost/broker/rest/api
- Status: 200 메시지가 나오면 정상
36 - Internal Use Only -
The Web Console
목적
- OpenShift 웹 콘솔은 Ruby로 개발 되어 있으며 Gear, Host에 배포 된 응용
프로그램의 Gear를 생성하고 관리하는 웹 관리 페이지를 생성
대상 시스템
- Broker Host
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- yum
- service
- chkconfig
37 - Internal Use Only -
Installing and Configuring Mcollective on Node hosts
목적
- Broker와 Node 간의 통신 할 수 있는 환경 설치 및 설정
대상 시스템
- Node
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- yum
- dig
- chkconfig
38 - Internal Use Only -
Verifying the Mcollective Configuration
Broker host에서 mco ping 명령어 이용
- Broker와 Node 간의 통신이 정상적으로 되어 있는지 확인
39 - Internal Use Only -
Installing and Configuring the Node Application
목적
- Node Host에서 동작하기 위한 필요한 Package 설치
대상 시스템
- Node
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- yum
- dig
- chkconfig
40 - Internal Use Only -
Configuring Multi-Tenancy on the Node Host
대상 시스템
- Node
준비 사항 및 필요한 서비스
- text editor (vi, emacs, nano, etc)
- sed
- restorecon
- chkconfig
- service
- mount
- quotacheck
42 - Internal Use Only -
Trouble Shooting
oo-diagnostics
- Broker 및 Node 전체 시스템에 문제가 될 만한 요소가 있는지, 또는 문제가
있다면 해결 방법에 대한 메시지를 출력 해주는 스크립트
- 시스템의 문제가 발생시 Red Hat 기술 지원 요청을 할 때 필요한 스크립트
43 - Internal Use Only -
Trouble Shooting - Broker
Broker 설정 확인 스크립트
- oo-accept-broker
- broker 시스템 구성에 잠재적인 문제가 있는지 설정상에 문제가 있는지 최종
확인 할 수 있는 스크립트 파일
- 문제가 없으면 PASS 메시지 출력
44 - Internal Use Only -
Trouble Shooting - node
node 설정 확인 스크립트
- oo-accept-node
- node 시스템 구성에 잠재적인 문제가 있는지 설정상에 문제가 있는지 최종
확인 할 수 있는 스크립트 파일
- 문제가 없으면 PASS 메시지 출력
46 - Internal Use Only -
Installing the RHC client tool & setup
대상 시스템
- localhost
준비 사항 및 필요한 서비스
- ruby
- sudo
- git
- yum
- gem
- rhc
48 - Internal Use Only -
Verifying the user application.
웹 브라우저 접속 화면
- http://firstphp-ose.example.com