Gitea webhook, Jenkins pipeline 설정은 이전 게시물 참고. [Kubernetes] CI/CD구성하기(Jenkins, Argo, Gitea, Harbor) #3 Jenkins, Gitea Webhook 설정 및 Pipeline 구축Jenkins Gitea 연동은 이전 게시물 참고. [Kubernetes] CI/CD구성하기(Jenkins, Argo, Gitea, Harbor) #2 Jenkins Gitea 연동jenkins 배포 및 argocd 배포는 이전 게시물 참고. [Kubernetes] CI/CD구성하기(Jenkins, Argo, Gitea, Harboha2o.tistory.com 주어진 Helm 프로젝트 배포.ArgoCD가 해당 Helm 프로젝트 동기화.Helm 소스코..
DevOps
Podman이란?리눅스 운영체제에서 컨테이너 이미지를 실행, 관리, 배포 및 파드를 관리하기 위한 오픈소스 컨테이너 관리 도구이다. OCI를 준수하며 Docker와의 호환성을 목표로 하기 때문에 CLI command가 동일하다.Docker Hub와Quay.io로부터 컨테이너 이미지를 pull, push 하는 것이 가능하다. Podman VS Docker 1. Daemon 유무Docker도커의 경우 도커 데몬 위에서 도커의 여러 작업이 이루어진다.데몬을 통해 모든 서비스를 동작시키는 방식으로 효율적이다.하지만 도커 데몬이 죽거나 재시작되면 모든 컨테이너가 중지된다는 문제가 있다.Podman컨테이너를 데몬이 아닌 fork/exec 방식으로 실행해 별로도 구동한다.즉 데몬이 없고, 컨테이너를 안정적으로 ..
Jenkins Gitea 연동은 이전 게시물 참고. [Kubernetes] CI/CD구성하기(Jenkins, Argo, Gitea, Harbor) #2 Jenkins Gitea 연동jenkins 배포 및 argocd 배포는 이전 게시물 참고. [Kubernetes] CI/CD구성하기(Jenkins, Argo, Gitea, Harbor) #1 배포CIGITEA에서 코드를 수정 시 Jenkins로 웹훅.Jenkins는 컨테이너를 빌드하고 이미지를 harbor에 pushha2o.tistory.com Webhook 설정Gitea 웹훅을 설정하여 코드 변경이 있을 때 Jenkins에서 자동으로 파이프라인을 트리거 하도록 한다.내 repo에서 설정 -> 웹훅 -> Webhook 추가 -> Gitea를 선택한다...
jenkins 배포 및 argocd 배포는 이전 게시물 참고. [Kubernetes] CI/CD구성하기(Jenkins, Argo, Gitea, Harbor) #1 배포CIGITEA에서 코드를 수정 시 Jenkins로 웹훅.Jenkins는 컨테이너를 빌드하고 이미지를 harbor에 push한다.harbor는 argo를 통해 컨테이너 이미지를 업데이트 한다. CDGITEA에 있는 코드를 서비스 배포하기 위ha2o.tistory.com jenkins Plugin 설치jenkins에서 gitea와 webhook을 사용하려면 plugin을 설치해야 한다.Jenkins 관리 -> Plugin으로 이동한다. Available plugins를 눌러 아래 목록에 대한 plugin을 install한다.GiteaMul..
CIGITEA에서 코드를 수정 시 Jenkins로 웹훅.Jenkins는 컨테이너를 빌드하고 이미지를 harbor에 push한다.harbor는 argo를 통해 컨테이너 이미지를 업데이트 한다. CDGITEA에 있는 코드를 서비스 배포하기 위해 쿠버네티스의 helm에게 요청한다.helm은 CI에서 새로운 컨테이너의 이미지 버전을 install하면 argo에서 배포를 자동으로 해준다. CI 구성하기가장 먼저 jenkins와 argo를 관리하기 위한 helm을 설치한다.자세한 설치 내용은 아래 링크를 참고.https://helm.sh/ko/docs/intro/install/ 헬름 설치하기헬름 설치하고 작동하는 방법 배우기.helm.sh curl -fsSL -o get_helm.sh https://raw.g..
kubectl이 설치되어 있다면 [3. 로컬에서 kube config를 통해 환경 설정하기]부터 보면 된다.1. wsl 설치하기Window의 경우 kubectl를 사용하기 위해 wsl를 설치한다.wsl --install https://learn.microsoft.com/ko-kr/windows/wsl/install WSL 설치wsl --install 명령을 사용하여 Linux용 Windows 하위 시스템을 설치합니다. Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine 등 원하는 Linux 배포판에서 실행되는 Windows 머신에서 Bash 터미널을 사용할 수 있습니learn.microsoft.com자세한 내용은 위의 링크를 참고. Microservice stor..
jenkins를 사용하려면 기본적으로 nfs설정이 되어 있어야 한다.nfs 구축은 https://happycloud-lee.tistory.com/178 이분 블로그를 참고.쿠버네티스 1.21버전 이후 사라진 RemoveSelfLink함수로 인해 https://github.com/kubernetes-incubator/external-storage.git 이 git을사용하면 pod가 실행되지 않는다. helm 설치jenkins를 사용하려면 helm을 통해 repo에 저장하고 install해야 한다.curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3chmod 700 get_helm.sh./get..
쿠버네티스 구조쿠버네티스는 추상적이기 때문에 이해하기 쉽지 않다. 그래서 해당 구조를 통해 이해를 돕기 위해 아래 그림을 통해 알아보자.마이크로서비스 아키텍처, CD/CI, ING Controller, PV/PVC, NFS, POD 등등.. 마이크로 서비스 아키텍처(MSA)마이크로 아키텍처란 여러 개의 서비스를 독립적인 서비스로 분리시켜놓은 구조를 말한다.독립된 서비스들은 각 하나의 기능을 담당하여 위 그림을 보면 ArgoCD, Front-End, Back-End, Grafana, Prometheus 등등 여러 구조로 나뉘게 되는데 그 아래로 Pod로 나뉘게 되고 Pod는 여러 개의 컨테이너로 나뉘게 된다.즉, 쿠버네티스는 MSA 기반 아키텍처를 사용하고 있다. 그럼 왜 마이크로 서비스 아키텍처를 사용..