쿠버네티스 아키텍처 쿠버네티스의 주요 컴포넌트컨트롤 플레인 (마스터 노드)워커 노드etcd 분산 스토리지Kubeletapi 서버쿠버네티스 서비스 프록시 (Kube-proxy)스케줄러컨테이너 런타임 (Docker, rkt, …)컨트롤 매니저 클라우드 컨트롤러 매니저 쿠버네티스 컴포넌트 간 커뮤니케이션 방법오직 API 서버를 통해 통신 API 서버모든 컴포넌트와 클라이언트(ex. kubectl)가 사용하는 중앙 컴포넌트RESTful API를 통해 클러스터 상태를 쿼리 및 수정할 수 있는 CRUD 인터페이스 제공그 상태를 etcd에 저장포드 등 오브젝트의 변경 요청이 들어올 경우 요청사항을 etcd에 저장하고 모든 감시자들(클라이언트들)에게 갱신된 오브젝트를 전달 ETCD포드, 레플리카셋, 서비스, 시..
디플로이먼트(Deployment)란?디플로이먼트(Deployment)는 Kubernetes에서 파드(Pod)와 레플리카셋(ReplicaSet)에 대한 선언적 업데이트를 제공하는 리소스입니다. 이를 통해 개발자는 애플리케이션의 배포 및 관리를 쉽게 할 수 있습니다.디플로이먼트 리소스가 생긴 이유무중단 배포(Zero Downtime Deployment)를 구현하기 위해서는 2개 이상의 레플리카셋이 필요합니다.컨테이너 관리: 하나의 애플리케이션이 여러 개의 컨테이너로 구성될 수 있기 때문에, 이러한 컨테이너를 관리하기 위해 파드가 생성됩니다.파드 관리: 여러 개의 파드를 안정적으로 운영하기 위해 레플리카셋이 필요합니다.레플리카셋 관리: 마지막으로, 2개 이상의 레플리카셋을 효과적으로 관리하기 위한 상위 개념으..
쿠버네티스에서 사용하는 3가지 프로브Liveness probe: 컨테이너가 정상적으로 실행 중인지 확인하여 비정상 시 재시작Readiness probe: Pod가 트래픽을 처리할 준비가 되었는지 확인하여 준비되지 않은 Pod는 서비스에서 제외Startup probe: 컨테이너 애플리케이션이 성공적으로 시작되었는지 확인.Liveness Probe의 4가지 메커니즘HTTP GET Probe: 지정된 HTTP 엔드포인트에 GET 요청을 보내 응답 상태로 컨테이너의 건강 상태를 확인. 가장 범용적인 방법.TCP Socket Probe: 컨테이너의 특정 포트에 TCP 연결을 시도해 성공 여부로 상태를 점검.Exec Probe: 컨테이너 내에서 명령을 실행해 그 반환 값을 통해 상태를 판단.gRPC Probe: g..
라벨 (Labels)쿠버네티스에서 라벨은 포드 및 기타 모든 객체를 식별하고 분류하는 데 중요한 역할을 합니다. 라벨은 리소스에 첨부되는 임의의 키/값 쌍으로 구성되며, 클러스터 내에서 특정 리소스를 쉽게 찾고 관리할 수 있게 도와줍니다. 라벨을 활용하면 관련 있는 리소스들을 논리적으로 그룹화할 수 있어 배포, 모니터링, 그리고 스케일링과 같은 작업을 더 효율적으로 수행할 수 있습니다.구성 요소: 라벨은 키/값 쌍으로 이루어져 있으며, 리소스에 부착됩니다.라벨 셀렉터: 라벨 셀렉터를 사용해 특정 라벨이 지정된 리소스의 하위 집합을 선택할 수 있습니다.활용 예시: 배포 자동화, 로드 밸런싱, 모니터링 대상 선택 등에 사용됩니다.유연성: 라벨은 임의의 키/값을 사용할 수 있어, 다양한 조건에 맞게 리소스를 ..
동일 포드 내 컨테이너 간 통신포드 안의 모든 컨테이너는 동일한 네트워크 및 UTS 네임스페이스에서 실행되기 때문에 같은 네트워크 환경을 공유합니다. 이는 마치 하나의 컴퓨터에서 여러 프로그램이 동시에 실행되는 것과 비슷합니다. 각 컨테이너는 동일한 IP 주소와 호스트 이름을 사용하며, 네트워크 인터페이스도 공유합니다. 하지만, 같은 포드 내의 컨테이너들이 같은 포트 번호를 사용하면 문제가 생길 수 있으므로, 서로 다른 포트를 사용해야 합니다.동일 포드 내 컨테이너들은 같은 네트워크와 UTS 네임스페이스를 공유함.같은 IP 주소와 호스트 이름을 사용함.컨테이너 간 통신이 간단해지고, 네트워크 인터페이스도 공유됨.동일 포드 내에서 같은 포트 번호 사용 시 포트 충돌이 발생할 수 있음. 플랫 인터 포드 네트..
포드 Pod컨테이너화된 애플리케이션의 가장 작은 배포 및 관리 단위포드는 하나 이상의 컨테이너를 포함할 수 있음동일한 리눅스 네임스페이스와 동일한 워커 노드에서 항상 함께 실행됨 주요 특징컨테이너 그룹화 : 하나 이상의 컨테이너를 그롭화하여 동일한 네트워크와 스토리지를 공유. 일반적으로 포드 내 컨테이너들은 매우 밀접하게 연관된 작업을 수행. (ex. 한 포드 내의 두 컨테이너가 서로 파일스토리지를 공유하며 서로 의존하는 관계)네트워킹 : 포드 내부 컨테이너들은 동일한 네트워크 네임스페이스를 공유하여 동일한 IP주소와 포트를 사용하여 서로 통신할 수 있음. 포드 외부에서는 포드의 IP주소를 통해 접근할 수 있음일시적 생명주기 : 특정 작업이 완료되거나 더이상 필요하지 않으면 종료됨. 필요에 따라 언제..
쿠버네티스 등장 이유모놀리식 애플리케이션에서 마이크로서비스로의 전환하며 구성요소가 쪼개지기 시작배포 가능한 구성 요소의 수와 데이터센터 규모의 증가로 전체 시스템을 원활히 구성하고 유지, 관리하는 것이 어려워짐하드웨어 비용을 낮추고 효율적 리소스 활용을 위해 각 구성요소를 어디에 배치했는지 파악하는 것이 어려워짐서버의 구성 요소의 스케쥴링, 구성, 감독 및 오류처리의 자동화가 필요해졌음⇒ 쿠버네티스는 리눅스 컨테이너 기술을 사용해 실행중인 애플리케이션을 격리한다. 가상머신 vs 리눅스 컨테이너가상머신컨테이너프로세스마다 자체 OS (=게스트 OS)가 있음호스트 OS에서 동작하는 단일 커널.각 하드웨어가 자체 시스템 프로세스 집합을 실행해야 하기 때문에 자체 프로세스에서 소비되는 것 외에도 컴퓨팅 리소스..
- Total
- Today
- Yesterday
- k8s
- 리눅스 컨테이너
- 분산처리
- 대규모 데이터 처리
- mongoDB
- 몽고디비
- 백엔드
- 주니어개발자
- database
- 쿠버네티스
- 도커
- index
- 라라벨
- phpUnit
- docker
- devops
- 샤딩
- laravel 테스트코드
- pods
- java
- kubernetes
- springboot
- 샤드
- laravel 테스트
- mockery
- MySQL
- redis
- php
- NoSQL
- laravel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |