Kubernetes in Jenkins Pipeline

남현우·2023년 4월 25일
0

쿠버네티스 파드의 젠킨스에서 파이프 라인으로 빌드 및 배포하기

Dashboard > Jenkins 관리 > Credentials
Images registry 로그인 용 Crendential 만들기

  • Add Credentials

새로운 Item > Pipeline

pipeline {
  agent any
  stages {
    stage('git scm update') {
      steps {
        git url: 'https://github.com/my-Source/my.git', branch: 'main'
      }
    }

	stage('Docker Repository Login') { 
       steps { 
         withCredentials([[$class: 'UsernamePasswordMultiBinding',
			credentialsId: 'docker-registry',
			usernameVariable: 'DOCKER_USER_ID',
			passwordVariable: 'DOCKER_USER_PASSWORD'
		 ]]){
				sh "docker login my.registry.com:8443 -u ${DOCKER_USER_ID} -p ${DOCKER_USER_PASSWORD}"
	        }
        } 
	}

    stage('docker build and push') {
      steps {
        sh '''
        docker build -t my.registry.com:8443/library/myProject .
        docker push my.registry.com:8443/library/myProject
        '''
      }
    }

	stage('deploy kubernetes') {
      steps {
        sh '''
        kubectl create deployment my-project --image=my.registry.com:8443/library/myProject
        kubectl expose deployment myProject --type=LoadBalancer --port=8080 \
                                               --target-port=80 --name=myProject-svc
        '''
      }
    }
  }
}

stage 1. Git 소스 다운로드
stage 2. Private Image Repository 로그인
stage 3. Repository에 docker build % push
stage 4. Kubernetes deploy 하기.

10번의 시도 끝에 성공!!!!!
(docker is not found -> HostPath 연결
docker.sock permission -> runAsGroup 추가
kubectl 실행 권한 에러 -> ClusterRole 추가) 등등...

profile
노력하는 프로그래머

0개의 댓글