
Kubernetes에 Jenkins를 설치하는 방법
2022-06-01 last update
10 minutes reading Kubernetes CI/CD저자는 COVID-19 Relief Fund 계획의 일부로 기부를 받기로 했다.
Write for DOnations 파이핑은 DevOps 환경의 핵심 구성 요소 중 하나입니다.그것들은 여러 팀 간의 업무 절차를 간소화하고 생산력을 향상시키는 데 도움이 된다.Continuous Integration/Continuous Deployment (CI/CD), CI/CD 파이프를 설정할 수 있습니다.
이 강좌에서는 Kubernetes에 Jenkins를 설치합니다.그런 다음 Jenkins UI에 액세스하여 샘플 파이핑을 실행합니다.
본 강좌를 배우려면 다음이 필요합니다. 작업하는 Kubernetes 클러스터와
Kubernetes에는 YAML 또는 Follow our Kubernetes Quickstart 를 사용하여 원하는 상태를 전달할 수 있는 선언적 API가 있습니다.이 강좌에서는 YAML 파일을 사용하여 Jenkins를 배포합니다.클러스터에 대해
먼저
젠킨스.아마르
현재
pod가 실행되면 the Jenkins LTS image 필요합니다.이 강좌는 사용됩니다expose it using a Service.또한 Jenkins에 연결할 Cluster IP 유형의 서비스도 작성합니다.
젠킨스 서비스.아마르
현재 같은 네임스페이스에 서비스를 만듭니다.
이 단계에서는 Jenkins UI에 액세스하고 탐색합니다.클러스터 노드의 포트
웹 브라우저를 열고
관리자 암호를 묻고 Jenkins Pod 로그에서 이 암호를 검색하는 페이지가 나타납니다.
이 로그에서 비밀번호를 추출하려면
먼저 터미널로 돌아가서 Pod 이름을 검색합니다.
비밀번호를 입력하면 Jenkins에서 플러그인을 설치하라는 메시지가 표시됩니다.심상치 않은 일을 하지 않았기 때문에, 제안된 플러그인을 설치하는 것을 선택하십시오.
설치 후 Jenkins는 새 페이지를 불러오고 관리자를 만들 것을 요구합니다.필드를 작성하거나 관리자로 건너뛰기 및 계속하기 링크를 눌러 이 단계를 건너뜁니다.사용자 이름은 admin이고 암호는
인스턴스 구성을 묻는 다른 화면이 나타납니다.Not now 링크를 클릭하고 계속합니다.
그런 다음 Jenkins가 선택한 요약 정보를 만들고 Jenkins가 준비되었음을 인쇄합니다!Jenkins 시작 을 클릭하면 Jenkins 홈페이지가 표시됩니다.

이제 그룹에 Jenkins를 설치하고 설정했습니다. 그 기능을 보여주고 예시 파이프를 실행합니다.
Jenkins는 파이프라인을 생성하고 CI/CD 워크플로우를 관리하는 데 능숙합니다.이 단계에서 우리는 Jenkins의 예시 파이프라인을 구축할 것이다.
Jenkins 홈 페이지에서 왼쪽 메뉴에서 New item 링크를 클릭합니다.
새 페이지가 나타납니다.Pipeline을 선택하고 OK 를 누릅니다.

Jenkins가 파이프 구성으로 리디렉션합니다.파이프 부분을 찾아서 try sample Pipeline 드롭다운 메뉴에서 Hello World를 선택하십시오.이 메뉴는 오른쪽에 표시됩니다.Hello World를 선택한 후 저장 버튼을 클릭합니다.

Jenkins가 파이프 홈 페이지로 리디렉션합니다.왼쪽 메뉴에서build now를 누르면 파이프가 작동하는 것을 관찰합니다.#1은 첫 번째 생성임을 나타냅니다.작업이 완료되면 구축에 대한 통계 정보를 볼 수 있습니다.

또한 콘솔 출력을 확인하여 파이프가 실행될 때 발생하는 상황을 볼 수 있습니다.#1에 마우스를 놓으면 드롭다운 메뉴가 나타납니다.생성된 세부 정보를 보려면 콘솔 출력을 선택합니다.
Hello World 파이프라인은 복잡하지 않지만 Jenkins가 CI/CD 워크플로우를 만들고 관리하는 능력을 증명합니다.
이 강좌에서 Kubernetes 그룹에 Jenkins를 설치하고 설정한 다음 예시 파이프를 실행합니다.Jenkins에는 매우 복잡한 작업을 수행하는 데 도움이 되는 큰 플러그인 라이브러리가 있습니다.GitHub 저장소, 다양한 유형의 작업 인스턴스 등을 추가할 수도 있습니다.Jenkins 사용에 대한 자세한 내용the NodePort Service type.
소개
Write for DOnations 파이핑은 DevOps 환경의 핵심 구성 요소 중 하나입니다.그것들은 여러 팀 간의 업무 절차를 간소화하고 생산력을 향상시키는 데 도움이 된다.Continuous Integration/Continuous Deployment (CI/CD), CI/CD 파이프를 설정할 수 있습니다.
이 강좌에서는 Kubernetes에 Jenkins를 설치합니다.그런 다음 Jenkins UI에 액세스하여 샘플 파이핑을 실행합니다.
선결 조건
본 강좌를 배우려면 다음이 필요합니다.
kubectl
워크스테이션에 설치됩니다.Jenkins is a widely-used open source automation server Digital Ocean에 Kubernetes 클러스터를 구축합니다.1단계 - Kubernetes에 Jenkins 설치
Kubernetes에는 YAML 또는 Follow our Kubernetes Quickstart 를 사용하여 원하는 상태를 전달할 수 있는 선언적 API가 있습니다.이 강좌에서는 YAML 파일을 사용하여 Jenkins를 배포합니다.클러스터에 대해
kubectl
명령이 구성되어 있는지 확인합니다.먼저
kubectl
를 사용하여 JenkinsJSON file를 생성합니다.- kubectl create namespace jenkins
이제 Jenkins를 배치할 YAML 파일을 만듭니다.jenkins.yaml
또는 기본 설정 편집기를 사용하여 nano
라는 새 파일을 만들고 엽니다.- nano jenkins.yaml
이제 다음 코드를 추가하여 Jenkins 이미지, 포트 및 기타 구성을 정의합니다.젠킨스.아마르
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- name: http-port
containerPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins-vol
mountPath: /var/jenkins_vol
volumes:
- name: jenkins-vol
emptyDir: {}
이 YAML 파일은 namespace를 사용하여 생성deployment하고 포트8080
및 50000
를 엽니다.이 포트를 사용하여 각각 Jenkins에 액세스하고 Jenkins Workers의 연결을 수락할 수 있습니다.현재
jenkins
네임스페이스에 이 배포를 만듭니다.- kubectl create -f jenkins.yaml --namespace jenkins
Jenkins 이미지를 추출하고 Jenkins 크레인을 실행하는 데 몇 분의 시간을 주십시오.kubectl
를 사용하여 pod의 상태를 확인합니다.- kubectl get pods -n jenkins
다음 출력을 받게 됩니다.NAME READY STATUS RESTARTS AGE
jenkins-6fb994cfc5-twnvn 1/1 Running 0 95s
Pod 이름은 환경에서 다를 수 있음을 주의하십시오.pod가 실행되면 the Jenkins LTS image 필요합니다.이 강좌는 사용됩니다expose it using a Service.또한 Jenkins에 연결할 Cluster IP 유형의 서비스도 작성합니다.
jenkins-service.yaml
라는 새 파일을 만들고 엽니다.- nano jenkins-service.yaml
다음 코드를 추가하여 NodePort 서비스를 정의합니다.젠킨스 서비스.아마르
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30000
selector:
app: jenkins
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-jnlp
spec:
type: ClusterIP
ports:
- port: 50000
targetPort: 50000
selector:
app: jenkins
위의 YAML 파일에서 NodePort 서비스를 정의한 다음 Jenkinspod의 포트8080
를 포트30000
에 공개합니다.현재 같은 네임스페이스에 서비스를 만듭니다.
- kubectl create -f jenkins-service.yaml --namespace jenkins
서비스가 실행 중인지 확인합니다.- kubectl get services --namespace jenkins
다음 출력을 받게 됩니다.OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
jenkins NodePort your_cluster_ip <none> 8080:30000/TCP 15d
NodePort와 Jenkins가 실행됨에 따라 Jenkins UI에 액세스하고 탐색할 준비가 되었습니다.2단계 - Jenkins UI 액세스
이 단계에서는 Jenkins UI에 액세스하고 탐색합니다.클러스터 노드의 포트
30000
에서 NodePort 서비스에 액세스할 수 있습니다.Jenkins UI에 액세스하려면 노드 IP를 읽어들여야 합니다.kubectl
를 사용하여 노드 IP 검색:- kubectl get nodes -o wide
kubectl
외부 IP를 사용하여 출력을 생성합니다.OutputNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
your_node Ready <none> 16d v1.18.8 your_internal_ip your_external_ip Debian GNU/Linux 10 (buster) 4.19.0-10-cloud-amd64 docker://18.9.9
your_node Ready <none> 16d v1.18.8 your_internal_ip your_external_ip Debian GNU/Linux 10 (buster) 4.19.0-10-cloud-amd64 docker://18.9.9
your_node Ready <none> 16d v1.18.8 your_internal_ip your_external_ip Debian GNU/Linux 10 (buster) 4.19.0-10-cloud-amd64 docker://18.9.9
하나 your_external_ip
값을 복사합니다.웹 브라우저를 열고
http://your_external_ip:30000
로 이동합니다.관리자 암호를 묻고 Jenkins Pod 로그에서 이 암호를 검색하는 페이지가 나타납니다.
이 로그에서 비밀번호를 추출하려면
kubectl
를 사용하십시오.먼저 터미널로 돌아가서 Pod 이름을 검색합니다.
- kubectl get pods -n jenkins
다음 출력을 받게 됩니다.NAME READY STATUS RESTARTS AGE
jenkins-6fb994cfc5-twnvn 1/1 Running 0 9m54s
다음은 관리자 비밀번호를 얻기 위해 Pod의 로그를 확인하십시오.강조 표시된 부분을 pod 이름으로 대체하려면 다음과 같이 하십시오.- kubectl logs jenkins-6fb994cfc5-twnvn -n jenkins
비밀번호를 찾기 위해 위나 아래로 스크롤해야 할 수도 있습니다.Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
. . .
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
your_jenkins_password
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
. . .
사본your_jenkins_password
.이제 브라우저로 돌아가서 Jenkins UI에 붙여넣습니다.비밀번호를 입력하면 Jenkins에서 플러그인을 설치하라는 메시지가 표시됩니다.심상치 않은 일을 하지 않았기 때문에, 제안된 플러그인을 설치하는 것을 선택하십시오.
설치 후 Jenkins는 새 페이지를 불러오고 관리자를 만들 것을 요구합니다.필드를 작성하거나 관리자로 건너뛰기 및 계속하기 링크를 눌러 이 단계를 건너뜁니다.사용자 이름은 admin이고 암호는
your_jenkins_password
입니다.인스턴스 구성을 묻는 다른 화면이 나타납니다.Not now 링크를 클릭하고 계속합니다.
그런 다음 Jenkins가 선택한 요약 정보를 만들고 Jenkins가 준비되었음을 인쇄합니다!Jenkins 시작 을 클릭하면 Jenkins 홈페이지가 표시됩니다.

이제 그룹에 Jenkins를 설치하고 설정했습니다. 그 기능을 보여주고 예시 파이프를 실행합니다.
단계 3 - 샘플 파이프 실행하기
Jenkins는 파이프라인을 생성하고 CI/CD 워크플로우를 관리하는 데 능숙합니다.이 단계에서 우리는 Jenkins의 예시 파이프라인을 구축할 것이다.
Jenkins 홈 페이지에서 왼쪽 메뉴에서 New item 링크를 클릭합니다.
새 페이지가 나타납니다.Pipeline을 선택하고 OK 를 누릅니다.

Jenkins가 파이프 구성으로 리디렉션합니다.파이프 부분을 찾아서 try sample Pipeline 드롭다운 메뉴에서 Hello World를 선택하십시오.이 메뉴는 오른쪽에 표시됩니다.Hello World를 선택한 후 저장 버튼을 클릭합니다.

Jenkins가 파이프 홈 페이지로 리디렉션합니다.왼쪽 메뉴에서build now를 누르면 파이프가 작동하는 것을 관찰합니다.#1은 첫 번째 생성임을 나타냅니다.작업이 완료되면 구축에 대한 통계 정보를 볼 수 있습니다.

또한 콘솔 출력을 확인하여 파이프가 실행될 때 발생하는 상황을 볼 수 있습니다.#1에 마우스를 놓으면 드롭다운 메뉴가 나타납니다.생성된 세부 정보를 보려면 콘솔 출력을 선택합니다.
Hello World 파이프라인은 복잡하지 않지만 Jenkins가 CI/CD 워크플로우를 만들고 관리하는 능력을 증명합니다.
결론
이 강좌에서 Kubernetes 그룹에 Jenkins를 설치하고 설정한 다음 예시 파이프를 실행합니다.Jenkins에는 매우 복잡한 작업을 수행하는 데 도움이 되는 큰 플러그인 라이브러리가 있습니다.GitHub 저장소, 다양한 유형의 작업 인스턴스 등을 추가할 수도 있습니다.Jenkins 사용에 대한 자세한 내용the NodePort Service type.