목록전체 글 (81)
Fairy ' s
Kube Scheduler 특정 기준에 따라 노드에서 어떤 파드가 어떤 노드로 가야하는지 결정하는 것만 하며, 실제로 파드를 노드에 배치하지는 않는다. (파드를 노드에 배치하는 작업은 kubelet이 하며, kubelet은 배에 파드를 만든다.) 예를 들어, 파드가 'CPU: 10'이라는 요구사항이 있을 때, 스케줄러는 다음 단계를 거친다. 파드에 가장 적합한 노드 식별. 파드 프로필에 맞지 않는 노드(CPU가 충분하지 않은 노드) 등 필터링을 시도한다. 노드의 순위를 매긴다. 우선순위 함수를 사용해 0에서 10까지의 점수를 할당한다. 예를 들어, 노드의 프리한 리소스 양을 계산하고, 파드를 프리 리소스가 더 많은 노드에 배치한다. 위의 예가 대략적으로 작동하는 방식이며, 스케줄을 커스터마이징하여 자신만..
Container Runtime Interface (CRI) 어떤 공급업체든 OCI 표준을 준수하는 한에서 쿠버네티스의 컨테이너 런타임으로 작업하게 해준다. - Open Container Initiative (OCI) : 이미지 스펙과 런타임 스펙의 기준으로 구성돼 있다. Dockershim : Docker는 CRI가 도입되기 전에 만들어졌고, 여전히 가장 지배적인 컨테이너 도구이기 떄문에, CRI 밖에서 Docker를 지속 지원하는 임시방편으로 만들어진 도커 지원 방식이다. 하지만 Dockershim을 유지하기 위한 불필요한 노력으로 문제가 커졌기 때문에, Dockershim을 완전히 제거하였다. 따라서 Docker 자체는 쿠버네티스에서 지원 런타임으로 제거되었다. Docker 지원이 해제 된 뒤에도 ..
kube-api server : 쿠버네티스의 주요 관리 구성 요소 kube-api server는 클러스터에서 변경을 위해 수행해야 하는 모든 작업의 중심에 있다. 또한, ETCD data store과 직접 소통하는 유일한 컴포넌트로, 인증과 요청 검증을 담당하며, ETCD data store의 데이터를 받아오고 업데이트 한다. Scheduler, kube-controller-manager, kubelet과 같은 다른 컴포넌트들은 클러스터 내의 각자 영역에서 api server를 사용하여 업데이트를 수행한다. kubectl 명령을 실행하면, kubectl 유틸리티는 kube-api server에 접근하게 되고, kube-api server는 요청을 인증하고 검증한다. 그 후 ETCD 클러스터로부터 데이터를..
Master Node - ETCD 간단/안전/신속하며, 분산되고 신뢰할 수 있는 Key-Value Store 키 값 쌍을 저장하고 회수할 수 있다. Install ETCD Github 사이트에서 OS에 맞는 바이너리 다운로드 / 실행 포트 2379로 Listen하는 서비스가 시작된다. 어떤 클라이언트든 이 ETCD 서비스에 접속해 정보를 저장하고 검색할 수 있다. Key-Value Store 개인은 문서를 하나 갖고 그 개인에 관한 모든 정보가 해당 파일에 문서나 페이지 형태로 저장된다. 이런 파일은 어떤 형식이나 구조로든 만들어질 수 있고, 한 파일의 변화는 다른 파일에 영향을 주지 않는다. 다른 문서를 업데이트하지 않고도 이 문서들에 추가적인 세부 사항을 추가할 수 있다. 단순한 키와 값을 저장하고 ..
Kubernetes 응용 프로그램을 컨테이너 형식으로 자동화하여 호스트하는 것 프로그램의 많은 인스턴스를 쉽게 배포할 수 있다. 응용 프로그램 내 다양한 서비스의 통신이 쉽게 가능하다. Kubernetes Cluster : 노드 세트로 구성되며, 물리적 가상, 온-프레미스 또는 클라우드일 수도 있고 컨테이너 형태의 응용 프로그램 호스트일 수도 있다. Master Node : Manage, Plan, Schedule, Monitor Nodes 쿠버네티스 클러스터를 관리하고 서로 다른 노드에 대한 정보를 저장하고 어떤 컨테이너가 어디로 갈지 계획하고, 노드와 컨테이너를 모니터링하는 등등을 책임진다. 클러스터에 관한 정보를 저장하는 ETCD 클러스터가 있다. >> ETCD Cluster, Kube-APISer..
면접 예상 질문 ㅡ #1 DynamoDB와 통신할 때, 데이터 전송 비용을 효율적으로 사용하기 위해서는 어떻게 해야 하는가? DynamoDB로 작업할 때는 데이터 전송 비용의 효율적인 관리가 필수적입니다. 데이터 전송 비용을 최적화하기 위한 전략으로는 먼저 전송되는 데이터의 크기와 양은 비용에 직접적인 영향을 미치므로, 불필요한 데이터 전송을 최소화해야 합니다. DynamoDB는 유연한 쿼리 기능을 제공하므로, 원하는 속성과 필터를 지정하여 관련 데이터만 검색할 수 있습니다. 이렇게 필터링하여 필요한 정보만 전송하면 비용을 최소화할 수 있습니다. 또한, 애플리케이션의 액세스 패턴 및 쿼리 요구 사항을 기반으로 데이터 모델 및 인덱스를 신중하게 설계하고 업데이트하여 효율적인 데이터 검색을 보장하는 것이 중..
목차 프로그램 개요 요구 사항 아키텍처 리소스 선택 이유 트러블 슈팅 향후 개선점 후기 프로그램 개요 및 요구사항 이 프로그램은 다수의 인원이 한 작업에 대해 역할을 나누어 프로젝트를 진행해야 할 때 이용할 수 있습니다. 사용자는 어떠한 내용의 Task를 생성할 수 있고, 특정 작업에 대한 담당자(가입되어 있는 사용자)를 지정합니다. 담당자는 그 작업을 진행하고, 담당자는 진행 상황이 바뀔 시 Task의 진행도를 바꿀 수 있고 진행도 혹은 Task 의 내용이 수정될 때마다 사용자에게 메일로 특정 로그 내용을 전송하여 보다 쉽게 수정된 내용을 확인할 수 있도록 합니다. 기능 요구사항 작업의 진행상황을 체계적으로 관리할 수 있도록 업무를 분배하고 진행 상황을 관리할 수 있는 시스템을 구축해야한다. 사용자는 ..