본문 바로가기

Devops

(9)
우당탕탕 쿠버네티스 구축 도전기 - 3 이전 포스팅에서는 쿠버네티스 설치까지 완료하였습니다. 이제 구성은 완료되었으니 쿠버네티스 대시보드를 설치해서 UI 툴을 이용하려 합니다. 대시보드를 이용하면 각 Pod, Service 등 다양한 리소스들을 한눈에 조작할 수 있어 매우 유용합니다. 쿠버네티스 대시보드 설치하기 1. 대시보드 설치를 위해서 아래 명령어를 수행해 줍니다.kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 해당 명령어를 통해서 다음 리소스를 생성합니다. kubernetes-dashboard 네임스페이스Dashboard PodDashboard Service (ClusterIP)Metrics S..
우당탕탕 쿠버네티스 구축 도전기 - 2 이전 포스팅에서는 서버환경을 구축하는 것을 소개하였습니다. 이번에는 하이퍼바이저를 이용하여 쿠버네티스 설치를 위한 마스터, 노드 서버 구성을 진행하고자 합니다.구성을 앞서 하이퍼바이저가 무엇이고 이를 구성하는 요소에 대해서 간략히 정리하고자 합니다. 가상화란?가상화란 물리적인 하드웨어를 논리적으로 구분하는 것으로 하나의 하드웨어에서 여러 개의 시스템을 효율적으로 사용할 수 있게 해주는 기술입니다. 하이퍼바이저(Hypervisor)란?하이퍼바이저는 프로세서, 메모리, 스토리지와 같은 컴퓨팅 리소스를 풀링하여 가상 머신(VM)에 재할당하는 소프트웨어입니다. 이 기술을 통해 여러 VM을 생성하여 단일 물리 머신에서 실행하는 가상화가 실현될 수 있습니다. 하이퍼바이저는 크게 Type1 하이퍼바이저와 Type2..
우당탕탕 쿠버네티스 구축 도전기 - 1 요즘 백엔드 개발자에게 요구되는 많은 기술 중 하나인 k8s에 도전을 해보고 싶었습니다. 필자는 스프링, 아파치 미나와 같은 프레임워크 기반으로 API, 소켓 서버를 개발하고 있다 보니 신기술에 경험을 가질 수 있는 기회가 적어 개인적으로 신기술 학습을 꾸준히 하고 있으며, 최근에는 Redis, Kafka 기술을 토이 프로젝트를 진행해 보았고 이번에는 백 발자에게 요구되는 많은 기술 중 하나인 쿠버네티스를 도전하려 합니다. 1. 기본 환경 구성 공인 IP 할당받고 있는 공유기에 PC들이 묶여있는 공유기가 하나 더 연결 되어있습니다. 미니 PC를 활용하여 하이퍼바이저를 설치하였고 VM 3대를 설치하여 쿠버네티스 마스터, 노드 1, 노드 2 구성을 진행하고 합니다. 먼저 환경 구성을 위한 설치와 간단한 포..
gitHub & Jenkins CI/CD 적용 (4/4) 이전 포스팅에서 진행했던 마지막 CI/CD 배포를 진행할 예정입니다.  필자 경 Pipeline script를 작성하여 배포를 진행하였습니다. 작성 배포 스크립트 포맷pipeline { agent any tools { gradle 'gradle-8.7' } environment { DCOKER_IMAGE_NAME = ""; } stages { stage('git pull') { environment { REPOSITORY_URL = "" } steps { git branch: 'main', url: "${REPOSITORY_URL}"..
gitHub & Jenkins CI/CD 적용 (3/4) 이번 포스팅은 간단한 프로젝트를 gitHub & 젠킨슨 파이프라인을 만들어 빌드 진행 예정입니다. 이전 포스팅을 진행할 때는 로컬 환경에서 Jenkins를 구성하였는데 그렇게 되면 github webhook을 이용하는데 제한이 생겨서 클라우드 환경으로 옮겨서 진행을 했다.  Github WebHookgithub webhook 설정 페이지 들어가서 url을 설정해 줬다. 아래와 같이 기본 URL을 설정해 주었고 각 환경에 맞는 host, port를 적용해 주면 된다.http://{host}:{port}/github-webhook/ 추가적으로 클라우드 환경에서 방화벽 허용을 진행하기 위하여 github webhook ip를 허용 진행했다.140.82.112.0/20  Docker 환경 Jenkins 설치※ ..
gitHub & Jenkins CI/CD 적용 (2/4) 이번 포스팅은 간단한 프로젝트를 gitHub & 젠킨슨까지 빌드를 진행해 볼 예정입니다. Github 계정 설정※ Private 저장소가 아니라 Public 저장소를 사용하면 해당 단계는 Skip해도 무방하다. 1. Github 계정 로그인 후 Settings 페이지로 이동하니다. 2. Settings페이지에서 Developer settings를 클릭해줍니다. 3. Personal access tokens를 클릭한 이후 토큰 생성 버튼을 클릭해 줍니다. 4. 아래와 같이 토큰 명과 scope를 설정하고 토큰 생성 버튼을 클릭해 줍니다. 5. 아래와 같이 발급된 access token을 저장해 줍니다. Jenkins & Github 연동1. 젠킨스 메인 페이지에 접근하여 Jenkins 관리 > 시스템을 클..
gitHub & Jenkins CI/CD 적용 (1/4) 프로젝트 진행 전에 github과 Jenkins 연동을 통하여 CI/CD를 구축하려 한다.  Jenkins 란?Jenkins는 지속적인 통합과 배포를 도와주는 Java로 제작된 오픈 소스 툴이다. Java Runtime Environment에서 동작다양한 플러그인을 통하여 자동화 작업 처리를 지원한다.일련의 자동화 작업의 순서들을 파이프라인을 통해 CI/CD 진행할 수 있게 구축할 수 있다. Jenkins 대표 플러그인Credentials PluginsJenkins는 단지 서버로 배포에 필요한 각종 리소스에 접근하기 위해서는 여러 중요 정보를 저장할 필요가 있다.클라우드 리소스 혹은 베이메탈에 대한 ssh 접근 등을 의미하며, git access token, secret key, ssh 등의 정보를 저장..
Docker Hub Image 배포 스크립트 Docker Hub에 있는 Image를 읽어 배포하는 스크립트를 만들어보았다. 필자는 AWS EC2를 사용하고 있었으나 메모리용량, 디스크 용량에 증가에 따른 가격 상승이 굉장히 높아서 다른 Iaas로 옮기는것을 선택하게되었다.Docker 허브 이미지 배포방식을 통하여 좀다 빠르게 다른 환경으로 이식할 수있어 굉장히 편리했다.   https://daliy-dev.tistory.com/51 GitHub를 이용한 CI (docker Hub)CI란? CI는 Contious Integration으로 지속적인 통합이라 할 수 있다. 개발팀이 정기적으로 코드 변경사항을 구현하고 테스트 한 후, 공유 버전 관리 레포지토리에 병합하는 방식을 말한다. 자동화 된daliy-dev.tistory.com이전 포스팅에서 등록했..
GitHub를 이용한 CI (docker Hub) CI란?CI는 Contious Integration으로 지속적인 통합이라 할 수 있다. 개발팀이 정기적으로 코드 변경사항을 구현하고 테스트 한 후, 공유 버전 관리 레포지토리에 병합하는 방식을 말한다. 자동화 된 빌드에 의해 이런 `체크인`이 인증되므로 코드와 관련된 모든 문제를 신속하게 파악하고 해결 할 수 있다. CI를 사용하면 개발자 팀 사이에 충돌 없이 동일한 앱을 동시에 작업 할 수있다.  사용 툴GithubDockerspring boot 차례spring boot 프로젝트 구조Github actions 스크립트 파일Dockerfile 파일Gitlab CI 확인  Spring Boot 프로젝트 구조 메이븐을 통한 멀티 모듈 구조로 프로젝트 구성을 만들었다. web-api: spring boot 메..