[구름 k8s] TIL 3-4-4

Peppie·2022년 12월 3일
0

1. 쿠버네티스 CI/CD

Jenkins

https://www.jenkins.io/

  • CI Tool
  • 무료 오픈소스 자동화 서버
  • 빌드, 배포 자동화를 지원하는 다수의 플러그인 제공
  • 설치형 방식
  • JRE (Java Runtime Environment) : Java 실행 환경

기능

  • 빌드 자동화
    • 빌드 : 프로그램 코드를 실행할 수 있는 상태로 만드는 과정
  • 테스트 자동화
  • 코드 표준 준수 여부 검사 : 정적 코드 분석
  • 빌드 파이프라인 구성
  • 다양한 인증 기반과 결합한 인증, 권한 관리 기능
  • 자동화된 배포 관리

Jenkins 설치

  • 컨테이너 방식에 의한 설치 : 쿠버네티스 클러스터 상에 서버 구성 후 웹 브라우저를 이용하여 사용

    1. namespace 생성 : kubectl create namespace jenkins
    2. Helm repo 추가 - jenkins
      helm repo add jenkinsci https://charts.jenkins.io
      helm repo update
    3. jenkins 사용 persistent volume 생성
    # jenkins-volume.yaml
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: jenkins-pv
      namespace: jenkins
    spec:
      storageClassName: jenkins-pv
      accessModes:
      - ReadWriteOnce
      capacity:
        storage: 20Gi
      persistentVolumeReclaimPolicy: Retain
      hostPath:
        path: /home/ubuntu/jenkins/jenkins-volume/ # 사용할 호스트의 디렉토리 경로 설정

    kubectl apply -f jenkins-volume.yaml

    1. Service account 설정
      https://raw.githubusercontent.com/installing-jenkins-on-kubernetes/jenkins-sa.yaml 참조
      kubectl apply -f jenkins-sa.yaml
    2. jenkins 설치
      현재 시스템의 현재 디렉토리에 jenkins-values.yaml 파일 생성 후 jenkins chart의 jenkins-values.yaml 파일 복사하여 붙여넣은 후 Storage Class 속성의 mounts 부분 주석 해제 후 저장
    chart=jenkinsci/jenkins
    helm install jenkins -n jenkins -f jenkins-values.yaml $chart
    (↑ 설치 에러 발생 : key 문제 추정)
    1. jenkins 설치 후 jenkins admin password 확인
      별도 로그인 사용자가 없는 경우 사용하는 패스워드
      : kubectl exec --namespace jenkins -it svc/jenkins1 -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo
    2. 웹 브라우저를 통해서 jenkins 서버에 접속 : 기본 포트 8080 사용
    # 웹 브라우저 접속
    echo http://127.0.0.1:8080
    
    # shell에서 jenkins를 위한 포트포워딩
    kubectl --namespace jenkins port-forward svc/jenkins1 8080:8080
    1. jenkins 서버 접속이 되면 필요한 사용자 등록 및 플러그인 설치
    • docker
    • kubernetes
    1. jenkins와 쿠버네티스/Git 설정 과정 진행
  • jenkins 가이드에 의해 설치된 jenkins object 삭제

    • helm uninstall <chart release 이름> -n <네임스페이스> <chart 이름> : chart 삭제
      ex) helm uninstall jenkins -n jenkins $chart
    • kubectl delete -f <manifest 이름> : persistent volume 삭제
      ex) kubectl delete -f jenkins-volume.yaml
  • 직접 deployment와 service를 설치하는 방법

    • jenkins-deployment.yaml
  • 사용하는 OS에 별도 설치 : OS에 Jenkins 설치 후 웹 브라우저를 아용하여 사용
    Linux (Debian/Ubuntu)

Debian/Ubuntu 22.04 LTS 설치

  1. Java Run-time (JRE) 설치
  1. jenkins 설치를 위한 키 다운로드
  2. jenkins repository 등록
  3. jenkins 설치
  4. jenkins 서버 접속 및 환경 설정

0개의 댓글