본문 바로가기

DevOps

(6)
내부 구조로 알아보는 kubernetes와 container 기술 (pod안에는 한개 이상의 컨테이너가 포함된다)(kubernetes는 pod을 사용하여 container를 생성)kubernetes를 통해 pod을 생성할 때, kube-apiserver를 통해 사용자의 요청을 받고, kubelet으로 전달하고 container runtime에게 요청하여, container runtime이 container를 설치하는 구조를 가진다.kuber1.0 버전에서는 직접 컨테이너 맞춤형 api를 날려서 container runtime과 연결 했다.kuber1.5 버전부터는 인터페이스를 제공하고 각 runtime 회사에서 구현체를 만들어 연결점을 설정했다.OCI 탄생으로, OCI를 절차를 준수한 컨테이너 이미지는 다른 컨테이너 런타임과 연동가능이다. 특징으로는 libcontain..
container와 kubernetes 기술 흐름 kubernetes는 컨테이너 기술을 기반의 운영 기술이 포함된 컨테이너 오케스트레이션이다.현재 kubernetes 호환성에 정도가, 컨테이너 기술의 보급률에 큰 영향을 미친다.
Kubernetes 설치할 OS 고르기, Linux 흐름과 특징 Kubernetes를 설치하기 전에 어떤 OS에 설치해야 할 지 선택해야 한다.크게 무료 버전인 debian버전과, 안정성과 기술 지원이 있는 RedHat버전을 사용한다.기업에서는 RedHat버전을 많이 사용한다.RedHat이 IBM 기업으로 인수 되면서, RHEL 사용율과 이익을 높이기 위한, 무료 CentOS 지원이 종료되었다. 변화된 상황에서 4가지 해결 방법이 존재한다.
DevOps 필요성 현대는 소비자의 빠른 요구 사항을 수용할 수 있는 MSA 구조의 개발 형태이다.하나의 어플리케이션 기능 별로 개발팀을 나눠서, 기술 고도화, 빠른 릴리즈를 통해 소비자의 만족도를 높일 수 있다.하지만, 운영팀 입장에서, 나눠진 서비스 릴리즈들과 다른 운영 방식은 스트레스로 다가온다. 그에 따라, 운영팀의 업무 강도가 늘어나고, 개발팀과의 소통 불화가 발생한다. 그로 인해, 서비스 자체에 대한 퀄리티가 떨어지고, 원래 목표로 했던 MSA구조를 통한 소비자 만족도는 오히려 떨어지게 된다.이 문제를 해결하기 위한, 집단이 DevOps팀이다. DevOps 팀은 릴리즈, 운영, 팀 간의 소통을 위한 자동화 시스템을 만들어, 개발자와 운영자의 업무 효율 근무 쾌적도를 올려준다.
EC2와 docker-compose를 활용한 MSA 서버 배포 AWS와 Docker의 도움 없이, MSA 구조의 서버를 배포하려면, 시간이 얼마나 오래 걸릴지 상상할 수 도 없다.AWS 서비스를 이용하여, 클릭 몇 번만으로, Linux 서버와 IP를 빌릴 수 있고, Docker Engine을 이용해 하나의 yaml파일로 5개의 서버를 정의하고 작동시킬 수 있다.그래서 HTTP-MSA 구조를 가지고 있는 “영어 암기 서비스”를 AWS와 Docker의 도움을 받아, 손쉽게 배포하는 방법에 대해서 알아본다인프라-구성 방법 설명※ 서버는 크게 프론트 페이지를 제공하는 UI 서버  백엔드 처리를 하는 API 서버, MySQL  응답 시간이 오래걸리는 로직을 대신 처리해주는 PlusAPI서버와 두 API 서버 연결해주는 Kafka로 구성된다.1. EC2에 Elastic IP ..
Springboot(gradle) Jenkins 설정으로 Ubuntu 자동 배포하기 개요 목적Host인 Window 서버에서 Jenkins와 Docker를 사용하여 Springboot 프로젝트를 Virtualbox에서 실행되고 있는 Ubuntu서버에 자동 배포하는 방법에 대해서 알아본다해당 프로젝트 깃허브Jenkins에 설정할 전체 6가지 동작은 아래 그림과 같다.1. Git에서 최신 소스 다운로드https://www.jenkins.io/doc/pipeline/steps/git/해당 플러그인을 사용하여 git에서 최신 소스 코드를 다운 받는 declarative pipeline script를 작성C:\ProgramData\Jenkins\.jenkins\workspace에 디렉토리에 해당 프로젝트를 다운 받은 것을 확인할 수 있다.pipeline { agent any stage..

반응형