기존 VM으로 운영되던 Jenkins는 master가 있고 slave(vm n대 설정)를 연결시키면 slave가 job을 master로 부터 받아서 수행했엇다.
하지만 VM으로 운영되는 Jenkins(master-slave) 구조는 아래와 같은 단점이 있다.
Job에 필요한 plugin들을 master에 설치, 관리 필요
Job에 비해서 slave가 많으면 비효율적임
(slave가 놀고 있음)
Job에 비해서 slave가 적으면 비효율적임
(slave가 부족해서 기다리는 job이 많아짐)
즉, Job이 늘어나고 줄어듦에 따라 Jenkins slave를 늘리거나 줄여야하는(사람이 직접 설치해야하는) 단점!!
def label = "mypod-${UUID.randomUUID().toString()}" podTemplate(label: label, containers: [ containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'), containerTemplate(name: 'golang', image: 'golang:1.8.0', ttyEnabled: true, command: 'cat') ]) { node(label) { stage('Get a Maven project') { git 'https://github.com/jenkinsci/kubernetes-plugin.git' container('maven') { stage('Build a Maven project') { sh 'mvn -B clean install' } } } stage('Get a Golang project') { git url: 'https://github.com/hashicorp/terraform.git' container('golang') { stage('Build a Go project') { sh """ mkdir -p /go/src/github.com/hashicorp ln -s `pwd` /go/src/github.com/hashicorp/terraform cd /go/src/github.com/hashicorp/terraform && make core-dev """ } } } } }
| 쿠버네티스 RBAC(Role-based Access Control) 상세 설명 및 예제 (1) | 2018.06.26 |
|---|---|
| [쿠버네티스 기초]spring boot rest application POD 배포하기(part2) (0) | 2018.06.26 |
| [쿠버네티스 기초]spring boot rest application POD 배포하기(part1) (1) | 2018.06.25 |
| 쿠버네티스 yaml 선언시 어떤 apiVersion을 사용해야 할까? (1) | 2018.06.24 |
| 쿠버네티스 yaml 스펙 상세 설명 (0) | 2018.06.24 |
| 쿠버네티스 관리자 계정 들어가기 (0) | 2018.05.03 |