개요 이 시리즈는 코드로 인프라를 구축하는 IaC(Infrastructure as Code)를 이해하기 위해 작성했다. AWS의 EKS 클러스터를 코드로 구축하고 ArgoCD를 이용해 클러스터 내 어플리케이션을 배포한다. 인프라 구성 방법을 개개인의 노하우와 숙련도가 아닌 자산으로 코드로 남길 수 있도록 한다. 목표 Gitops의 개념과 필요성에 대해 알아본다 Gitops를 통해 클러스터 내 환경을 빠르게 구축하는 방법을 알아본다. 여정 이 글에서는 완전히 실행 가능한 코드를 다루고 있지 않습니다! 대신 충분한 힌트는 드리고 있으니 양해 부탁드립니다! 클러스터 생성하면 끝 아닌가요? 아니다! 어플리케이션 자동 배포를 신경쓰지 않는다면 아래와 같은 상황에 직면하게 될 것이다. 클러스터가 1개라면? → 어플..
개요 CI/CD를 위한 Pipeline 구성을 단계별로 학습한다. 목표 Gitlab의 Private Container Registry에서 이미지를 Pull & Deploy하는 과정을 학습한다. (더 자세한 내용은 공식문서와 참고자료를 확인하자) 여정 토큰 생성 깃랩 Repository에서 Settings > Repository > Deploy tokens 체크박스에서 필요한 권한을 Check한다(주로 Read 권한만 필요) 토큰 생성 결과는 한번만 확인할 수 있으므로 잘 저장해두자. 클러스터에 적용하기 간단한 방법 # 방법1 - Inline Command # Gitlab은 registry.gitlab.com을 넣는다. kubectl create secret \ docker-registry ${secret..
개요 On-premise에서 kubernetes(= k8s) 환경을 직접 구성해보며 학습하는 Hands On 시리즈입니다. 목표 k8s 환경 내에 간단한 서비스를 배포하기 (배포 과정이 목적이기 때문에 기본 이미지를 사용한다!) 여정 컨테이너 이미지 작성(k8s Hello World) # k8s에서 만든 hello world 컨테이너 이미지 kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 # 결과 확인 curl http://: Deployment YAML 작성 어플리케이션의 컨테이너 이미지와 실행정보를 담은 YAML apiVersion: apps/v1 kind: Deployme..
지적과 댓글은 언제나 환영합니다! 변경사항을 Docker로 자동 배포하기 변경사항을 감지하고 배포하려면 CI/CD 파이프라인 구축을 먼저 알아야한다. CI/CD 파이프라인을 구축하는 방법은 버전 관리 플랫폼별로 다르다. 대표적으로 Github Action, Gitlab, Terraform 등이 있으나 Github Action으로 진행해보도록 하겠다. Github Action을 이용한 CI/CD Github는 사용자가 CI/CD 도구를 직접 통합해야 한다. 선택지로 Jenkins, CircleCI, TravisCI 등이 있다 필자는 현재 이 블로그도 Github Action으로 자동 배포하고 있다. 그 때의 빌드 스크립트를 재활용해보자. 자세한 설명은 주석을 참고하자. # 알아두기 중간중간 보이는 secr..
지적과 댓글은 언제나 환영합니다! 어플리케이션을 Docker로 배포하기 이번 실습편에서는 아래 3가지 단계를 통해 도커를 찍먹해볼 것이다. Docker 이미지 만들기 만든 이미지를 실행해보기 변경사항을 자동으로 배포하기(심화편) 1. Docker 이미지 만들기 Docker 컨테이너는 Docker 이미지를 기반으로 실행된다. 우리가 만든 어플리케이션을 Docker 이미지로 직접 만들어보자. 우선, 어플리케이션을 빌드한 결과물을 가지고 있어야한다. 필자는 IntelliJ에서 Spring Boot 어플리케이션을 Jar파일로 만들것이다. 만드는 방법은 필자가 정리한 글에서 확인할 수 있다. (만약, 다른 언어나 플랫폼이라면 자신의 프로젝트에 맞게 빌드 결과물을 얻고 다음 단계를 진행하자.) 2. 만든 이미지를 ..