jenkins 에이전트 가 kubernetes 집단 에서 실행

Jenkins Kubernetes 플러그 인 사용 하기
PVC 만 들 기(선택 가능)
만약 당신 의 jekins 에이전트 가 영구적 인 저장 소 를 필요 로 한다 면 PVC 를 만 들 거나 hostpath 와 같은 다른 방식 으로 이 루어 질 수 있 습 니 다.내 케이스 에 서 는 매번 중앙 창고 에 가서 컴 파일 의존 을 다운로드 하지 않도록 영구적 인 저장 소 를 Maven 창고 캐 시 로 사용 합 니 다.nfs-client 는 storageclass:의 name 입 니 다.여 기 는 StorageClass 를 동적 저장 소 로 사 용 했 습 니 다.
kubectl create namespace jenkins
kubeclt -n jenkins create -f jenkins-pvc.yaml

jenkins-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: jenkins-agent
  annotations:
    volume.beta.kubernetes.io/storage-class: "nfs-client"
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 50Gi

kubernetes 플러그 인 설정
Jenkins 가 kubernetes 플러그 인 을 설치 한 후 Manage Jenkins->Manage nodes and clouds->Configure Cloud 가 설정 인터페이스 에 들 어 갑 니 다.
새 클 라 우 드 추가 선택->kubernetes
설정 이 간단 합 니 다.여기 서 몇 가지 주의 할 점 만 말씀 드 리 겠 습 니 다.Credentials:여 기 는 계 정 비밀 번 호 를 사용 할 수도 있 고,kubernetes config 파일 을 사용 할 수도 있 습 니 다.아무튼 이 Credentials 를 만 들 겠 습 니 다.Pod Templates Namespace 는 pvc namespace 와 같 습 니 다.여기 제 가 설정 한 Jenkins 입 니 다.Labels 에이전트 label,pipeline 에서 에이전트 의 값 입 니 다.Containers Templates Docker image 는 사용자 정의 에이전트 image 를 사용 할 수 있 습 니 다.에이전트 가 Maven,sonarqube,kubectl 명령 등 과 같은 CI/CD 도 구 를 통합 해 야 할 수도 있 기 때 문 입 니 다.Working directory/home/jenkins/agent 는 새 버 전 은 에이전트 라 는 디 렉 터 리 가 있어 야 합 니 다.원래 제 가 설정 한 미/home/jenkins 이지 만 jenkins job 가 실 행 될 때 오류 가 발생 할 수 있 습 니 다.EnvVars 는 에이전트 의 환경 변수 Volumes 에 pvc 를 마 운 트 하려 고 합 니 다.여기 서 마 운 트 한 것 은 위 에서 제 가 만 든 pvc 입 니 다.Maven 캐 시 를 지속 적 으로 마 운 트 합 니 다.Host path 는 pipeline 에서 docker build 를 실행 해 야 하기 때문에 이 두 파일 을 마 운 트 했 습 니 다./var/run/docker.sock/usr/bin/docker Node Selector 는 jenkins 에이전트 pod 에 어떤 node 를 실행 할 지 지정 할 수 있 습 니 다.
이상 설정 이 완료 되면 젠 킨 스 job 를 만 들 수 있 습 니 다.에이전트 부분 설정 만 보 여 줍 니 다.두 가지 구성
다음 설정 은 default Container 를 지정 합 니 다.jenkins agentpod 는 두 개의 용 기 를 시작 합 니 다.하 나 는 jnlp 이 고 하 나 는 사용자 정의 입 니 다.기본 값 은 jnlp 입 니 다.따라서 일부 도 구 를 사용자 정의 docker image 에 설치 하고 default Container 를 지정 하지 않 으 면 도 구 는 기본적으로 호출 할 수 없습니다.
agent {
  kubernetes { 
    cloud 'kubernetes' 
    label 'jenkins-agent'
    defaultContainer 'jenkins-agent'
  }
}

label 을 직접 지정 할 수 있 습 니 다.기본적으로 jnlp 를 사용 합 니 다.
agent {
    label 'jenkins-agent'
}

좋은 웹페이지 즐겨찾기