본문 바로가기

전체 글134

Devops Day 54 (5.22) 컨테이너 오케스트레이션_쿠버네티스 구성 요소 볼륨과 스테이트풀셋 파드는 Stateless합니다 앞서 언급했던 것처럼, 파드는 일시적이며, 언제나 삭제될 수 있음을 감안해야 합니다. 따라서, 파드 그 자체는 Stateless 합니다. 이러한 파드의 교체와 배치를 담당하는 것이 디플로이먼트입니다. 파드가 사라져도, 데이터를 남기고 싶다면 파드 그 자체에 상태(데이터)를 남겨야만 하는 Stateful 애플리케이션으로는 MySQL, mongoDB, redis와 같은 데이터베이스가 있을 수 있습니다. 그래서 쿠버네티스에도 영속적인(Persistence) 데이터(프로그램의 실행이 종료되어도 사라지지 않는 데이터)를 저장하기 위해 볼륨(Volume)을 연결할 수 있습니다. Q. : 볼륨과 퍼시스턴스 볼륨(Persistence Volume)은 어떤 차이가 있나요.. 2023. 5. 22.
Devops Day 53 (5.19) 컨테이너 오케스트레이션_Sprint 새 버전이 망가졌어요 빈 문자열을 입력받은 경우, 빈 객체를 리턴해야 합니다새 버전이 망가졌어요! 스프린트는, 버그가 있는 새 버전을 쿠버네티스를 이용해 롤링 업데이트를 시도하고, 구버전으로 롤백하는 과정을 담은 스프린트입니다. 시나리오 여기 CozServer라는 간단한 WAS가 있습니다. 버전 1.0은 정상적으로 잘 작동하는 애플리케이션입니다. 여기에 디플로이먼트 명세를 적용해서 파드의 레플리카를 배포할 것입니다. 이후에 2.0 버전을 만들고, 디플로이먼트를 이용해 업데이트를 적용합니다. 여기까지는 전혀 문제가 없습니다. 그러나 여기서 우리는 3.0 버전에 의도적으로 버그를 만들 것입니다. 3.0 버전에 문제가 발생하면, 2.0 버전으로 롤백해야 합니다. 목표 : - 파드 명세를 작성할 수 있다. - 디플로이먼트 명세를 작.. 2023. 5. 20.
Devops Day 52 (5.18) 컨테이너 오케스트레이션_쿠버네티스 워크로드 Devops Day 52 (5.18) 컨테이너 오케스트레이션_쿠버네티스 워크로드 쿠버네티스 설치 : 1. Minikube 설치 : 미니큐브는 로컬 쿠버네티스로, 쿠버네티스를 배우고 개발하기 쉽게 하는 것에 초점을 맞추고 있습니다. Ubuntu에 설치 위해 아래 와 같은 cmd 기입 합니다. curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube 2. 클러스터 시작하기 위해 minikube start 명령 기입합니다. 3. 클러스터에 접근 할 수 있는 cmd kubectl get po -A 4. 최초에는 스.. 2023. 5. 19.
Devops Day 51 (5.17) 컨테이너 오케스트레이션_쿠버네티스 주용 개념 쿠버네티스와 컨테이너 오케스트레이션 쿠버네티스(Kubernetes, k8s)란? - 쿠버네티스(Kubernetes, k8s)란오픈소스로 만들어진 컨테이너 오케스트레이션 도구 - 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링하는 등의 관리 기능을 제공 - 각기 다른 환경(온프레미스 서버, VM, 클라우드)에 대응 가능 무엇을 오케스트레이션 한다는 것인가? 즉 컨테이너 오케스트레이션 도구는, 수십~수백 개의 컨테이너를 관리하고자 할 때 보다 더 잘 관리하기 위한 툴입니다, 단 어떻게 수십~수백 개의 컨테이너가 생길 수 있을까요? - 이는 아키텍처의 트렌드가 모놀리식에서 마이크로서비스로 바뀌고, - 이로 인해서 컨테이너의 개수가 증가하고, - 여기에 확장성을 고려해 스케일링까지 더할 경우에 발생할 수 있.. 2023. 5. 18.
Devops Day 49 (5.15) Sprint Terraform x AWS_Full Stack 애플리케이션 구성 Bare Minimum requirement : Getting Started : IaC 코드를 작성하려면 먼저 AWS Management Console을 이용해 먼저 최종 인프라 상태를 만들어놓고, 잘 작동하는지 확인한 다음, 이를 해당하는 리소스를 하나씩 코드로 옮기는 방법을 사용하는 방식을 사용해 보면 좋습니다. 다음 자습서를 순서대로 따라 합니다. 먼저 AWS Management Console을 통해 최종 결과물을 따라 해보고, 예상 상태가 무엇인지 먼저 파악해야 합니다. 모든 리소스를 만들 때에는 반드시 이름을 붙여놓도록 합시다. 참고: https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.Cr.. 2023. 5. 18.
Devops Day 48 (5.12) Infrastructure as Code_Terraform 절차형 : 프로그래밍 언어를 이용해서 직접 순차적으로 인프라를 생성하도록 코드를 작성하는 방법입니다. 절차형 Iac의 종류 : AWS CDK Pulumi 선언형 IaC : 선언형 언어 JSON, YAML 등을 사용합니다. 실제 인프라가 적용된 결과(기대하는 상태)와 적용할 내용(YAML 등)이 직관적으로 매핑됩니다. 선언형 IaC 종류 : CloudFormation (AWS에서만 사용가능) Azure Blueprint (Azure에서만 사용가능) Cloud Deployment Manager (GCP에서만 사용가능) Terraform: 어떤 클라우드 서비스에도 적용되는 범용 IaC 도구입니다. Terraform 기초 Hands on 테라폼은 HashiCorp의 인프라스트럭처 코드 도구입니다. 테라폼을 사용.. 2023. 5. 18.