PowerPoint Presentation

Similar documents
PowerPoint Presentation

PowerPoint 프레젠테이션

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

[Brochure] KOR_TunA

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

PowerPoint 프레젠테이션

서현수

Sun Java System Messaging Server 63 64

슬라이드 1

chapter1,2.doc

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

Apache2 + Tomcat 5 + JK2 를 사용한 로드밸런싱과 세션 복제 클러스터링 사이트 구축

Microsoft Word - src.doc

슬라이드 1

슬라이드 1

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

PowerPoint 프레젠테이션

Apache Ivy

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

[Brochure] KOR_LENA WAS_

슬라이드 1

슬라이드 1

untitled

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

DE1-SoC Board

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

PowerPoint Presentation

Intro to Servlet, EJB, JSP, WS

opennaru

PowerPoint Presentation

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

PowerPoint 프레젠테이션

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SPECweb Install

untitled

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

PowerPoint 프레젠테이션

PowerPoint Presentation

Report Designer V3.0 사용설명서 2장

Interstage5 SOAP서비스 설정 가이드

PowerPoint 프레젠테이션

No Slide Title

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

vm-웨어-01장

슬라이드 1

User's Guide Manual

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

vm-웨어-앞부속

LXR 설치 및 사용법.doc

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

슬라이드 1

Backup Exec

슬라이드 제목 없음

untitled

PowerPoint 프레젠테이션

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

2

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

PCServerMgmt7

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Interstage4 설치가이드

Cloud Friendly System Architecture

문서 대제목

1217 WebTrafMon II

Network seminar.key

Solaris System Administration


Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

DocsPin_Korean.pages

Microsoft Word - CPL-TR OM2M.doc

PowerPoint Presentation

Corporate PPT Template

untitled

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Solaris Express Developer Edition

교육2 ? 그림

github_introduction.key

웹사이트 운영, 이보다 쉬울 수 없다! Microsoft Azure를 이용한 웹사이트 구축

The Self-Managing Database : Automatic Health Monitoring and Alerting

Cloudera Toolkit (Dark) 2018

Report Designer V3.0 사용설명서 2장

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

PowerPoint 프레젠테이션

Microsoft Word - wiseCLOUD_v2.4_InstallGuide.docx

Mango220 Android How to compile and Transfer image to Target

6주차.key

Transcription:

Docker & OpenShift 3 락플레이스미들웨어기술본부양희선

Contents 1. Docker Container 개요 2. 이미지다운로드및관리 3. 이미지를이용한어플리케이션생성 4. JBoss EAP 이미지설명 5. Application 을위한 Resources 구조 6. 배포및롤백 7. 서비스확장 ( 오토스케일링 )

1. Docker Container 개요 Docker Image 란? Image & Container VM & Container Image 생성및활용 Docker & Kubernetes of Openshift

Docker & LXC Container Host 로부터격리되어독립적환경의이미지파일로부터실행되는프로세스 Linux LXC OS 내에서작동하는경량화된 VM 의구현이목적 개발자들이다양한 OS 에서작동하는동일한개발환경을구현하는것이목적 참고 2000 FreeBSD Jails 2004 Solaris Zones

Docker Image 실행에필요한모든것을포함하여 Docker Format 의파일로생성 App code, runtime, system tools, system libraries Image Container Container Container

Docker Image vs Container Image Container Container Container An instance of an image is called container

VM vs Docker Container Guest OS 에서사용되는리소스불필요 Hypervisor 로인한오버헤드감소

Docker Hub https://hub.docker.com/explore/

Docker Hub https://hub.docker.com/explore/

HTTPD 이미지실행방법 [root@ip-10-10-99-31 ~]# docker run -d httpd nable to find image 'httpd:latest' locally... latest: Pulling from docker.io/library/httpd... Command line: 'httpd -D FOREGROUND' 이미지다운로드및컨테이너실행 [root@ip-10-10-99-31 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED 189c74f48d77 httpd "httpd-foreground" 12 seconds ago [root@ip-10-10-99-31 ~]# docker inspect 189c74f48d77 grep IPAddress "SecondaryIPAddresses": null, "IPAddress": "172.17.0.3", 실행중인컨테이너조회 컨테이너 IP 조회 [root@ip-10-10-99-31 ~]# curl 172.17.0.3 <html><body><h1>it works!</h1></body></html> 컨테이너에서실행중인 HTTPD 호출

Dockerfile 을이용하여 HTTPD 이미지생성 Apache Image 생성 Apache Container 실행 Port Forwarding [root@master ~]# cat Dockerfile FROM docker.io/centos USER root RUN yum clean all \ && yum repolist \ && yum -y install httpd \ && yum clean all 베이스이미지 RPM 을이용하여 HTTPD 설치 EXPOSE 80 사용할포트 CMD ["/usr/sbin/apachectl","-k","start","-d","foreground"] 실행할파일

Docker Build [root@master ~]# docker build -t myhttpd. [root@master ~]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE myhttpd latest 07afc88a9eb7 7 seconds ago 250.1 MB docker.io/centos latest d123f4e55e12 9 days ago 196.6 MB # Container 실행및 Port Forwarding [root@master ~]# docker run -d -p 80:80 h myhttpd myhttpd 3a655225e667c549c27572195cd0b9696c85e60bc30fa517f53bf1225f55054d

Apache Webserver 컨테이너접속 # 실행중인컨테이너조회 [root@master ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a655225e667 myhttpd "/usr/sbin/apachectl " 53 seconds ago Up 52 seconds 0.0.0.0:80->80/tcp serene_shirley # 컨테이너내부로접속 [root@master ~]# docker exec -ti 3a655225e667 /bin/bash [root@myhttpd /]# [root@myhttpd /]# hostname myhttpd

Docker Working flow web.rockplace.co.kr Host 52.78.245.72:80 Port Forwarding web.rockplace.co.kr Apache Container: 172.30.35.131:80

Docker and Kubernetes of Openshift 내부 DNS web.rockplace.co.kr 172.30.35.131:80 HAProxy 52.78.245.72:80 Openshift Node Openshift Route ( 내부 Service 위치확인 ) web.rockplace.co.kr Load Balancer: 172.30.35.131:80 Service (Load Balancing) Apache Apache Container/Pod: Container/Pod: 10.0.10.11:80 10.0.10.11:80 Pod (Container)

Docker and Kubernetes of Openshift Docker 만사용하여컨테이너서비스 Kubernetes 를사용하여컨테이너서비스 Port Forwarding Route web.rockplace.co.kr Service (LB) 172.30.35.131 Container Container / Pod Container / Pod 10.1.2.10:80, 10.1.3.13:80

Container Management by Openshift Route: web web.rockplace.co.kr 외부로부터의진입점 service: web 172.30.176.102 Cluster IP (VIP) 를통한 Loadbalancing Docker Image Pod Kubernetes 는 Container 를 Pod 에담아서관리 ReplicationController 지정된개수의 Pod 가잘돌고있는지 DeploymentConfig 몇개의 Pod 를만들지 어떻게 Pod 를배포할지

2. 이미지다운로드및관리 Image Registry Image Download & Push Openshift Image Stream

Image Registry Docker Image 는 Image Registry 에저장된다. Docker 명령을이용하여 Image Registry 로부터이미지를받을수있다. 폐쇄망에서는내부에 Private Image Registry 를구성할수있다. Openshift Pull Image Redhat Redhat Image Registry new-app Dockerhub Image Registry Images Private Image Registry ( 폐쇄망환경 )

Image Push & Download Admin 이외부 Registry 로부터받거나자체제작한이미지를 Image Registry 에올린다. 내부의 Openshift 에서 Image Registry 로부터이미지를받아갈수있다. User Docker Image Push Image Download Docker Image Registry Jboss-eap7-openshift:1.4 Jboss-eap7-openshift:1.5 Openshift Jboss-eap7-openshift:1.4 ImageStream

Openshift Image Stream Openshift 에서는 ImageStream 형태로이미지를관리한다. 하나의 ImageStream 에는 Tag 가다른여러개의이미지가있고각각 ImageStreamTag 와 Image Metadata 로구별될다. ImageStream Jboss-eap7-openshift ImageStreamMapping ImageStreamTag 1.4 1.5 jboss-eap@sha256:474.. jboss-eap@sha256:312.. Image Metadata.. Image Metadata... 이미지다운로드위치및상세정보 이미지 Tag ( 버전정보 ) ImageStreamImage 이미지 ID

3. 이미지를이용한어플리케이션생성 일반이미지를이용한어플리케이션생성 어플리케이션소스업데이트방법 Build 방식 S2I Builder 이미지작동방식

Application 생성방법 외부 Registry 로부터받거나자체제작한이미지를 Image Registry 에올린다. Openshift 에서 Image Registry 로부터이미지를받아어플리케이션생성. User Docker Image Push Docker Image Registry Tomcat7:latest Openshift Tomcat7:latest ImageStream

소스업데이트방법 1 업데이트된이미지를 Image Registry 에다시올리고 Openshift 내부에서이미지를다시 Import 하고재배포한다. User Docker Image Push Docker Image Registry Tomcat7:latest 이미지재생성 Openshift Import Image Tomcat7:latest ImageStream 재배포

소스업데이트방법 2 Openshift 의 Build 기능을이용하여업데이트된소스로이미지를자동으로재생성하고배포한다. 이를위해서 Base 이미지, 소스의위치와빌드방식을미리정의해야한다. User Openshift 소스업데이트 Git 소스복사 Build Tomcat7 Base Tomcat7:latest 소스가없는 Base 이미지 최종이미지

Build 오픈시프트에서 Build 는어플리케이션소스가업데이트된이미지를생성하는것을의미 Openshift 는이미지 Build 를자동화하기위한기능을제공 Build 방식은용도에따라아래와같은방식사용가능 방식특징비고 Docker Build Dockerfile 이용하여어플리케이션배포및 Build 수행 Docker Build 를 Openshift 에서그대로사용할수있도록기능제공 S2I Build 쉘스크립트 (assemble) 파일이용하여 Build 수행 이미지내부에어플리케이션배포및 Build 를위한스크립트구성 ( 이미지별도작성필요 ) Pipeline Jenkins 의 Pipeline Job(Jenkinsfile) 을이용해서 Build 수행 Jenkins 를이용하므로보다복잡한테스트및코드검사 (Sonarqube 이용 ) 등의부분도관리가능 Git 연동 Git 연동 Git, Jenkins 연동

Docker Build Docker build 에서는다운로드받은 Dockerfile 을이용하여 Build 를수행한다. User Openshift 1) 업데이트 Git 2) 복사 Jboss-EAP-S2I 3) Docker Build (Dockerfile) Jboss-APP:latest 소스가없는 Base 이미지 소스포함최종이미지 Application 소스 Dockerfile

S2I Build S2I build 에서는이미지에내장되어있는 Script File (/usr/local/s2i/assemble) 을이용하여 Build 를수행한다. User Openshift 1) 업데이트 Git 2) 복사 Jboss-EAP-S2I 3) S2I Build (/usr/local/s2i/assemble) Jboss-APP:latest 소스가없는 Base 이미지 소스포함최종이미지 Application 소스

Pipeline Build Pipeline build 에서는다운로드받은 Jenkinsfile 파일을이용하여 Jenkins 에서 Build 를수행한다. Jenkins 의 Pipeline Job 을이용하여 Code Inspection 및 Coverage Analysis 등의작업을추가할수있다. Jenkinsfile 에서 CLI 를사용하면 Dev 프로젝트에배포후 Stage 및 Prod 프로젝트로자동배포를구성할수있다. User Openshift 1) 업데이트 Git 2) 복사 Jenkins Jboss-EAP-S2I 3) Pipeline Build (Jenkinsfile) Jboss-APP:latest 소스가없는 Base 이미지 소스포함최종이미지 Application 소스 Jenkinsfile

S2I Builder 이미지란? 일반적으로 Java WAS 이미지는 OS Libs, JDK, WAS Engine, Application 으로이루어진다. 이미지에서변경이지속적으로일어나는부분은 Application 이다. Builder Image 에는 Application 을다운받아 Build 할수있는 Builder 가들어있다. (S2I: Source To Image) Builder Image 는 Application 이포함된새로운이미지를만드는역할을한다. 일반 Image S2I Builder Image Source Download & Build Application WAS Engine JDK OS Libs S2I Builder WAS Engine JDK OS Libs

S2I Builder 이미지작동방식 Openshift 에서 Build 를실행하면 Application 을다운로드받아새로운이미지를만든다. S2I Builder Image S2I Builder 새로운이미지생성 Application Image S2I Builder Application Git WAS Engine JDK OS Libs WAS Engine JDK OS Libs

S2I Builder 이미지작동방식 Builder Image 는 Git 서버로부터 Application 을받아새로운 Application Image 를생성한다. 새로운 Application Image 는 Openshift 내부에 Openshift Container Registry 에저장된다. 각 Node 로 Application Image 를배포한다. Openshift Infra Node1 Builder Image Application Image Build Node2 Openshift Container Registry Application Image 배포 Application Image

4. JBoss EAP 이미지 Openshift 용 JBoss EAP 이미지의특징 JBoss EAP 이미지작동방식

EAP7 for Openshift 이미지특징 구분운영모드 Admin Console JBOSS_HOME 실행스크립트 OS Version Session Clustering 내용 Standalone 없음 /opt/eap /opt/eap/bin/openshift-launch.sh Red Hat Enterprise Linux Server release 7.3 (Maipo) Kube-Ping 모듈을통해클러스터링가능

JBoss EAP7 S2I 이미지작동방식 2. /tmp/src 의파일을 /$HOME/source 로복사 1. git 서버로부터받은파일을이미지내부의 /tmp/src 로복사 3. /$HOME/source 아래의디렉토리별로 JBoss 관련위치로복사 Openshift Infra jboss-eap7-openshift (APP 미포함 ) APP Build jboss-eap7-openshift (APP 포함 ) Node jboss-eap7-openshift (APP 포함 ) /$HOME/source 하위디렉토리 configuration deployments modules

S2I 이미지내부스크립트실행순서 순번 스크립트파일 용도 1 /usr/local/s2i/assemble 소스및설정파일을 JBoss 내부로복사 2 /usr/local/s2i/run openshift-launch.sh 실행 3 /opt/eap/bin/openshift-launch.sh EAP 기동

Git vs Container 파일위치 Git 서버의각디렉토리파일들은아래와같이컨테이너디렉토리로복사된다. 구분 Git Directory 파일 Container Directory APP( 소스 ) / war ear rar jar $JBOSS_HOME/deployments/ /deployments/ war ear rar jar $JBOSS_HOME/deployments/ 설정파일 /configuration/ 모든파일 (standalone-openshift.xml) $JBOSS_HOME/configuration/ Module /modules/ 모든파일 $JBOSS_HOME/modules/

5. Application 을위한 Resources 구조 Openshift Resource 구조 Build Git

Openshift Resources 구조 접속주체별로 User 생성 Application 그룹또는 Resource 제한단위 개별 Application Route Service User Project Application Pod User 단위로접속 User 별권한부여 Project 별 Resource 제한가능 (CPU, Memory 포함 ) Deployment Config BuildConfig

Build, Deployment, Pod app.cloud.rp.com Route 현재실행중인 APP Pod 14 번째배포이미지사용중 172.17.10.23 Service Node 로배포된내역 Application Pod Deployment Config BuildConfig 소스빌드내역 (Master)

BuildConfig BuildConfig 는설정된내용을기반으로 Build 를실행하는역할을한다. 가져올 Application 정보 사용할 Image / 결과 Image Git Repository URL: http://gitlab.test.rp.co.kr/root/ncis-eap70.git Git Reference: master Context Dir: simple-app Build From : openshift/ncis-eap70-openshift:1.4 Push To: myproject/ncis-eap70-openshift:latest

Git OCP Builder 는원격지의소스를가져오기위한방법으로 Git 서버를사용한다. Branch Reference 는 master, Context 는 / 로설정하면 git clone 시 Git 서버의모든히스토리까지받게되므로소스의용량이커지고오래걸린다. 용량을줄이려면아래와같이 Git Reference 를빈칸으로남겨둬야한다. 소스와전체히스토리복사 Git Repository URL: http://gitlab.test.rp.co.kr/root/ncis-eap70.git Git Reference: master Context Dir: / 소스와최종히스토리만복사 (--depth=1) Git Repository URL: http://gitlab.test.rp.co.kr/root/ncis-eap70.git Git Reference: Context Dir: /

6. 배포및롤백 Deployment Rollback

Deployment Deployment 는 Build 에의해생성된이미지를 Node 로배포하여실행시키는것을말한다. 배포할 Image 배포방법 Image Stream Tag: myproject/ncis:latest Image 가변경되면자동으로배포 : yes 설정이바뀌면자동으로배포 : yes Strategy Type: Rolling Max Num Unavailable Pods: 25% ( ¼ 씩 Rolling 배포 ) Replicas: 4 ( 동시에유지할 Pod 개수 )

Rollback Rollback 은기존에배포됐던특정시점으로어플리케이션을다시배포하는것을말한다. Openshift 는기존 Deployment 이미지를그대로유지하고있으므로쉽게 Rollback 이가능하다. 배포내역

7. 서비스확장 Manual Scale-Out Resource Limits Auto-Scaler

Manual Scale-out 실행될 Pod 의개수를화살표로조정할수있다.

Resource Limit 컨테이너가최대로사용할수있는 CPU 와 Memory 를지정할수있다.

Auto-Scaler 지정된 CPU 사용율에따라 Pod 의개수가자동으로증가또는감소하게설정가능하다.

EAP7 Application

감사합니다 midware@rockplace.co.kr