CLOUDWAVE 9

Kubernetes Advance : Deploy, Service(Network), Volume(disk) ( 25.01.13 )

Deployment = 배포전략Pod와 ReplicaSet에 대한 선언적 업데이트를 기술 → Deployment Controller에서 의도하는 상태로 비율을 조정 [ 자주 사용하는 6가지의 배포전략 ]수정후 다시 반영하는 배포 → 언어별로 재구동시간이 달라짐 ( JS, Java … ) & 업데이트를 위해 서비스를 내리면 장애가 발생 (1) RecreateLB ( 요청을 분기해주는 스위치 )를 거쳐서 여러 서비스 중 하나에 분배된다.서비스의 종료/시작 간격에 따라서 서비스 다운타임이 결정된다. ( 에러나는 시간 ) (2) Ramped = incremental = rolling update서비스를 하나씩 변경사용자는 V1으로 접속하거나 혹은 V2로 접속할수도 있다.maxSurge( 최고점 ) : 동시에 존..

CLOUDWAVE 2025.01.16

Kubernetes Advance : Probes, eks구축, RC, RS, DS ( 25.01.10 )

ProbesPod의 상태를 주기적으로 확인하여 문제가 발생했을 때 특정 조치를 취하는 리소스 probe 3가지종류 : startup, liveness, readinessstartup probe : 애플리케이션이 컨테이너 안에서 정상적으로 시작되었는지 확인실패시 컨테이너 재시작작동시점 : 컨테이너 초기화중readiness probe : 애플리케이션이 컨테이너 안에서 트래픽 처리를 할 수 있는 상태인지 확인특정 페이지/포트로 체크 → 오류를 감지하면 트래픽(요청) 차단작동시점 : 컨테이너 실행중liveness probe : 애플리케이션이 컨테이너 안에서 정상적으로 살아있는 상태인지 확인특정 페이지/포트로 체크 → 오류를 감지하면 재시작( 횟수제한 가능 ) 단순 재시작X, 리포지토리로 부터 이미지를 다시 받아..

CLOUDWAVE 2025.01.15

Kubernetes Basic : Cluster, Node, Pod, Label&Annotation, Namespace ( 25.01.09 )

쿠버네티스란?리눅스재단 소속의 CNCF에 인큐베이팅되어 첫번째로 졸업한 서비스 ( CNCF의 서비스 단계 : sandbox → incubating → graduated / archived )서비스의 추상화, 서비스의 효과적 관리 → 효과적이고 손쉬운 도구 제공( 자가치유, 오토스케일링 등 ) global scale internet bussiness : 다양한 소비자의 요구사항이 존재 → 배포, 빌드가 잦아짐 → MSA(Microservices Architecture), container기술의 중요성이 커짐upstream project( 오픈소스 )를 기반하여 다양한 서비스를 생성 → 기능을 정의한 interface를 공개( 상세구현없이 스펙만을 정의 ) + provider개념( 환경에 맞게 직접구현 )x..

CLOUDWAVE 2025.01.15

Abstraction : Container, MSA ( 25.01.08 )

추상화( abstraction )(1) 복잡한 것을 감추는것(Encapsulation) → 보다 효율적인 설계, 구축(2) 필요한 기능만 오픈하는 것(3) 인터페이스의 표준화 → 다른 기능, 모듈과 소통(ex) 언어별 SDK library(개발자가 특정 플랫폼, 서비스, 또는 API와 상호작용할 수 있도록 도와주는 라이브러리 또는 도구 모음)를 전달하는 것보다 서비스 스펙으로 제공한 Restful API를 호출하는 것이 좋음 ( 언어별 통신을 모두 표준화 ) 대표적인 추상화 예시네트워크의 추상화 : SDN(software defined network) ⇒ 모든 개체를 묶어서 원하는 네트워크 환경의 스위치로 만듬스토리지의 추상화 : SDS(software defined storage) ⇒ 하나의 디스크인것..

CLOUDWAVE 2025.01.15

Docker Compose practice : compose file ( 25.01.06-07 )

Compose file - Basic[ Config 파일의 형식들 ]json : { }으로 key와 value로 구성됨{ "A" : { "key" : "value" }, "B" : 30, "items" : [ "Apple", "Banana" ]}​XML : 으로 tree형태의 계층구조로 구성됨YAML : 들여쓰기로 단락을 구분함 / json과 호환( 작성법만 다름 ), 섞어서 쓰기 가능⇒ config 파일에서 주로 쓰이는 형식 : docker compose yaml, kbuernates, Circle CI, github action  들여쓰기나 즉시 값은 value가 됨value에 해당하는 값은 들여쓰기를 통한 단일값(key:val), value값, 다중값 리스트(-)A : key : valueB : 3..

CLOUDWAVE 2025.01.14

Docker Compose practice : compose CLI ( 2025.01.03 )

Docker Compose CLI[ 배경상황 ]간단한 웹사이트 : FRONT서버, BACKEND서버, DB서버, Cache(Radis) & 서비스는 점점 세분화로 작아지고 다양해짐 ⇒ 여러 컨테이너가 필요함각 컨테이너가 중단없이, 문제없이 지속적으로 잘 운영될 수 있도록 관리할 수 있어야함 docker compose : 여러 컨테이너를 정의 + 네트워크 설정, 볼륨 구성 & 재실행, 문제 발생대처 등을 제시 = Define and run multi-container applications with Docker. Service : 논리적으로 정의된 단위 -> 실제 실행인스턴스 container로 구성Compose : 이들을 다루는 도구Project : 전체 구성을 묶는 단위 docker compose-f ..

CLOUDWAVE 2025.01.14

Dokcer Practice : Docker Volume, Docker Network, Docker Advance ( 2025.01.02 )

Doker 볼륨격리된 환경에서 각 컨테이너들은 각자의 컨테이너 레이어(R/W 레이어)에 데이터를 저장한다. 컨테이너간 데이터를 교류할 방안, 장치가 필요해진다. 또한 컨테이너 레이어에 작성된 데이터는 휘발가능성이 높기에 추가적으로 저장보존해야할 필요가 있다. 볼륨(Volume) : 컨테이너의 라이프사이클에 종속되지 않는 외부 저장장치 ⇒ 컨테이너의 생존여부 관계없이 관리됨컨테이너에 mount 하여 자료를 옮기거나 보존이 가능(일종의 USB)호스트의 변경상황을 내부로 전파가능(일종의 port)특정 디렉토리에 볼륨을 mount한 이후에는 로컬의 스토리지를 쓰는 것이라고 인식하지만 실질적으로 공유 스토리지(볼륨)에 쓰게 된다. DB 클러스터 작업과 유사한 형태container1(MasterDB) : 쓰기작업 ..

CLOUDWAVE 2025.01.14

Dokcer Practice : Docker IMAGE, Docker Container ( 2024.12.31 )

서비스의 흐름 : 기획, 설계, 디자인, 개발, 운영지속가능성(sustainability) : 서비스를 오랫동안 운영dev-ops : 반복적인 작업들을 자동화하는 것이 핵심 ( human error를 제거 )자동화를 위한 추상화 : 핵심적인 개념, 기능을 간추려 내는 것 ( ex. 하나의 명령어 내부에 수많은 API들이 호출됨 )하드웨어 추상화 : VMware( 물리적인 서버는 하나지만 여러개처럼 )서비스 추상화 : container기술인 docker!서비스 인프라를 추상화 : kubernetes개발흐름 : 물리적인 서버 → VMware → docker → kubernetes [ VM vs Container ]VM : 하드웨어 위에 여러 OS를 올림 = OS단위로 격리Container : OS는 하나( ..

CLOUDWAVE 2025.01.14