개요버그 없는 소프트웨어를 작성하는 것은 불가능하다.따라서, 장애가 발생하면 이를 빠르게 감지하고 해결하는 것이 필연적인 작업이 된다.목표정상 상태를 점검하는 3가지 방법을 이해한다.Pod와 Container가 생성/종료되는 이벤트를 파악하고 이해한다.여정쿠버네티스에서는 어플리케이션의 상태를 점검하는 여러가지 방법을 지원한다.이를 probe라고 부르며, 성공(Success), 실패(Failure), 미확인(Unknown)으로 구분하여 진단한다.대표적으로 3가지 방법을 소개한다.Liveness ProbeLiveness Probe는 컨테이너를 재시작하여 장애를 복구하기 위한 점검 방법이다.exec : 명령 성공 여부로 점검한다Pod 실행 후 첫 30초 간은 /tmp/healthy 파일이 존재하므로 성공 처리..
출처 - 원글 : https://www.uber.com/en-GB/blog/up-portable-microservices-ready-for-the-cloud/ - 번역 : Uber가 수천개의 마이크로서비스를 멀티 클라우드 플랫폼으로 이전한 방법 | GeekNews (hada.io) 이 글은 원글과 GeekNews의 요약을 보고 개인 의견 메모를 위해 작성되었습니다. 요약 "Up: Portable Microservices Ready for the Cloud" Uber는 4,500명의 엔지니어와 수많은 자동 시스템이 매주 4,000회 이상 4,500개의 Stateless 마이크로서비스를 배포 이 서비스들은 전 세계에서 독립적으로 일하는 수백 개의 개별 팀에 의해 개발, 배포 및 운영됨 서비스는 크기, 모양,..
목표 이전 편에서 작성한 내용에 CI/CD를 추가해보자 소스 위치, 버전 정보를 저장소에서 가져오자 release 브랜치에 push가 발생하면 docker 이미지로 배포할 수 있도록 하자 배포 버전은 커밋ID를 넣을 수 있도록 하자 배포하는 이미지의 크기를 줄이자 여정 컨테이너와 프로젝트 간 의존성 제거 docker 이미지를 Registry에 등록 각 Dockerfile마다 Container Registry에 등록하여 이미지를 pull할 수 있도록 등록 💡 아래 코드는 프로젝트 메뉴 > Packages and registries > Container Registry에서 확인! # Gitlab의 Private image hub에 저장할 수 있도록 로그인 docker login registry.gitlab...
지적과 댓글은 언제나 환영합니다! 도커 삽질 개선하기 이전편 요약 이전 편 도커 삽질하기 에서는 단순 리눅스 컨테이너를 생성해서 직접 명령어를 타이핑하면서, 컨테이너의 상태를 변경하였다. 그 결과, 컨테이너가 재부팅되면 대부분의 데이터와 상태가 소실되어 같은 과정을 반복해야 했다. 목표 도커 컨테이너 설정을 간소화, 자동화해보자 공통 설정 분리 → env 파일 생성 DB에 대한 dockerfile 작성 → 이미지 생성 Package(서브도메인B, 지원도메인D)에 대한 dockerfile 작성 → 이미지 생성 docker-compose를 이용해서 실행 여정 env 파일로 설정 분리 # DB Configuration TZ=Asia/Seoul DB_HOST=0.0.0.0 # 외부 DB와 연결하고 싶을 때 DB..
지적과 댓글은 언제나 환영합니다! 변경사항을 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. 만든 이미지를 ..
지적과 댓글은 언제나 환영합니다! 이 글은 3편의 시리즈물로 제작하였다. 개념편 : Docker가 뭐길래!? 실습편 : 어플리케이션을 Docker로 배포하기 심화편 : 변경사항을 Docker로 자동 배포하기 시작해보자! Docker가 뭐길래!? 도커, 도커, 도커, 도커 컴퓨터 업계에 종사하는 이들이라면, 메아리로도 한번쯤은 들어본 적 있는 이름이다. 도커가 뭔지 몰라도 아래 장점을 한번만 읽어보도록 하자. 도커는 소프트웨어 전달 주기를 가속한다. 도커 컨테이너는 변화하는 환경에 신속히 대응, 투입할 수 있고, 필요 시 이전 버전으로 신속히 롤백할 수 있다. 도커 컨테이너는 애플리케이션이 실행해야 하는 모든 것을 캡슐화하기 때문에 애플리케이션이 환경들 사이에서 손쉽게 이동할 수 있다. 도커 런타임이 설치..