용어집
용어집 (Glossary)
이 용어집은 노마드에서 사용되는 중요한 용어와 개념에 대한 정의와 설명을 제공해요.
출처: 문서
본문
할당 (Allocation)
할당(Allocation)은 작업의 태스크 그룹과 클라이언트 노드 사이의 매핑이에요. 단일 작업은 수백 또는 수천 개의 태스크 그룹을 가질 수 있으며, 이는 작업을 클라이언트 머신에 매핑하기 위해 그와 동등한 수의 할당이 존재해야 한다는 뜻이에요. 할당은 평가(Evaluation) 중에 이루어지는 스케줄링 결정의 일부로 노마드 서버가 만들어요.
권위 있는 리전과 비권위 리전 (Authoritative and Non-Authoritative Regions)
권위 있는(authoritative) 리전은 연합된 멀티 리전 클러스터에서 ACL 토큰, 정책, 역할, 네임스페이스, 노드 풀 같은 리전 간 복제되는 엔티티에 대한 진실의 원천(source of true)을 보유한 리전이에요.
다른 모든 리전은 비권위(non-authoritative) 리전으로 간주되며 권위 있는 리전에서 이 엔티티들을 끌어와(pulling) 복제해요.
빈 패킹 (Bin Packing)
빈 패킹(Bin Packing)은 빈(bin)의 활용을 최대화하는 방식으로 빈을 항목으로 채우는 과정이에요. 이는 노마드로 확장되며, 여기서 클라이언트가 "빈"이고 항목이 태스크 그룹이에요. 노마드는 작업을 클라이언트 머신에 효율적으로 빈 패킹해 리소스를 최적화해요.
클라이언트 (Client)
노마드 클라이언트는 머신의 사용 가능한 컴퓨팅 리소스를 사용해 작업을 실행하고 관리하도록 구성된 에이전트예요. 에이전트는 서버에 등록하고, 할당될 작업을 감시하며, 작업을 실행할 책임이 있어요. 노마드 에이전트는 서버와 인터페이스하는 오래 지속되는 프로세스예요.
데이터센터 (Datacenters)
노마드는 데이터센터를 리전 내 클라이언트의 추상적 그룹으로 모델링해요. 노마드 클라이언트는 조인된 서버와 같은 데이터센터에 있을 필요는 없지만 같은 리전에 있어야 해요. 데이터센터는 작업 간 장애 허용을 표현하고 인프라를 격리하는 방법을 제공해요.
배포 (Deployment)
배포(Deployments)는 노마드가 클러스터 상태의 변경을 단계별 방식으로 롤아웃하는 메커니즘이에요. 배포는 service 유형의 작업에서만 사용할 수 있어요. 평가(Evaluation)가 처리되면 스케줄러는 업데이트 블록과 클러스터의 현재 상태가 허용하는 수만큼의 할당만 생성해요. 배포는 그 할당들의 상태를 모니터링하고 업데이트의 다음 단계를 위한 새 평가를 발생시키는 데 사용돼요.
드라이버 (Driver)
드라이버(Driver)는 작업(Task)을 실행하는 기본 수단을 나타내요. 예시 드라이버로는 Docker, QEMU, Java, 정적 바이너리가 있어요.
평가 (Evaluation)
평가(Evaluations)는 노마드가 스케줄링 결정을 내리는 메커니즘이에요. 원하는 상태(작업) 또는 실제 상태(클라이언트)가 변경되면 노마드는 어떤 조치를 취해야 하는지 결정하기 위해 새 평가를 만들어요. 평가는 필요한 경우 할당의 변경으로 이어질 수 있어요.
작업 (Job)
작업(Job)은 사용자가 노마드에 워크로드를 선언하는 명세(specification)예요. 작업은 일종의 원하는 상태(desired state)로, 사용자는 작업이 실행되어야 한다는 것을 표현하지만 어디에서 실행되어야 하는지는 표현하지 않아요. 노마드의 책임은 실제 상태가 사용자의 원하는 상태와 일치하도록 하는 것이에요. 작업은 하나 이상의 태스크 그룹으로 구성돼요.
노드 (Node)
클라이언트 모드로 노마드 에이전트를 실행하는 머신을 가리키는 더 일반적인 용어예요. 서로 다른 개념이지만 일부 자료와 비공식 콘텐츠에서 노드가 클라이언트와 상호 교환적으로 사용되는 것을 볼 수 있어요.
노드 풀 (Node Pool)
노드 풀은 노드를 그룹화하는 데 사용되며, 주어진 노드 집합에 어떤 작업이 할당을 배치할 수 있는지 제한하는 데 사용될 수 있어요. 노드 풀의 사용 사례 예시로는 환경별(개발, 스테이징, 프로덕션), 부서별(엔지니어링, 재무, 지원), 기능별(데이터베이스, 인그레스 프록시, 애플리케이션) 노드 분리가 있어요.
리전 (Regions)
노마드는 인프라를 리전과 데이터센터로 모델링해요. 리전은 하나 이상의 데이터센터를 포함해요. 함께 조인된 서버 집합은 단일 리전을 나타내요. 서버는 리전 간 연합(federate)되어 노마드를 전역적으로 인식하게 해요.
연합된 클러스터에서는 리전 중 하나가 권위 있는(authoritative) 리전으로 정의되어야 해요.
서버 (Server)
노마드 서버는 클러스터의 두뇌예요. 리전마다 서버 클러스터가 있으며 모든 작업과 클라이언트를 관리하고, 평가를 실행하며, 작업 할당을 생성해요. 서버는 서로 데이터를 복제하고 고가용성을 보장하기 위해 리더 선출을 수행해요. 서버의 지연 시간 요구사항에 대한 자세한 내용은 Network Topology에서 찾을 수 있어요.
작업 (Task)
작업(Task)은 노마드에서 가장 작은 작업 단위예요. 작업은 노마드가 지원하는 작업 유형에 유연성을 주는 드라이버에 의해 실행돼요. 작업은 드라이버, 드라이버 구성, 제약(constraints), 필요한 리소스를 지정해요.
태스크 그룹 (Task Group)
태스크 그룹(Task Group)은 함께 실행되어야 하는 작업 집합이에요. 예를 들어 웹 서버는 로그 전송 부 프로세스도 항상 실행되도록 요구할 수 있어요. 태스크 그룹은 스케줄링의 단위이며, 전체 그룹이 같은 클라이언트 노드에서 실행되어야 하고 분할될 수 없음을 의미해요.