본문 바로가기

리눅스 인프라/Docker, Jenkins, Kubernates

(8)
클라우드 서비스 공부 내용 블로그 정리 AWS Solutions Architect Associate 자격증 취득을 위한 개념 정리 https://coding-business.tistory.com/129 AWS Solutions Architect Associate 자격증 취득을 위한 개념 정리 Solutions Architect Associate 자격증 취득 기출 문제 풀고 문제에서 나오는 개념들을 정리하여 aws 전체적인 흐름을 익혔다. 흐름을 익힌 채로 기출 문제를 반복해서 풀었더니 첫 번째 시험에서 운 좋게 coding-business.tistory.com AWS VPC에 대한 이해와 VPC 내 private 통신하기 https://coding-business.tistory.com/135 AWS VPC에 대한 이해와 VPC 내 privat..
Rolling update와 Blue/Green 배포 패턴에 대한 이해, Argocd(Rollouts)을 사용한 Blue/Green 배포 방법 개요 목적 이전 과제를 통해 Argocd와 git허브에 저장되어 있는 helm-chart를 연동하여 kubernetes 배포 자동화 방법에 대해서 알아보았다. 이번 시간에는 지속적 배포 방식 중 다운 타임(중간 타임)을 최소화 하는 가장 많이 사용하는 배포 패턴 두 가지에 대해서 알아본다.(Rolling update - Blue/Green) - 두 배포 패턴의 과정 상 차이와 장 단점에 대해서 알아본다. 그리고 Argo CD에서 Argo Rollouts 라이브러리를 사용하여 Blue/Green 배포를 하는 방법에 대해서 알아본다. (Rollingupdate 배포 방식은 기본적으로 쿠버네티스 배포 전략으로 지원한다.) Rollingupdate 배포 방식 두 가지 배포 패턴의 가장 큰 차이는 Blue/Gre..
GitOps에 대한 이해와 ArgoCD를 이용한 SpringBoot 배포 방법 개요 목적이번 시간에는 Git과 코드 구성으로 배포를 쉽게 관리할 수 있는 GitOps 이론을 파악한다. 그리고 Kubernetes 안에 종속되는 GitOps 도구인 ArgoCD를 사용하여 SpringBoot 서버를 배포하는 방법에 대해서 알아본다.GitOps란GitOps란 DevOps의 실천 방법 중 하나로, 애플리케이션 배포와 운영에 관련된 요소들을 코드로 작성하여 Git에서 관리하는 것이다. 대표적인 예로, Kubenetes Manifest 파일을 Git에 저장하고 그 파일을 이용하여 클러스터에 어플리케이션을 배포한다.GitOps의 장점생산성Git 레포지토리의 변경을 자동으로 추적하여 kubernetes 클러스터 업데이트를 할 수 있다. 운영에서 배포까지 Git으로 관리할 수 있는 편리성이 제공된다..
AWS VPC에 대한 이해와 VPC 내 private 통신하기 개요 목적 기존 VirtualBox Ubuntu에서 배포하던 프로젝트를 AWS 서비스를 이용하여 배포하는 프로젝트를 시작했다. 기존 서비스들(Redis, ELKStack, Kafka 등)을 대체하기 위해 AWS 서비스를 생성하면 VPC, Subnet, 보안 그룹 설정이라는 어려운 개념을 만나게 된다. 그래서 이번 시간에는 AWS 서비스 가상 네트워크를 형성해주는 VPC 개념과 Subnet 그리고 보안을 담당하는 보안 그룹 개념에 대해서 알아본다. 그리고 실제 AWS VPC 내에서만 네트워크 통신할 수 있는 EC2-RDS 간의 Private 연결 설정을 해보고 실제 VPC 내부에서만 통신이 가능한 지 테스트 해본다. VPC & Subnet & 보안 그룹에 대한 이해 VPC VPC는 Virtual Priva..
Kubernetes - LoadBalancing 사용하여 Spring Boot 서버 운영하기 개요 목적 이번 시간에는 Kubenetes를 사용하여, Spring boot container image를 쉽게 배포 관리하는 방법에 대해서 알아본다. 구체적인 동작으로는 api 서버를 Minikube에 3개의 복제본으로 배포하고 Service - Load Balancing 기능을 사용해 사용자 요청을 3개의 복제본으로 고르게 분산하는 배포 환경을 만든다. 결과를 먼저 보면, /status 요청마다 3개의 각 서버의 hostname을 응답 값을 전달하여, 로드 밸런싱 기능이 잘 작동하는 것을 확인할 수 있다. 로드 밸런싱 확인 용 spring boot application 생성 로드 밸런싱 확인 method 작성 org.springframework.core.env.Environment을 빈으로 등록하여 ..
kubernetes 구성 요소에 대한 이해 kubernetes와 cluster란쿠버네티스는 컨테이너를 오케스트레이션 도구이다. 오케스트레이션은 여러 서버에 걸친 컨테이너를 생성 배포 관리 확장을 쉽게 도와주는 것이다.쿠버네티스는 클러스터를 구성하여 컨테이너 오케스트레이션을 수행한다.클러스터란, 컨테이너화된 node들의 모음이다. 클러스터 환경을 설정하여 포함되어 있는 컨테이너화된 어플리케이션을 쉽게 배포, 이동, 관리 등을 할 수 있다. 또한 클러스터를 사용하면 다양한 환경(virtual, physical, cloud-based, and on-premises)에서 어플리케이션을 실행 관리할 수 있다.클러스터는 크게 master node와 worker node로 이루어지는데, master node는 클러스터 전반적인 환경을 통제하고, worker ..
Spring boot(gradle) docker container 배포, docker-compose적용 개요 목적 리눅스 서버에 직접 라이브러리를 다운 받고, jar 파일을 실행하는 기존 배포 방법에서 벗어나, 라이브러리와 jar 파일이 포함된 docker image를 다운 받아 바로 실행하는 편리한 docker container 실행 방법에 대해서 알아본다. 그리고 여러 개의 컨테이너를 실행시킬 때 일일이 명령어를 치는 방식이 아닌, docker-compose 하나의 yml 파일 하나로 여러 개의 컨테이너를 실행하는 방법을 알아보자. 해당 프로젝트 깃허브 docker container 배포 docker desktop을 다운 받아, docker 엔진을 실행한다. 배포를 원하는 프로젝트 디렉토리에 dockerfile을 생성한다. docker file 구성하기 #base 이미지를 지정하기 FROM openjd..
docker, compose, swarm에 대한 이해 docker docker의 개념 도커란 리눅스의 컨테이너 기술에 여러가지 기능을 추가한 오픈 소스 프로젝트이다. 도커 말고도 존재하는 컨테이너 기술은 OpenVZ, Warden 등이 있다. 리눅스 컨테이너 기술이란 프로세스가 실행하기 위한 독립적 실행 공간을 제공하는 것이다. 독립적 공간에서 동작하기 때문에 다른 버전의 라이브러리를 사용하는 프로세스에 영향 없이 하나의 서버에서 같이 실행할 수 있다. 컨테이너 내부에 실행 파일과 라이브러리를 포함하고 있어, 버전 관리도 간편하다. 컨테이너 가상화 기술과 다르게 각 독립된 환경마다 게스트 운영체제까지 할당하는 서버 가상화기술이 있다. 대표적인 소프트웨어로는 VirtualBox가 있다. 프로세스를 실행시키기 위한 독립된 공간에 운영체제까지 포함되기 때문에 이..

반응형