본문 바로가기

All205

[Kubernetes] Ch2. 워크로드 API 카테고리 - (1) 파드 파드 워크로드 리소스의 최소 단위 파드는 1개 이상의 컨테이너로 구성 같은 파드에 포함된 컨테이너들끼리 네트워크적으로 격리되어 있지 않고 IP주소를 공유 즉, 파드 내부 컨테이너는 서로 localhost 통신이 가능하다 (컨테이너별이 아닌 파드 단위로 IP 주소가 할당) 파드 지다인 패턴 사이드카 패턴 (메인 컨테이너에 기능을 추가) 메인 컨테이너 외에 보조적인 기능을 추가하는 서브 컨테이너를 포함하는 패턴 ex1) 특정 변경 사항을 감지하여 동적으로 설정을 변경하는 컨테이너 ex2) 애플리케이션 로그 파일을 오브젝트 스토리지로 전송하는 컨테이너 파드는 데이터 영역을 공유하고 가지고 있을 수 있기 때문에 대부분 설정에 관련된 패턴 앰배서더 패턴 (외부 시스템과의 통신을 중계) 메인 컨테이너가 외부 시스템.. 2022. 11. 19.
[Kubernetes] Ch1. API 리소스와 Kubectl (2) 매니페스트 파일 설계 1개의 매니페스트 파일에 여러 리소스를 정의하거나 여러 매니페스트 파일을 동시에 적용할 수 있다 실행 순서를 정확하게 지켜야 하거나 리소스 간 결합도를 높이고 싶다면 1개의 매니페스트를 사용하는 것이 좋다 하지만 공통으로 사용하는 설정 파일이나 패스워드 등은 여러 리소스에서 사용되는 경우 별도 매니페스트로 분리하는 것이 좋다 어노테이션과 레이블 어노테이션 시스템 구성 요소가 사용하는 메타데이터 metadata.annotations로 설정 쉽게 설명하면, 리소스에 대한 메모 같은 것이다 3가지 용도로 사용된다 시스템 구성 요소를 위한 데이터 저장 모든 환경에서 사용할 수 없는 설정 정식으로 통합되기 전의 기능을 설정 레이블 리소스 관리에 사용하는 메타데이터 metadata.labels.. 2022. 11. 19.
[Kubernetes] Ch1. API 리소스와 Kubectl (1) 쿠버네티스 리소스 카테고리 워크로드 API 카테고리 : 컨테이너 실행에 관련된 리소스 서비스 API 카테고리 : 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 컨피그 & 스토리지 API 카테고리 : 설정/기밀 정보/영구 볼륨 등에 관련된 리소스 클러스터 API 카테고리 : 보안이나 쿼터 등에 관련된 리소스 메타데이터 API 카테고리 : 클러스터 내부의 다른 리소스를 관리하기 위한 리소 워크로드 API 리소스 총 8가지 종류의 워크로드 리소스가 있으며, 클러스터 위에서 컨테이너를 기동하기 위해 사용되는 리소스이다 [파드, 레플리케이션 컨트롤러, 레플리카셋, 디플로이먼트, 데몬셋, 스테이트풀셋, 잡, 크론잡] 서비스 API 카테고리 컨테이너 서비스 디스커버리와 클러스터 외부에서도 접속이 가능한 엔드.. 2022. 11. 16.
[MongoDB] Ch14 - 샤딩 소개 Ch14 샤딩 소개 샤딩과 클러스터 구성 요소 소개 샤딩 구성 방법 샤딩과 애플리케이션의 상호작용 기본 14.1 샤딩이란 샤딩은 여러 장비에 걸쳐 데이터를 분할하는 과정이다 (파티셔닝이라고도 불린다) 각 장비에 데이터 서브셋을 넣음으로써, 더 많은 수의 덜 강력한 장비로 더 많은 데이터를 저장하고 더 많은 부하를 처리할 수 있다 또한, 더 자주 접근하는 데이터를 성능이 좋은 서버에 배치할 수 있다 몽고DB는 애플리케이션에서 구조를 추상화하고 시스템 관리를 간단하게 하는 자동 샤딩을 지원한다 운영 측면에서 몽고DB가 샤드에 걸쳐 데이터 분산을 자동화하므로 용량을 추가하고 제거하기가 쉽다 샤딩은 몽고DB를 구성하는 가장 어렵고 복잡한 방법이다 모니터링할 구성 요소가 많고, 클러스터에서 데이터가 자동으로 옮겨.. 2022. 2. 21.
[MongoDB] Ch13 - 관리 복제 셋 관리를 살펴보자 개별 멤버에 유지 보수 수행하기 다양한 환경에서 복제 셋 구성하기 사용자 oplog 정보를 얻고 크기 조정하기 좀 더 색다른 복제 셋 구성하기 마스터/슬레이브 구조에서 복제 셋으로 전환하기 13.1 독립 실행형 모드에서 멤버 시작 쓰기와 관련된 많은 유지보수 작업은 세컨더리에서 수행할 수 없고 애플리케이션 성능에 영향을 미치므로 프라이머리에서 수행도 어렵다 독립 실행형 모드에서 멤버를 시작하려면 먼저 명령행 인수를 확인해야 한다 replSet 옵션 없이 서버를 재시작한다 다른 멤버들이 서버를 발견하지 못하도록 서버가 다른 포트로 수신하게 된다 dbpath는 그대로 유지한다 유지 보수 수행을 마치면, 서버를 종료하고 원래 옵션으로 재시작한다 13.2 복제 셋 구성 복제 셋 구성은 .. 2022. 1. 28.
[MongoDB] Ch12 - 애플리케이션에서 복제 셋 연결 애플리케이션이 복제 셋과 어떻게 상호작용하는지 살펴보자 연결 및 장애 조치를 수행하는 방법 쓰기 시 복제 대기하는 방법 올바른 멤버에 읽기 요청을 라우팅하는 방법 12.1 클라이언트-복제 셋 연결동작 복제 셋이면 기본적으로 몽고DB 클라이언트는 프라이머리에 연결되고, 모든 트래픽을 프라이머리에 라우팅한다 복제 셋에 대한 연결은 단일 서버에 대한 연결과 비슷하다 드라이버에서 MongoClient를 사용하고, 연결할 드라이버를 위한 시드 목록을 제공하자 시드 목록은 단순히 서버 주소 목록이다 시드(Seed)는 애플리케이션이 데이터를 읽고 쓸 복제 셋의 멤버다 모든 멤버를 나열할 필요는 없다 (드라이버는 시드에 연결되면 다른 멤버들을 발견한다) 모든 몽고DB 드라이버는 서버 검색 및 모니터링 사양을 준수한다 .. 2022. 1. 24.
[MongoDB] Ch11 - 복제 셋 구성 요소 복제 셋 조각들이 어떻게 조합되는지 살펴보자 복제 셋 멤버가 새로운 데이터를 복제하는 방법 새로운 멤버를 영입하는 방법 선출이 작동하는 방법 발생할 수 있는 서버 및 네트워크 오류 시나리오 11.1 동기화 복제는 여러 서버에 걸쳐 복사본을 보관하는 데 관련 있다 몽고DB는 프라이머리가 수행한 쓰기를 모두 포함하는 로그, 즉 oplog를 보관함으로써 복제를 수행한다 oplog : 프라이머리의 로컬 데이터베이스에 있는 제한 컬렉션 각 세컨더리는 프라이머리로부터 복제한 작업을 각각 기록하는 oplog를 보관한다 동기화 소스로 사용되도록 한다 세컨더리 서버가 종료되었다 다시 시작되면 oplog에 있는 마지막 연산과 동기화한다 일반적으로 oplog는 기본 크기면 충분하다 oplog를 만들기 전에 oplogSize.. 2022. 1. 21.