Post

데브코스 TIL - 젠킨슨 프로젝트 설정

젠킨슨 프로젝트 설정

실습 단계

  1. 프로젝트 소스가 담긴 github 레포지토리 준비
  2. 젠킨스의 빌드 환경 설정
  3. Docker를 이용하여 이미지를 빌드하고 Docker Hub 레지스트리에 푸시
  4. kubectl을 이용하여 레지스트리로부터 이미지를 가져다가 같은 클러스터에 배포

실습

1. github 레포지토리 준비

https://github.com/hyemin12/pl-exp

2. 젠킨슨 플러그인 설치하기

  • Docker Pipeline
  • Kubernetes CLI

3. new Item 버튼 클릭해서 새로운 아이템 만들기

item name: simple-echo-1
Freestyle project

4. 아이템에 내용 작성하기

Source Code Management섹션에서 Git을 선택하고, 레포지토리 url 링크 작성하기

Build Steps에서 Execute shell을 클릭하고 내용 작성하기

1
2
docker build -t hyeem66/simple-echo .
docker push hyeem66/simple-echo

5. 새로운 pod template 만들기

Manage Jenkins - Clouds - kubernetes 에서 새로운 템플릿 만들기

구분내용
namesample
namespacedefault
labelsjenkins-sample-agent
UsageOnly build jobs with label expressions matching this node
pod template to ingerit fromdefault

컨테이너 1

구분내용
namejnlp
docker imagesheayun/jnlp-agent-sample
Command to run””
Arguments to pass to the command””
Environment Variable keyDOCKER_HOST
Environment Variable Valuetcp://localhost:2375

컨테이너 2

구분내용
namedind
docker imagedocker:latest
Command to run/usr/local/bin/dockerd-entrypoint.sh
Arguments to pass to the command””
Environment Variable keyDOCKER_TLS_CERTDIR
Environment Variable Value””

advanced 옵션의 Run in privileged mode 체크

6. simple-echo-1의 Configure에서 옵션 설정하기

Restrict where this project can be run

  • 이 아이템을 빌드할 때는 특정한 포트만을 사용하라.라고 지정하는 옵션

Restrict where this project can be run의 값으로 jenkins-sample-agent로 설정

7. 다시 빌드

Build Now버튼을 눌러 다시 빌드해보기

=> 빌드에 실패함

왜?

docker hub에 권한 설정을 하지 않았기 때문에!

8. dockerhub 정보 입력하기

Manage Jenkins - Credentials

global을 클릭하고 Add Credentials를 입력하기

9. 프로젝트에도 환경변수 설정하기

Configure - Build Environment - Use secret text(s) or file(s)

구분내용
Username VariableDOCKERHUB_USER
Password VariableDOCKERHUB_PASSWD
Credentials직전에 만든 dockerhub credential 선택

Configure - Build Steps

스크립트에 코드 추가하기

1
2
3
docker build -t hyeem66/simple-echo .
docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASSWD}
docker push hyeem66/simple-echo

10. 다시 빌드해보기

빌드가 성공하면 Configure - Build Steps

스크립트에 코드 추가하기

1
2
3
4
5
docker build -t hyeem66/simple-echo .
docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASSWD}
docker push hyeem66/simple-echo
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

11. 쿠버네티스 클러스터 접근 권한 설정 - 준비하기

1
vi ~/.kube/config

를 사용하여 config파일을 확인하면 다음과 같은 정보들이 포함되어 있음

  • 쿠버네티스 컨트롤로 플레인에 접속하기 위한 서버 url
  • 접속할 계정 이름
  • 계정을 인증하기 위하여 제출할 데이터

이 파일은 노출되면 안된다. 하지만 클러스터 내의 젠킨스에게는 알려줄 수 있다.

해당 파일의용을 kubeconfig파일에 복사해서 붙여넣기

server만 다음과 같이 수정

1
server: https://kubenetes.default

simple-echo1 - Configure - Build Environmet에 들어가서 credentials 등록하기

Configure Kubernetes CLI (kubectl) with multiple credentials 옵션 체크하고, 방금 생성한 kubeconfig credential 등록하기

12. 빌드가 성공된다면

1
kubectl get deployments
1
kubectl get svc

명령어를 입력해 제대로 작동하고 있는지 확인하고,

1
curl localhost:30000

을 입력하여 IP 주소를 확인

This post is licensed under CC BY 4.0 by the author.