반응형
리뷰 (Review)
더보기
Application 개발 및 배포 과정
- 문제 선정 - 제공하려는 서비스에 대한 결정
- 문제 정의 - 제공하려는 서비스에 따른 기능 명세
- 설계 - Algorithm 설계와 DataBase 설계, 화면 설계 (UI, User Interface)
- 구현 - 프로그래밍 언어를 이용하여 구현 (coding)
- build - 구현된 프로그램을 binary 형태로 변경하는 과정
- build tools - compiler, interpreter, linker, debugger
- 테스트
- 단위 테스트 - 기능 단위 테스트
- 통합 테스트 - 전체 기능에 대한 테스트
- 인수 테스트 - 문제 정의에 기반하여 최종적인 테스트
- 운영 (배포) - 유지 보수 수행
Software 개발 생명 주기
- SDLC - Software Development LifeCycle
- 문제 정의 → 설계 → 구현 → 테스트 → 유지 보수
지속적 통합, CI (Continuous Intergration)
- 개발자를 위한 자동화 프로세스
- Application 코드 변경 사항이 정기적으로 빌드/테스트되어 공유 저장소에 병합
- 여러 개발자가 동시에 Application 개발 시 서로 충돌할 수 있는 문제 해결
CD
- 지속적 서비스 (Continuous Delivery)
- 수동 배포
- 개발자는 Application에 적용한 변경 사항을 버그 테스트를 거쳐 공유 저장소에 자동 업로드
- 운영자는 Application을 공유 저장소에서 운영 환경으로 배포
- 지속적 배포 (Continuous Deployment)
- 자동 배포
- 개발자는 변경 사항을 공유 저장소에 저장하면 운영 환경까지 자동으로 릴리즈 되는 형태
Kubernetes CI / CD
Kubernetes CI / CD 일반적인 파이프라인
Jenkins
- 참고 자료
- CI Tools
- 무료 오픈 소스 자동화 서버
- 빌드, 배포 자동화를 지원하는 다수의 플러그인 제공
- 설치형 방식
- JRE(Java Runtime Environment)에서 동작
- 기능
- 빌드 자동화
- 테스트 자동화
- 코드 표준 준수 여부 검사 - 정적 코드 분석
- 빌드 파이프라인 구성
- 다양한 인증 기반과 결합한 인증, 권한 관리 기능
- 자동화된 배포 관리
- Jenkins 설치
- 참고 자료
- container 방식에 의한 설치
- Kubernetes cluster 상에 서버 구성한 후 Web browser를 이용하여 사용
- Kubernetes 설치 참고 자료
- 직접 manifest 설정하여 설치
- jenkins-deployment.yaml, jenkins-service.yaml 파일 생성하여 실행
- 사용하는 O/S에 별도 설치
- O/S에 Jenkins 설치 후 Web browser를 이용하여 사용
- Linux, MacOS, Windows
- 기본 Port - 8080
- Jenkins 접속 - https://<IP Address>:8080
더보기
container 방식에 의한 설치
- Kubernetes 설치 참고 자료 를 보고 가이드대로 진행
직접 manifest 설정하여 설치
- jenkins-deployment.yaml
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:
- containerPort: 8080
volumeMounts:
- name: jenkins-vol
mountPath: /home/ubuntu/jenkins/jenkins-volume # 볼륨 위치 지정
volumes:
- name: jenkins-vol
emptyDir: {}
- jenkins-service.yaml
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: LoadBalancer
ports:
- port: 8080
targetPort: 8080
nodePort: 30000
selector:
app: jenkins
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-jnlp
spec:
type: LoadBalancer
ports:
- port: 50000
targetPort: 50000
selector:
app: jenkins
Debian/Ubuntu 22.04 LTS 설치
- Java Run-time 설치
sudo apt-get install openjdk-11-jdk-headless # JRE 설치
sudo update-java-alternatives --set java-1.11.0-openjdk-amd64 # 기본 Java 설정
- Jenkins 설치를 위한 키 다운로드
sudo wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
- Jenkins repository 등록
echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo apt update
- Jenkins 설치 및 확인
sudo apt-get install jenkins
systemctl status jenkins
- 최초 Jenkins 서버 접속 시 절차
- <Jenkins Server IP>:8080 으로 접속
- 최초 접속시에는 jenkins에 설정된 패스워드 사용하여 접속
- 접속 성공 시 기본 build plug-in을 설치한다.
- 설치 후 사용자 등록
2022. 10. 27 에 작성된 글입니다.
반응형
'구름 쿠버네티스' 카테고리의 다른 글
구름 쿠버네티스 전문가 과정 6기 - 61일차 (0) | 2023.11.28 |
---|---|
구름 쿠버네티스 전문가 과정 6기 - 60일차 (0) | 2023.11.24 |
구름 쿠버네티스 전문가 과정 6기 - 58일차 (4) | 2023.11.20 |
구름 쿠버네티스 전문가 과정 6기 - 57일차 (6) | 2023.11.17 |
구름 쿠버네티스 전문가 과정 6기 - 56일차 (5) | 2023.11.16 |