본문 바로가기

CICD26

jenkins container - Spring 프로젝트 SonarQube 연동 기존 Jenkins에서 Spring 프로젝트 CI/CD에 SonarQube 분석 연동 SonarQube는 EC2내에서 docker 컨테이너 실행 EC2내 SonarQube 실행 SonarQube 이미지 다운 및 실행 docker pull sonarqube docker run -d --name sonarqube -p 9000:9000 sonarqube 젠킨스 이미지 다운 중 no space left on device 발생 https://jangcenter.tistory.com/142 [EC2] no space left on device EC2에 SonarQube 이미지를 다운받는 중 no space left on device 발생 df -h 로 파티션 용량을 확인해보니 기본 EC2 볼륨의 8Gb를 대부분 .. 2024. 3. 10.
jenkins container - Vue 프로젝트 EC2 배포 해당 작업은 Mac M프로세스에서 작업 EC2내 프로젝트 배포의 경우 3000:80포트 사용 docker 설치 및 젠킨스 컨테이너 설치 및 접속 아래 사이트에서 도커 설치 https://docs.docker.com/desktop/install/mac-install/ Install Docker Desktop on Mac Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update. docs.docker.com 이미지 다운로드 docker pull jenkins/jenkins docker pull jenkins/je.. 2024. 3. 3.
docker-compose Docker-compose 각각의 docker 이미지를 사용해 여러 개의 컨테이너를 관리할 수 있는 기능 내부 정의한 컨테이너 간 연결 밑 가상 네트워크 관리가 쉬움 1회 실행하는 것으로 내부 정의한 모든 컨테이너 서비스를 실행 가능 이미지로 컨테이너를 시작하는 것이 아니라면 dockerfile을 가지고 있어야함 .yml 형식(docker-compose.yml)으로 작성해야하며 들여쓰기와 key : value로 문법이 이뤄짐 docker-compose.yml의 예제 # docker-compose.yml version : "3" # 항목 밑에 각각의 컨테이너를 정의 services: database: # 로컬 또한 docker hub에서 베이스 이미지를 지정 image: mysql security_opt:.. 2023. 4. 8.
Docker와 DockerFile Docker 애플리케이션 환경에 구애 받지 않고 실행하는 기술 코드 전달 및 운영 환경 표준화에 장점 Linux 기반의 OS에서만 동작이 가능 VM과는 다르게 하드웨어까지 가상화하지 않음 → 가벼움 window환경에서 docker 사용 시 제어판 -> 프로그램 켜기/끄기 -> HyperV 체크 작업 권장 Docker와 VM의 차이 게스트OS의 유무 VM에는 위에서 언급한 Guest OS가 깔리지만 도커 컨테이너에는 Guest OS를 설치하지 않는다. 자원의 효율성 측면에서 차이가 난다. Docker의 경우 Host os를 공유 VM는 하나씩 늘 때마다 OS를 위한 자원을 할당하지만 도커는 어플리케이션을 구동하는데 필요한 패키지로만 구성하여 컨테이너를 구동 Dockerfile Docker Image를 생성.. 2023. 4. 8.
[Kubernetes] Autoscaler(HPA) Autoscaler 쿠버네티스는 리소스 부족 현상을 해결하기 위해 사용 용도에 따라 몇 가지 오토 스케일러를 제공 HPA(Horizontal Pod Autoscaler) VPA(Vertical Pod Autoscaler) CA(Cluster Autoscaler) 1. HPA 수평적 증/감 Pod의 리소스 상태를 감지하면서 트래픽이 증가하면 Pod의 갯수를 증가(Scale Out)하여 트래픽을 분산 다시 트래픽이 감소하면 생성된 Pod를 삭제(Scale In) 기동이 빨라야하는 App에 사용 -> 장애 복구를 위한 기능이기 때문에 App 자체의 기동이 빨라야함 Stateless의 경우에만 사용 StateFul의 경우에는 어떤 Pod를 Scale Out 해야하는 지 모르기 때문 -> 사용하기 어려움 2. V.. 2022. 2. 17.
[Kubernetes] Ingress(Controller) Ingress란 서비스 앞에 있는 로드벨런스로 클러스터로 유입된 외부의 트래픽을 적절한 마이크로서비스로 라우팅 사용자가 지정한 특정 규칙에 따라 트래픽을 다양한 서비스로 전달하는 Controller 대표적으로 2가지의 사용목적이 존재 Service LoadBalancing Canary Upgrade 이외에도 https 인증서 관리에도 사용 가능 Ingress의 구성 Ingress Controller 클러스터의 인그레스 리소스를 관리 -> Ingress를 실현할 구현체 일반적으로 인그레스의 작동은 인그레스 컨트롤러가 인식할 수 있는 특정 어노테이션을 추가하여 정의 Cloud 환경에서는 각각 제공되는 컨트롤러가 있지만, 자체 운영 중인 클러스터에서는 NGINX을 주로 사용 이외에도 Kong ontour, T.. 2022. 2. 8.
[Kubernetes] StatefulSet(Controller) Application의 2종류 Stateless Application App이 여러개 배포되더라도 같은 서비스의 역할 -> 트래픽을 분산 대표적으로 Web Server {ex) Apache, NGINX, IIS 등} 삭제, 재생성시, 어차피 같은 역할을 하는 서비스를 생성 이름 상관 X 각각의 App마다 볼륨이 필요하지 않음 Stateful Application 각각의 App마다 자신의 역할이 존재 -> 역할에 따라 목적이 있는 연결 대표적으로 Database {ex) MongoDB, MariaDB 등} 삭제, 재생성 시, APP이름이 고유식별에 사용하기 때문에 같은 이름으로 재생성 역할이 다른 만큼, 각각의 App마다 볼륨이 필요함 이러한 Stateless/Stateful Application을 쿠버네.. 2022. 2. 8.
[Kubernetes] RBAC, Role, RoleBinding(Authorization) 쿠버네티스 접근제어 체계 Authentication : 접속한 사람의 신분을 시스템이 인증하는 단계 -> 신분증 확인 Authorization : 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인하는 단계 -> 사용자별 권한 확인 Admission Control : 인증과 권한확인 이후에 추가적인 요청내용에 대한 검증 또는 요청 내용 강제 변경 이러한 접근체계중 Authorization을 주제로 포스팅 RBAC(Role-Based Access Control) 쿠버네티스가 자원에 대한 권한을 지원하는 방법에는 여러가지 방법 중 대표적인 방법 역할 기반으로 권한을 부여하는 방법으로 Role, RoleBinding 오브젝트를 사용 누가(주체), 무엇을(동사), 어디에(네임스페이스) 실행할 수 있는지 결정하는.. 2022. 1. 30.
[Kubernetes] X509 Certs, kubectl, ServiceAccount(Authentication) 쿠버네티스 접근제어 체계 Authentication : 접속한 사람의 신분을 시스템이 인증하는 단계 -> 신분증 확인 Authorization : 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인하는 단계 -> 사용자별 권한 확인 Admission Control : 인증과 권한확인 이후에 추가적인 요청내용에 대한 검증 또는 요청 내용 강제 변경 이러한 접근체계중 Authentication을 주제로 포스팅 쿠버네티스 API 서버에 접근(Authentication)하는 3가지 방법 X509 Client Certs kubectl ServiceAccount 1. X509 Client Certs 쿠버네티스 클러스터에는 6443 포트로 API 서버가 열려있음 사용자가 이곳으로 https 접근하는 방법이며 Kube.. 2022. 1. 30.