SlideShare a Scribd company logo
Jenkins를 활용한 OpenShift CI/CD 구성
| 소속/성명 : 락플레이스 플랫폼서비스 본부
OpenShift 소개
⁻ Container
⁻ Docker / CRIO
⁻ Kubernetes
⁻ OpenShift
Opeshift CI/CD 구성
⁻ CI/CD
⁻ Openshift CI/CD
⁻ Sample Pipeline
Opeshift CI/CD 데모
⁻ Openshift CI/CD 구성도
⁻ 시나리오
⁻ 수행화면
⁻ 롤백
목차
01 02 03
01
OpenShift 소개
Container
단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템 들을 실행하기 위한 “OS 레벨 가상화” 방법이다. 응용프로 그램의 종속성과 함께 응용프
로그램 자체를 캡슐화한 형태로 일반적인 VM과 같이 OS의 격리된 인스턴스 형태로 제공
01 OpenShift 소개
APP Process
Isolated Env.
Docker
Docker
Docker는 리눅스 컨테이너 기술을 기반으로 하는 오픈 소스 가상화 플랫폼으로 오픈소스 커뮤니티 프로젝트로 기술 개발을 지원
01 OpenShift 소개
App 1
Bins/Libs
Docker Engine
Host OS
Infra Structure
Containerized Applications
App 2
Bins/Libs
App 3
Bins/Libs
App 4
Bins/Libs
Host OS
Infra Structure
Virtual Machine
App 1
Guest OS
Hypervisor
App 2
Guest OS
App 3
Guest OS
CRI-O
CRI-O
- Container engine implementing Kubernetes Container Runtime Interface
CRI-O
- Supports all OCI compatible container images
- Supports any container registry
- Supports all OCI container runtimes
01 OpenShift 소개
Kubernetes
What is Kubernetes ?
01 OpenShift 소개
▪ Service discovery and load balancing
▪ Storage orchestration
▪ Automated rollouts and rollbacks
▪ Automatic bin packing
▪ Self-healing
▪ Secret and configuration management
[참고] kubernetes.io
Worker Node3
Worker Node2
Kubernetes
Kubernetes Architecture
01 OpenShift 소개
kubectl
Kubernetes Master
Worker Node1
kubelet
Container Runtime
Kube-proxy
Pod
container
Controller
manager
scheduler
API
Server
etcd
Persistent
storage
Container
registry
Openshift
01 OpenShift 소개
“글로벌 Best 컨테이너 기술” “업계 최고의 컨테이너 관리 기술”
▪ 세계 컨테이너 기술의 표준 (OCI 선정)
▪ Docker와 완벽한 호환성
▪ 격리 기술을 통한 가장 높은 보안성 제공
▪ 구글에서 개발되고 사용하고 있는 Orchestration 기술
▪ 구글과 협력하여 지속적인 프로젝트 발전에 기여
▪ 실제 환경에서 가장 많은 Container를 Handling하며 기 안정화됨
Openshift
01 OpenShift 소개
컨테이너 이미지
DevOps
App 배포
서비스 확장
모니터링
Openshift
Architecture
01 OpenShift 소개
Red Hat OpenShift Container Platform은 기존 및 컨테이너 기반의 애플리케이션을 물리적 인프라, 가상 인프라, 퍼블릭 클라우드 인프라에 긴밀하게
개발, 배포 및 관리하도록 돕는 Docker 표준을 기반으로 한 애플리케이션 플랫폼입니다.
Openshift
Architecture
01 OpenShift 소개
api-server • controller-manager • etcd HaProxy
application pods
Mster 1 Master 2 Master 3 Router 1 Router 2
NAS
Master Router
Worker
Bootstrap
registry • router
• Monitoring •
EFK
Bastion VM
• Yum Rep
• Docker-Distribution
• PXE (HTTPD)
• TFTP
• DNS
• DHCP
• GitLab
Private network
External Network
Monitoring • EFK
Infra 1 Infra 2 Infra 3
Infra
Master API ( 6443, 22623)
Application ( 80 , 443 )
Worker N
Worker 2
Worker 1 Worker 3
registry 1 registry 2
Image registry
registry
Openshift
Build & Deploy Container Images
02 Openshift CI/CD 구성
DEPLOY YOUR
SOURCE CODE
DEPLOY YOUR
APP BINARY
DEPLOY YOUR
CONTAINER IMAGE
Openshift
Build & Deploy Container Images
S2I 빌드 배포 ( SOURCE CODE )
02 Openshift CI/CD 구성
BUILD APP
BUILD IMAGE
DEPLOY
push
Git repository
Source-to-image
(S2I)
Builder Image Image registry
Application
Container
Openshift
Build & Deploy Container Images
S2I 빌드 배포 ( APPLICATION BINARY )
02 Openshift CI/CD 구성
BUILD APP
BUILD IMAGE
DEPLOY
Build
Application Binary
Source-to-image
(S2I)
Builder Image Image registry
Application
Container
Existing Build
Process
Openshift
Build & Deploy Container Images
Docker Image 배포
02 Openshift CI/CD 구성
BUILD APP
PUSH
DEPLOY
Build
Application Image
Application
Container
Existing Build
Process
Image registry
02
Openshift
CI/CD 구성
CI/CD (Continuous Integration / Continuous Delivery )
CONTINUOUS DELIVERY WITH CONTAINERS
02 Openshift CI/CD 구성
source
repository
dev Application
Container
CI/CD
physical
virtual
public cloud
priveate cloud
CI/CD (Continuous Integration / Continuous Delivery )
BUILDS
- Webhook triggers
- Image trigger
- Build hooks
DEPLOYMENTS
- Deployment triggers
02 Openshift CI/CD 구성
push
Git repository
Source-to-image
(S2I)
Builder Image Image registry
Application
Container
Deployment
triggers
Image
trigger
Webhook
triggers
Build
hooks
Openshift CI/CD
Multiple Deployment Methods for OpenShift
Option 1: Use provided JBoss EAP 7 S2I template
02 Openshift CI/CD 구성
[참고] openshift.com
Openshift CI/CD
Multiple Deployment Methods for OpenShift
Option 2: Bring your own S2I template
02 Openshift CI/CD 구성
[참고] openshift.com
Openshift CI/CD
Multiple Deployment Methods for OpenShift
Option 3: Custom S2I for binary deployment
02 Openshift CI/CD 구성
[참고] openshift.com
Openshift CI/CD
Multiple Deployment Methods for OpenShift
Option 4: Build pipeline managed out of Source code
02 Openshift CI/CD 구성
[참고] openshift.com
Openshift CI/CD
Multiple Deployment Methods for OpenShift
Option 5: Build pipeline managed within Source code
02 Openshift CI/CD 구성
[참고] openshift.com
Openshift CI/CD
Jenkins & Openshift Pipeline
JENKINS-AS-A SERVICE HYBRID JENKINS INFRA
02 Openshift CI/CD 구성
Jenkins
(S2I)
Plugins
Jobs
Configuration
Custom
Image
Jenkins
(S2I)
Plugins
Jobs
Configuration
Custom
Image
Openshift CI/CD
Jenkins & Openshift Pipeline
EXISTING CI/CD DEPLOY TO OPENSHIFT
02 Openshift CI/CD 구성
Source to Image
( S2I )
Git repository
Custon
Image
Source Build
Source pull
Openshift CI/CD
Jenkins & Openshift Pipeline
02 Openshift CI/CD 구성
Sample Pipeline
Jenkins & Pipeline
02 Openshift CI/CD 구성
developer
CD
CI
DEV
commit
webhook
Build / QA / test
Push / deploy
Sample Pipeline
Jenkins & Openshift Pipeline
02 Openshift CI/CD 구성
developer
CD
CI
DEV
Source
2 image
Application
Worker Node
commit webhook
Build QA / test
deploy
03
Openshift
CI/CD 데모
Openshift CI/CD 구성도
Openshift4 CI/CD 구성 솔루션
03 Openshift CI/CD 데모
Persistent
Volume(NFS)
GitLab
내부 시스템
Openshift Cluster System 설명
⚫ GitLab서버는 내부시스템에
docker로 기동
⚫ 데이터 저장용 NFS 구성하여
Persistent Volume 생성
⚫ CI/CD를 구성하는 솔루션들은
Openshift내에 구성하여
컨테이너로 서비스
⚫ WAS용도의 JBossEAP7 구성하여
git 소스 반영하여 배포
CoreOS
Worker 노드
Openshift CI/CD 구성도
Openshift내의 Topology
03 Openshift CI/CD 데모
시나리오
Jenkins를 통한 Pipeline 구성
03 Openshift CI/CD 데모
RedHat
OpenShift
Image
Registry
GitLab
Server
Clone
Source
Maven
Build
Source
Analyis
Build
Image
Nexus
(dependency)
SonarQube
Build
Config
Jenkins
Deploy
수행
OpenShift
DEV 배포
developer
Jenkinsfile
Jenkins
Pipeline
시나리오
Jenkinsfile에 Pipeline을 단계별로 수행하는 스크립트 작성
03 Openshift CI/CD 데모
node('maven') {
stage('Clone sources’) {
sh " oc whoami"
sh " pwd ; id;"
git url: "http://gitlab.wsjeong.ocp4.local/ocp4/mlbparks_test"
}
stage('Maven Build') {
sh "cp settings.xml ~/.m2/"
sh "mvn package"
}
stage('Source Analysis ') {
sh "mvn sonar:sonar 
-Dsonar.projectKey=jenkins-sonarqube -Dsonar.host.url=http://sonarqube-rockplace.apps.wsjeong.ocp4.local 
-Dsonar.login=f56c996e9df7bb3fb8294baf630b7fcc93d43fd1"
}
stage('Build Image(OCP Deploy)') {
sh "oc start-build mlbparks-app --from-file=target/mlbparks-1.0.war --follow"
}
}
프로젝트 내
솔루션 위주
시나리오
JenkinsPipeline 생성(OpenShift 콘솔 -> Builds -> Create Build Config -> BuildConfig 생성)
03 Openshift CI/CD 데모
시나리오 수행 #1
OpenShift 콘솔 -> Builds -> BuildConfig 선택 -> Actions(Start Build)
03 Openshift CI/CD 데모
시나리오 수행 #2
OpenShift 콘솔에서 JenkinsPipeline 수행확인
03 Openshift CI/CD 데모
시나리오 수행 #3
OpenShift 콘솔에서 builds 내역확인
03 Openshift CI/CD 데모
시나리오 수행 #4
Jenkins 대쉬보드에서 Console Output 확인
03 Openshift CI/CD 데모
시나리오 수행 #5
Jenkins 대쉬보드에서 build history 확인
03 Openshift CI/CD 데모
시나리오 수행 #6
Jenkins 대쉬보드 -> Item선택 -> Job선택 -> Build Now
03 Openshift CI/CD 데모
시나리오 수행 #7
Sonarqube 대쉬보드에서 소스분석 내역확인
03 Openshift CI/CD 데모
시나리오 수행 #8
서비스 페이지 호출
03 Openshift CI/CD 데모
시나리오 수행 #9
index.html 파일 변경(제목, 위도, 경도변경)후 push
03 Openshift CI/CD 데모
[참고 github : https://github.com/gshipley/mlbparks ]
시나리오 수행 #10
변경된 소스로 서비스확인(브라우져 호출)
03 Openshift CI/CD 데모
기존 변경
롤백
Openshift에서 제공하는 rollback 기능으로 기존이미지로 변경
03 Openshift CI/CD 데모
변경 기존
# oc rollout latest dc/mlbparks-app
deploymentconfig.apps.openshift.io/mlbparks-app rolled out
• 특정 deploy 버전으로 가기위해 버전명 명시하여 실행
• oc rollout undo dc/mlbparks-app --to-revision=8
데모영상
03 Openshift CI/CD 데모
Thank you

More Related Content

What's hot

오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0sprdd
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
SeungYong Oh
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Martin Danielsson
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
Seung-Hoon Baek
 
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10![웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
Open Source Consulting
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
Opennaru, inc.
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
Ji-Woong Choi
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
Ji-Woong Choi
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
Kubernetes
KubernetesKubernetes
Kubernetes
erialc_w
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
Amazon Web Services Korea
 
Ceph issue 해결 사례
Ceph issue 해결 사례Ceph issue 해결 사례
Ceph issue 해결 사례
Open Source Consulting
 
Deploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatDeploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red Hat
Amazon Web Services
 
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
Open Source Consulting
 
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
Jo Hoon
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
EastBanc Tachnologies
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
Yongbok Kim
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
SONG INSEOB
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 
Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례
Opennaru, inc.
 

What's hot (20)

오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0오픈소스컨설팅 클러스터제안 V1.0
오픈소스컨설팅 클러스터제안 V1.0
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10![웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
 
Ceph issue 해결 사례
Ceph issue 해결 사례Ceph issue 해결 사례
Ceph issue 해결 사례
 
Deploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatDeploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red Hat
 
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법[오픈소스컨설팅] EFK Stack 소개와 설치 방법
[오픈소스컨설팅] EFK Stack 소개와 설치 방법
 
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례
 

Similar to Jenkins를 활용한 Openshift CI/CD 구성

[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
Tommy Lee
 
Docker Container
Docker ContainerDocker Container
Docker Container
Seung-Hoon Baek
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
SeungYong Baek
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
Open Source Consulting
 
DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)
완철 김
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
NAVER D2
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
Sang Don Kim
 
DevOps Study
DevOps StudyDevOps Study
DevOps Study
상환 이
 
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
Amazon Web Services Korea
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
Software in Life
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_post
Inho Kang
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
용호 최
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
Hankyo
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
rockplace
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
Joongi Kim
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
어형 이
 
oVirt introduction
oVirt introduction oVirt introduction
oVirt introduction
Rogan Kyuseok Lee
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
YoungSu Son
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
OpenStack Korea Community
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
Ubuntu Korea Community
 

Similar to Jenkins를 활용한 Openshift CI/CD 구성 (20)

[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 3.open shift 분석
 
Docker Container
Docker ContainerDocker Container
Docker Container
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)DevOps (AWS, Docker, Ansible, Jenkins)
DevOps (AWS, Docker, Ansible, Jenkins)
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
 
DevOps Study
DevOps StudyDevOps Study
DevOps Study
 
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
AWS Code 서비스 특집 - 아마존 DevOps와 CodeDeploy, CodePipeline (윤석찬)
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_post
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
oVirt introduction
oVirt introduction oVirt introduction
oVirt introduction
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
[OpenInfra Days Korea 2018] (Track 3) Software Defined Infrastructure 전략 및 사례
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
 

More from rockplace

MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개
rockplace
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
rockplace
 
JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop
rockplace
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetes
rockplace
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure
rockplace
 
[락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 [락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료
rockplace
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQL
rockplace
 
DB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLDB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQL
rockplace
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDB
rockplace
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQL
rockplace
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQL
rockplace
 
Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB
rockplace
 
Red Hat Openshift Container Platform
Red Hat Openshift Container Platform Red Hat Openshift Container Platform
Red Hat Openshift Container Platform
rockplace
 
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
rockplace
 
SQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database MigrationSQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database Migration
rockplace
 
Azure SQL Database
Azure SQL DatabaseAzure SQL Database
Azure SQL Database
rockplace
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
rockplace
 
Azure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDBAzure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDB
rockplace
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
rockplace
 
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
rockplace
 

More from rockplace (20)

MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
 
JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetes
 
JBoss EAP on Azure
JBoss EAP on Azure JBoss EAP on Azure
JBoss EAP on Azure
 
[락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 [락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQL
 
DB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLDB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQL
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDB
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQL
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQL
 
Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB
 
Red Hat Openshift Container Platform
Red Hat Openshift Container Platform Red Hat Openshift Container Platform
Red Hat Openshift Container Platform
 
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
 
SQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database MigrationSQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database Migration
 
Azure SQL Database
Azure SQL DatabaseAzure SQL Database
Azure SQL Database
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
 
Azure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDBAzure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDB
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
 
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
 

Jenkins를 활용한 Openshift CI/CD 구성

  • 1. Jenkins를 활용한 OpenShift CI/CD 구성 | 소속/성명 : 락플레이스 플랫폼서비스 본부
  • 2. OpenShift 소개 ⁻ Container ⁻ Docker / CRIO ⁻ Kubernetes ⁻ OpenShift Opeshift CI/CD 구성 ⁻ CI/CD ⁻ Openshift CI/CD ⁻ Sample Pipeline Opeshift CI/CD 데모 ⁻ Openshift CI/CD 구성도 ⁻ 시나리오 ⁻ 수행화면 ⁻ 롤백 목차 01 02 03
  • 4. Container 단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템 들을 실행하기 위한 “OS 레벨 가상화” 방법이다. 응용프로 그램의 종속성과 함께 응용프 로그램 자체를 캡슐화한 형태로 일반적인 VM과 같이 OS의 격리된 인스턴스 형태로 제공 01 OpenShift 소개 APP Process Isolated Env. Docker
  • 5. Docker Docker는 리눅스 컨테이너 기술을 기반으로 하는 오픈 소스 가상화 플랫폼으로 오픈소스 커뮤니티 프로젝트로 기술 개발을 지원 01 OpenShift 소개 App 1 Bins/Libs Docker Engine Host OS Infra Structure Containerized Applications App 2 Bins/Libs App 3 Bins/Libs App 4 Bins/Libs Host OS Infra Structure Virtual Machine App 1 Guest OS Hypervisor App 2 Guest OS App 3 Guest OS
  • 6. CRI-O CRI-O - Container engine implementing Kubernetes Container Runtime Interface CRI-O - Supports all OCI compatible container images - Supports any container registry - Supports all OCI container runtimes 01 OpenShift 소개
  • 7. Kubernetes What is Kubernetes ? 01 OpenShift 소개 ▪ Service discovery and load balancing ▪ Storage orchestration ▪ Automated rollouts and rollbacks ▪ Automatic bin packing ▪ Self-healing ▪ Secret and configuration management [참고] kubernetes.io
  • 8. Worker Node3 Worker Node2 Kubernetes Kubernetes Architecture 01 OpenShift 소개 kubectl Kubernetes Master Worker Node1 kubelet Container Runtime Kube-proxy Pod container Controller manager scheduler API Server etcd Persistent storage Container registry
  • 9. Openshift 01 OpenShift 소개 “글로벌 Best 컨테이너 기술” “업계 최고의 컨테이너 관리 기술” ▪ 세계 컨테이너 기술의 표준 (OCI 선정) ▪ Docker와 완벽한 호환성 ▪ 격리 기술을 통한 가장 높은 보안성 제공 ▪ 구글에서 개발되고 사용하고 있는 Orchestration 기술 ▪ 구글과 협력하여 지속적인 프로젝트 발전에 기여 ▪ 실제 환경에서 가장 많은 Container를 Handling하며 기 안정화됨
  • 10. Openshift 01 OpenShift 소개 컨테이너 이미지 DevOps App 배포 서비스 확장 모니터링
  • 11. Openshift Architecture 01 OpenShift 소개 Red Hat OpenShift Container Platform은 기존 및 컨테이너 기반의 애플리케이션을 물리적 인프라, 가상 인프라, 퍼블릭 클라우드 인프라에 긴밀하게 개발, 배포 및 관리하도록 돕는 Docker 표준을 기반으로 한 애플리케이션 플랫폼입니다.
  • 12. Openshift Architecture 01 OpenShift 소개 api-server • controller-manager • etcd HaProxy application pods Mster 1 Master 2 Master 3 Router 1 Router 2 NAS Master Router Worker Bootstrap registry • router • Monitoring • EFK Bastion VM • Yum Rep • Docker-Distribution • PXE (HTTPD) • TFTP • DNS • DHCP • GitLab Private network External Network Monitoring • EFK Infra 1 Infra 2 Infra 3 Infra Master API ( 6443, 22623) Application ( 80 , 443 ) Worker N Worker 2 Worker 1 Worker 3 registry 1 registry 2 Image registry registry
  • 13. Openshift Build & Deploy Container Images 02 Openshift CI/CD 구성 DEPLOY YOUR SOURCE CODE DEPLOY YOUR APP BINARY DEPLOY YOUR CONTAINER IMAGE
  • 14. Openshift Build & Deploy Container Images S2I 빌드 배포 ( SOURCE CODE ) 02 Openshift CI/CD 구성 BUILD APP BUILD IMAGE DEPLOY push Git repository Source-to-image (S2I) Builder Image Image registry Application Container
  • 15. Openshift Build & Deploy Container Images S2I 빌드 배포 ( APPLICATION BINARY ) 02 Openshift CI/CD 구성 BUILD APP BUILD IMAGE DEPLOY Build Application Binary Source-to-image (S2I) Builder Image Image registry Application Container Existing Build Process
  • 16. Openshift Build & Deploy Container Images Docker Image 배포 02 Openshift CI/CD 구성 BUILD APP PUSH DEPLOY Build Application Image Application Container Existing Build Process Image registry
  • 18. CI/CD (Continuous Integration / Continuous Delivery ) CONTINUOUS DELIVERY WITH CONTAINERS 02 Openshift CI/CD 구성 source repository dev Application Container CI/CD physical virtual public cloud priveate cloud
  • 19. CI/CD (Continuous Integration / Continuous Delivery ) BUILDS - Webhook triggers - Image trigger - Build hooks DEPLOYMENTS - Deployment triggers 02 Openshift CI/CD 구성 push Git repository Source-to-image (S2I) Builder Image Image registry Application Container Deployment triggers Image trigger Webhook triggers Build hooks
  • 20. Openshift CI/CD Multiple Deployment Methods for OpenShift Option 1: Use provided JBoss EAP 7 S2I template 02 Openshift CI/CD 구성 [참고] openshift.com
  • 21. Openshift CI/CD Multiple Deployment Methods for OpenShift Option 2: Bring your own S2I template 02 Openshift CI/CD 구성 [참고] openshift.com
  • 22. Openshift CI/CD Multiple Deployment Methods for OpenShift Option 3: Custom S2I for binary deployment 02 Openshift CI/CD 구성 [참고] openshift.com
  • 23. Openshift CI/CD Multiple Deployment Methods for OpenShift Option 4: Build pipeline managed out of Source code 02 Openshift CI/CD 구성 [참고] openshift.com
  • 24. Openshift CI/CD Multiple Deployment Methods for OpenShift Option 5: Build pipeline managed within Source code 02 Openshift CI/CD 구성 [참고] openshift.com
  • 25. Openshift CI/CD Jenkins & Openshift Pipeline JENKINS-AS-A SERVICE HYBRID JENKINS INFRA 02 Openshift CI/CD 구성 Jenkins (S2I) Plugins Jobs Configuration Custom Image Jenkins (S2I) Plugins Jobs Configuration Custom Image
  • 26. Openshift CI/CD Jenkins & Openshift Pipeline EXISTING CI/CD DEPLOY TO OPENSHIFT 02 Openshift CI/CD 구성 Source to Image ( S2I ) Git repository Custon Image Source Build Source pull
  • 27. Openshift CI/CD Jenkins & Openshift Pipeline 02 Openshift CI/CD 구성
  • 28. Sample Pipeline Jenkins & Pipeline 02 Openshift CI/CD 구성 developer CD CI DEV commit webhook Build / QA / test Push / deploy
  • 29. Sample Pipeline Jenkins & Openshift Pipeline 02 Openshift CI/CD 구성 developer CD CI DEV Source 2 image Application Worker Node commit webhook Build QA / test deploy
  • 31. Openshift CI/CD 구성도 Openshift4 CI/CD 구성 솔루션 03 Openshift CI/CD 데모 Persistent Volume(NFS) GitLab 내부 시스템 Openshift Cluster System 설명 ⚫ GitLab서버는 내부시스템에 docker로 기동 ⚫ 데이터 저장용 NFS 구성하여 Persistent Volume 생성 ⚫ CI/CD를 구성하는 솔루션들은 Openshift내에 구성하여 컨테이너로 서비스 ⚫ WAS용도의 JBossEAP7 구성하여 git 소스 반영하여 배포 CoreOS Worker 노드
  • 32. Openshift CI/CD 구성도 Openshift내의 Topology 03 Openshift CI/CD 데모
  • 33. 시나리오 Jenkins를 통한 Pipeline 구성 03 Openshift CI/CD 데모 RedHat OpenShift Image Registry GitLab Server Clone Source Maven Build Source Analyis Build Image Nexus (dependency) SonarQube Build Config Jenkins Deploy 수행 OpenShift DEV 배포 developer Jenkinsfile Jenkins Pipeline
  • 34. 시나리오 Jenkinsfile에 Pipeline을 단계별로 수행하는 스크립트 작성 03 Openshift CI/CD 데모 node('maven') { stage('Clone sources’) { sh " oc whoami" sh " pwd ; id;" git url: "http://gitlab.wsjeong.ocp4.local/ocp4/mlbparks_test" } stage('Maven Build') { sh "cp settings.xml ~/.m2/" sh "mvn package" } stage('Source Analysis ') { sh "mvn sonar:sonar -Dsonar.projectKey=jenkins-sonarqube -Dsonar.host.url=http://sonarqube-rockplace.apps.wsjeong.ocp4.local -Dsonar.login=f56c996e9df7bb3fb8294baf630b7fcc93d43fd1" } stage('Build Image(OCP Deploy)') { sh "oc start-build mlbparks-app --from-file=target/mlbparks-1.0.war --follow" } } 프로젝트 내 솔루션 위주
  • 35. 시나리오 JenkinsPipeline 생성(OpenShift 콘솔 -> Builds -> Create Build Config -> BuildConfig 생성) 03 Openshift CI/CD 데모
  • 36. 시나리오 수행 #1 OpenShift 콘솔 -> Builds -> BuildConfig 선택 -> Actions(Start Build) 03 Openshift CI/CD 데모
  • 37. 시나리오 수행 #2 OpenShift 콘솔에서 JenkinsPipeline 수행확인 03 Openshift CI/CD 데모
  • 38. 시나리오 수행 #3 OpenShift 콘솔에서 builds 내역확인 03 Openshift CI/CD 데모
  • 39. 시나리오 수행 #4 Jenkins 대쉬보드에서 Console Output 확인 03 Openshift CI/CD 데모
  • 40. 시나리오 수행 #5 Jenkins 대쉬보드에서 build history 확인 03 Openshift CI/CD 데모
  • 41. 시나리오 수행 #6 Jenkins 대쉬보드 -> Item선택 -> Job선택 -> Build Now 03 Openshift CI/CD 데모
  • 42. 시나리오 수행 #7 Sonarqube 대쉬보드에서 소스분석 내역확인 03 Openshift CI/CD 데모
  • 43. 시나리오 수행 #8 서비스 페이지 호출 03 Openshift CI/CD 데모
  • 44. 시나리오 수행 #9 index.html 파일 변경(제목, 위도, 경도변경)후 push 03 Openshift CI/CD 데모 [참고 github : https://github.com/gshipley/mlbparks ]
  • 45. 시나리오 수행 #10 변경된 소스로 서비스확인(브라우져 호출) 03 Openshift CI/CD 데모 기존 변경
  • 46. 롤백 Openshift에서 제공하는 rollback 기능으로 기존이미지로 변경 03 Openshift CI/CD 데모 변경 기존 # oc rollout latest dc/mlbparks-app deploymentconfig.apps.openshift.io/mlbparks-app rolled out • 특정 deploy 버전으로 가기위해 버전명 명시하여 실행 • oc rollout undo dc/mlbparks-app --to-revision=8