안내

설치 과정을 자세히 안내하였습니다만 이 글은 참고만 하시고, [Jenkins] 설치 및 구성 (New) 글을 진행하길 권장합니다.

본 설치 및 구성을 따라 진행할 경우, POD 재시작 시( ex: 재부팅, Image layer 변경 등) 구성 정보의 일부 또는 전체를 잃을 수 있습니다.

Ubuntu 20.04 설치

Docker Desktop for Windows의 Kubernetes 기능을 활용하여 Jenkins 서비스를 시작할 서버를 생성합니다.

Docker Desktop for Windows에서 Kubernetes 기능 활성화

Powershell 열기(Windows Terminal)

Windows Terminal은 Microsoft Store에서 설치할 수 있습니다.

Ubuntu 이미지로 만든 Pod 생성

kubectl create deploy ubuntu20.04 --image=ubuntu -- sleep infinity

Pod 생성 확인

kubectl get po

# expected output
# NAME                           READY   STATUS    RESTARTS   AGE
# ubuntu20.04-744464c66f-x7q6l   1/1     Running   0          27m

Jenkins

설치

Docker hub에 업로드 된 Jenkins 공식 이미지 는 더 이상 사용할 수 없으니 주의바랍니다.

Ubuntu container에 접속 (Shell)

# one container in a Pod
kubectl exec -it ubuntu20.04-744464c66f-x7q6l -- /bin/bash
# 2 or More containers in a Pod
kubectl exec -it ubuntu20.04-744464c66f-x7q6l --container ubuntu -- /bin/bash

# expected output
# root@ubuntu20:/#

Jenkins 설치에 필요한 패키지 설치

apt-get update && apt-get -y install sudo wget gnupg2 vim

JAVA 설치

apt search openjdk
apt-get install openjdk-11-jdk

# Check your java version
java -version

# expected output
# openjdk 11.0.11 2021-04-20
# OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
# OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Jenkins 설치 (https://pkg.jenkins.io/debian-stable/)

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

# expected output
# OK
echo "deb https://pkg.jenkins.io/debian-stable binary/" >> /etc/apt/sources.list
apt-get update && sudo apt-get install jenkins -y

# Add jenkins account at /etc/sudoers
echo 'jenkins ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
설정

(선택사항) Jenkins 설정파일을 열어 HTTP Port를 변경합니다.

Jenkins 설정파일 열기 (/etc/default/jenkins)

HTTP_PORT=9000으로 변경 (기본값 : HTTP_PORT=8080)

vi /etc/default/jenkins

# In your config file

# HTTP_PORT=8000
HTTP_PORT=9000
서비스 시작

Jenkins 서비스를 시작한 다음, 원격에서 접속할 수 있도록 서비스를 노출합니다.

Jenkins 서비스 시작

service jenkins start

# expected output
# Correct java version found
#  * Starting Jenkins Automation Server jenkins

Kubernetes 서비스 생성

kubectl expose deploy --name ubuntu ubuntu20.04 --port=9000 --type=NodePort

Nodeport 확인 (ex: 30032, 30000-32767 범위 내의 숫자로 나옴 )

 kubectl get svc

# expected output
# NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
# kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP          22h
# ubuntu       NodePort    10.97.72.132   <none>        9000:30032/TCP   3s

Jenkins 비밀번호 복사

cat /var/lib/jenkins/secrets/initialAdminPassword

# expected output
# 38f693d748a04

위에서 확인한 Nodeport를 입력하여 접속합니다.

http://127.0.0.1:30032/로 접속

비밀번호 입력

Continue 선택

Select plugins to install 선택

SSH Agent, NodeJS, Github, Publish Over SSH 선택

Install 선택

계정 정보 입력

Save and Continue 선택

Save and Finish 선택

언어 변경

(선택사항) 언어를 한국어에서 영어로 변경합니다.

Jenkins 관리 선택

플러그인 관리

설치 가능 선택

locale 입력

Locale 플러그인 선택

Install without restart 선택

Jenkins 관리 선택

시스템 설정 선택