패키지 없이 MAC 실행하기
소스 체크아웃에서 MAC을 평가하는 상황이라면, 빌드 트리에서 직접 CLI를 실행할 수 있습니다.
소스 체크아웃에서 실행
~$ make cli
~$ ./cli/mac env set MAC_CONFIG_DIR=$PWD/deploy
~$ ./cli/mac start all --local # ./services에서 이미지를 빌드한 뒤 실행
env / pull / build / start / stop / status / clean 등 모든 서브커맨드가
동일하게 동작합니다 — 차이는 바이너리 경로와 MAC_CONFIG_DIR 뿐입니다. --local
플래그 (또는 MAC_IMAGE_SOURCE=local)를 주면 start가 레지스트리에서 받는 대신
체크아웃에서 이미지를 빌드합니다. make build / mac build는 같은 일을 별도
단계로 수행합니다.
$HOME이 노드들 사이에 NFS로 공유된다면, 체크아웃 경로가 현재 노드에만 적용되도록
mac env set 대신 셸에서 MAC_CONFIG_DIR를 export 하세요.
docker compose 직접 사용
CLI는 사실 docker compose와 에이전트 등록 절차를 묶어주는 편의 래퍼입니다. Compose를
직접 다루고 싶다면 다음과 같이 합니다.
~$ cd /etc/mango/mac # 또는 $MAC_CONFIG_DIR
~$ docker compose -f docker-compose.master.yml up -d
~$ docker compose --profile nvidia -f docker-compose.agent.yml up -d # 또는 --profile amd
GPU 벤더 익스포터 (NVIDIA는 dcgm-exporter, AMD는 rocm-exporter)는 Compose
profiles:로 게이트되어 있어, docker compose -f docker-compose.agent.yml up -d만
실행하면 GPU 익스포터를 제외한 모든 것이 뜹니다. --profile nvidia 또는
--profile amd를 넘겨야 GPU 익스포터가 기동됩니다 — 이는 mac start가 감지된 GPU
프로파일에 맞춰 자동으로 넘기는 플래그입니다.
또한 mac start agent를 건너뛰면 자동 등록 단계도 함께 빠진다는 점에 유의하세요 —
Prometheus가 에이전트를 정상적으로 스크랩하기 시작해야 마스터에 등장합니다.
언제 필요한가
- 특정 git ref에서 발생한 고객 이슈를 재현할 때
- 랩 환경에서 api-server나 web-ui를 핫 패치할 때
- 자체 매니페스트로 MAC 이미지를 쿠버네티스에 올릴 때