분류 전체보기 216

볼륨과 스테이트풀셋

파드 : Stateless : 파드는 일시적이며, 언제나 삭제될 수 있음을 감안해야 함 -> 파드 그 자체는 Stateless 헤야 함 : 파드의 교체와 배치를 담당하는 것이 디플로이먼트 -> 디플로이먼트는 레플리카셋을 통해 파드를 scale out 하며, 이때 만들어지는 파드들은 상호 대체 가능 파드가 사라져도, 데이터를 남기고 싶다면 : 파드 그 자체에 상태(데이터)를 남겨야만 하는 Stateful 애플리케이션 -> MySQL, mongoDB, redis와 같은 데이터베이스가 있음 : 데이터베이스 애플리케이션이 담긴 파드가 사라질 때, 데이터가 함께 사라지도록 두어서는 안 될 것 -> 쿠버네티스에도 영속적인(Persistence) 데이터(프로그램의 실행이 종료되어도 사라지지 않는 데이터)를 저장하기 ..

새 버전이 망가졌어요! 3.0에서 2.0으로 롤백하기

STEP 1: 파드 파드를 수동으로 만들어볼 것. 하지만 보통 파드는 하나하나 만들지 않으므로, "이렇게 만들 수도 있다"라는 것을 간단하게 배우고 넘어가는 정도의 의미를 갖습니다. sebcontents/cozserver:1.0 이미지를 바탕으로 파드를 만들어봅시다. cozserver-pod.yaml cozserver-pod.yaml 파일 적용 생성한 pods 확인 STEP 2: 디플로이먼트를 이용한 1.0 배포 앞서 개별 파드를 pod.yaml로 작성된 명세를 통해 생성했습니다. 그러나, 파드는 확장성을 바탕으로 가용성을 위해 언제든 대체될 수 있습니다. > 따라서 디플로이먼트로 CozServer를 구성하는 것이 바람직합니다. 1.0 이미지를 바탕으로 파드를 디플로이먼트를 생성해 봅시다. cozserv..

쿠버네티스-선언적 접근

파드 (Pods) > 쿠버네티스의 배포 가능한 가장 작은 컴퓨팅 유닛. 파드는 그 자체로 하나의 논리적인 호스트 파드를 생성하기 위해 파드를 정의할 때 다음과 같은 형태의 YAML 파일을 사용 예시) simple-pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 파드 적용하기 kubectl apply -f simple-pod.yaml 디플로이먼트 (Deployment) > 쿠버네티스에서의 Deployment는 파드의 교체/배치(placement)와 관련된 명세 파드의 진실 - 파드는 일시적이고, 언제나 삭제될 수 있..

쿠버네티스 deployment 블루/그린, 카나리 배포 방법

[C181] 디플로이먼트가 지원하는 배포 전략에서 블루/그린이나 카나리는 찾아볼 수 없습니다. 어떻게 블루/그린이나 카나리 배포를 할 수 있을까요? 블루/그린 배포 디플로이먼트를 버전을 각각 생성하여 서비스의 셀렉터를 이용하여 버전을 적용 🟦 Deployment Blue Deployment Blue에 연결하여 외부에서 접근할 수 있는 service 생성 selector에 app:v1을 지정하여 Deployment:v1 과 연결 연결된 것을 확인 🟩 Deployment Green v2의 deployment를 생성(green) service.yaml 파일을 replica v2와 연결하기 위해 app을 v2로 변경 후 업데이트 서비스에 연결된 pod가 변경된 것을 확인할 수 있다 카나리(canary) 배포 >..

카테고리 없음 2023.05.18

쿠버네티스 service 타입의 비교

Q. 서비스의 타입은 ClusterIP, NodePort, LoadBalancer, ExternalName 네 가지가 있습니다. 이들은 어떻게 다른가요? Service 의 type 종류 ClusterIP : 클러스터 내부에서만 접근할 수 있는 IP를 할당 NodePort : 노드의 특정 포트를 사용하여 접근하는 방식, 포트당 하나의 서비스만 사용 가능 LoadBalancer : 노드포트 앞단에 특정 LoadBalancer를 사용하여 접근하는 방식 ExternalName : DNS이름에 대한 서비스를 매핑함 ClusterIP타입 클러스터 내부에서만 접근할 수 있으며, 외부에서는 접근할 수 없으로 port forwarding 또는 proxy를 통해 접근 또한 서비스 타입을 별도 type을 설정하지 않으면 C..

Terraform x AWS - Iac를 이용한 인프라 구축

Terraform 작성: 공식 문서 Terraform Registry registry.terraform.io STEP 1: 자습서: DB 인스턴스에 사용할 Amazon VPC 생성 자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용) - Amazon Relational Database Service Amazon RDS에서는 다중 AZ DB 인스턴스 배포를 지원하려면 서로 다른 두 가용 영역에 있는 Amazon RDS가 필요합니다. 이 자습서에서는 단일 AZ 배포를 생성하지만 요구 사항에 따라 향후 다중 AZ DB 인스 docs.aws.amazon.com 0. Terraform을 실행 시키기위한 요구사항 작성 1. VPC 생성 2. Subnet 생성 subnet.tf 파일을 만들고 pu..

DevOps BootCamp/Iac 2023.05.17

쿠버네티스와 컨테이너 오케스트레이션

쿠버네티스(Kubernetes, k8s)란 오픈소스로 만들어진 컨테이너 오케스트레이션 도구 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링하는 등의 관리 기능을 제공 각기 다른 환경(온프레미스 서버, VM, 클라우드)에 대응 가능 무엇을 오케스트레이션 한다는 것인가? orchestrate는 사전적 의미를 살펴보면 다음과 같음 to plan and organize something carefully and sometimes secretly in order to achieve a desired result Cambridge Dictionary -> 즉 컨테이너 오케스트레이션 도구는, 수십~수백 개의 컨테이너를 관리하고자 할 때 보다 더 잘 관리하기 위한 툴 이는 아키텍처의 트렌드가 모놀리식에서 마이크로서..

Terraform x AWS

IaC 코드를 작성하려면 먼저 AWS Management Console을 이용해 먼저 최종 인프라 상태를 만들어놓고, 잘 작동하는지 확인한 다음, 이를 해당하는 리소스를 하나씩 코드로 옮기는 방법을 사용하는 방식을 사용해 보면 좋음 먼저 AWS Management Console을 통해 최종 결과물을 따라해보고, 예상 상태가 무엇인지 먼저 파악해야 함 STEP 1: 자습서: DB 인스턴스에 사용할 Amazon VPC 생성 자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용) - Amazon Relational Database Service Amazon RDS에서는 다중 AZ DB 인스턴스 배포를 지원하려면 서로 다른 두 가용 영역에 있는 Amazon RDS가 필요합니다. 이 자습서에서는..

DevOps BootCamp/Iac 2023.05.16

Terraform 기본 명령어

디렉터리 초기화 새 구성을 생성하거나 버전 제어에서 기존 구성을 체크아웃할 때, > terraform init > Terraform은 aws공급자를 다운로드하여 현재 작업 디렉토리의 숨겨진 하위 디렉토리인 에 설치 -> .terraform > 사용된 정확한 공급자 버전을 지정하는 이름의 잠금 파일을 생성하므로 .terraform.lock.hcl프로젝트에 사용되는 공급자를 업데이트하려는 시기를 제어할 수 있음 가독성과 일관성을 위해 현재 디렉터리의 구성을 자동으로 업데이트 > terraform fmt 구성이 구문적으로 유효하고 내부적으로 일관성이 있는지 확인 > terraform validate 인프라 만들기 > terraform apply 상태 검사 > 상태 파일을 안전하게 저장하고 인프라를 관리해야 하..

DevOps BootCamp/Iac 2023.05.12

Infrastructure as Code (코드형 인프라)

IaC의 의미와 필요성 다음을 가정해 보자 인프라를 완전히 다른 리전에 똑같이 복제하고 싶을 경우 특히, 해당 리전이 갑자기 사용할 수 없는 상황에 직면했을 경우 기존과는 다른 새로운 아키텍처를 빠른 시간 내에서 적용해야 할 경우 수동 설정의 한계 수동설정은 쉽게 서비스를 제공하고, 아키텍처를 빠르게 실험해 볼 수 있다는 점에서 유리하지만, 많은 단점도 가지고 있음 휴먼 에러 때문에 서비스를 설정할 때에 잘못 설정하기 쉬움 설정을 통해 예측되는 상태를 관리하기 어려움 환경 설정에 대한 내용을 다른 팀 멤버에 전달하기 어려움 IaC DevOps의 주요 가치 중 하나는 바로 자동화임 코드형 인프라(Infrastructure as Code), 즉 IaC는 설정을 코드로 작성하여 클라우드 인프라스트럭처의 생성/..

DevOps BootCamp/Iac 2023.05.12