본문 바로가기
반응형

Development, Architecture29

[Linux] 가상화 기능과 컨테이너 가상화 기능가상화 소프트웨어: 물리기기에 설치되어 가상머신을 생성, 관리, 삭제가상머신은 물리기기의 하드웨어(CPU, 메모리, 디스크)를 나눠가짐  장치접근 방식의 비교 1. 물리기기의 장치접근2. 가상머신의 장치접근  컨테이너가상화와의 차이점가상머신은 각 머신 전용의 가상 하드웨어와 커널을 사용하는 반면, 컨테이너는 호스트 OS와 모든 컨테이너가 하나의 커널을 공유.-> 컨테이너는 가볍고 하드웨어 접근이 빠름 컨테이너 종류1. 시스템 컨테이너 - 일반 리눅스 환경처럼 다양한 애플리케이션을 실행하기위한 컨테이너2. 애플리케이션 컨테이너(ex. 도커) - 하나의 애플리케이션만 동작하는 컨테이너 네임스페이스 - 컨테이너의 구현 방법 - 종류: pid 네임스페이스, 사용자 네임스페이스, 마운트 네임스페이스 등.. 2024. 8. 29.
[쿠버네티스] 인그레스 알아보기 인그레스란상황: 여러분이 쿠버네티스 클러스터 안에 두 개의 웹 애플리케이션을 가지고 있다고 가정해봅시다. 하나는 쇼핑몰 서비스, 다른 하나는 블로그 서비스입니다. 두 서비스 모두 클러스터 내부에서만 접근이 가능하지만, 외부 사용자들이 이 두 서비스를 각각 사용할 수 있도록 하고 싶습니다.문제: 외부 사용자가 shop.example.com으로 접속하면 쇼핑몰 서비스로, blog.example.com으로 접속하면 블로그 서비스로 연결되게 하려면 어떻게 해야 할까요? 인그레스 객체에는 라우팅 규칙이 일반적인 형태로 기술되어있고 컨트롤러가 이 규칙을 컨트롤러의 프록시에 적용한다.shop.example.com으로 들어오는 요청은 쇼핑몰 서비스로 라우팅blog.example.com으로 들어오는 요청은 블로그 서비스.. 2024. 8. 8.
[쿠버네티스] 헬름을 이용한 애플리케이션 패키징 헬름이란헬름을 사용하면 여러 개의 yaml 정의 스크립트를 하나의 아티팩트로 묶어 공개 또는 비공개 리포지터리에 공유할 수 있다헬름은 쿠버네티스에 애플리케이션 수준의 추상화를 추가해준다.헬름에서 사용되는 패키징 포맷은 쿱네티스 yaml 파일을 확장한 것으로, 헬름 패키지는 여러 개의 메니페스트를 모아 놓은 것과 같다. 헬름 사용하기헬름을 사용하기위해 레포지토리를 따로 설정해야 한다. 헬름 레포지토리란 도커 허브 같은 컨테이너 이미지 레지스트리라고 생각하면 된다. 서버에서 사용가능한 모든 페키지의 목록을 제공하며 이 목록을 로컬에 저장했다가 패키지 검색에 사용한다. 용어 정리차트: 애플리케이션의 패키지. 로컬 컴퓨터에서 만들어져 로컬에 설치될 수도 있고 레포지토리로 배포할 수도 있다.릴리스: 설치한 차트를.. 2024. 8. 4.
[쿠버네티스] 데몬셋과 스테이트풀셋의 롤링 업데이트 데몬셋데몬셋은 클러스터의 모든(또는 일부) 노드에 파드를 하나씩만 실행하므로 롤링 업데이트를 할때 잉여 파드를 만들 수 없고 삭제 후 제거 전략만 가능하다. maxUnavailable 값을 조정하여 동시에 업데이트할 노드 개수를 조절할 수는 있지만, 여러 개의 파드를 한꺼번에 제거하면 파드가 대체될때까지 그만큼 처리 용량이 감소한다.  스테이트풀셋스테이트풀셋은 자신이 지정한순서대로 파드를 관리하는데, 이 순서는 업데이트에도 적용된다. 마지막 파드부터 롤아웃을 시작해서 첫번째 파드까지 진행된다. 이를 활용하여 부 인스턴스에서 업데이트가 안정적인지 먼저 확인해 볼 수 있다. maxSurge나 maxUnavailable 설정은 사용할 수 없고 동시에 업데이트되는 파드 수는 항상 하나다. 다만 partition.. 2024. 8. 3.
[쿠버네티스] 디플로이먼트의 롤아웃과 롤백 롤아웃레플리카셋을 새로 만들어 레플리카 수를 지정된 숫자만큼 늘린 후 기존 레플리카의 레프릴카 수를 0으로 낮추는 방식 주의점디플로이먼트 정의가 변경된다고 무조건 롤아웃이 일어나지는 않음. 파드의 정의가 변경될 때만 발생한다. 리비전디플로이먼트의 버전 기록을 의미. 디플로이먼트가 새 버전으로 롤아웃될 때마다 리비전 번호가 증가하며, 이를 통해 특정 리비전으로 롤백할 수 있음 롤백 명령kubectl rollout undo deploy/web --to-revision=2 컨피그맵과 시크릿 관련 주의점1. 설정을 가변적인 요소로 보고 릴리스에 컨피그맵 수정을 포함하는 방법컨피그맵 YAML  파일의 수정이 일어나도 이름은 바뀌지 않으므로 디플로이먼트 YAML이 수정되지는 않음.=> 이 방법은 롤아웃 기록이 남지.. 2024. 8. 3.
[쿠버네티스] 스테이트풀셋 스테이트풀셋주요 용도안정된 프레임워크에서 동작하는 애플리케이션에 스케일링 기능을 제공하는 파드 컨트롤러.주로 데이터베이스, 메시지 큐, 로그 처리 시스템 등 상태 정보를 유지해야 하는 애플리케이션에 사용 특징고유한 네트워크 ID: 스테이트풀셋에서 생성되는 각 파드는 규칙적인 이름과 고유한 네트워크 ID(도메인 네임)를 가진다. 예를 들어, 파드 이름이 statefulset-0, statefulset-1, statefulset-2와 같이 부여된다.순차적 생성 및 종료: 파드는 순서대로 생성되고 종료된다. 첫 번째 파드가 Running 상태가 되면 그 다음 파드가 생성되는 식으로 동작다.apiVersion: apps/v1kind: StatefulSetmetadata: name: example-statefu.. 2024. 7. 27.
반응형