Agent Capacity KO - k-p2p-lab/kpl-v3 GitHub Wiki
Agent ์ฉ๋๊ณผ Peer ๋ฐฐ์น
Wiki home โบ ํ๊ตญ์ด ๋ฌธ์ ยท ์์ด ์๋ฌธ
๋ฌธ์ ์๋ด ยท ์์ค ์ ์ฅ์
Agent๋ฅผ ์คํํ ํธ์คํธ๋ Swarm ๋ฐฐํฌ์์ ์ ํํฉ๋๋ค. ์ด ๋ฌธ์๋ Peer ์์ฑ ํ์ฉ๋๊ณผ ๋ฐฐ์น๋ฅผ ์ค๋ช ํ๋ฉฐ ์์ฒญยท์๋ตยท์ ์ฉ ํ์ธ ํ๋๋ ์ค์ API๊ฐ ์ ์ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ๊ณผ Agent๋ณ ์์ธ ์ค์
capacity๋ Peer ๊ฐ์์ admission ์ ํ์ด๋ฉฐ CPUยท๋ฉ๋ชจ๋ฆฌ ์์ฝ์ด๋ cgroup ํ๋๊ฐ ์๋๋๋ค. Agent์ Swarm resource ์ ํ์ ๋ฐ๊พธ์ด๋ ํ์ ์ปจํ
์ด๋์ธ Peer์ ์ ํ๋์ง ์์ต๋๋ค. ์ ๊ณต๋ stack์ KPL_AGENT_CAPACITY๋ฅผ ๋ชจ๋ Agent์ ์์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. **Dashboard โ Agent Status โ Settings (โ๏ธ)**์์ Custom for this Agent๋ฅผ ์ ํํ๋ฉด ํด๋น Agent ID์๋ง ์์ธ๊ฐ์ ์ง์ ํฉ๋๋ค. CLI default๋ฅผ ์ ํํ๋ฉด ์์ธ๊ฐ์ ์ญ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด KPL_AGENT_CAPACITY=200์ ์ ์งํ ์ฑ ํน์ Agent๋ง 100์ผ๋ก ์ค์ ํ๋ฉด ๋ค๋ฅธ Agent๋ ๊ณ์ 200์ ์ฌ์ฉํฉ๋๋ค. CPU/RAM/FD/conntrack ๋ฐ Docker daemon ๋ถํ๋ฅผ ์ธก์ ํด capacity๋ฅผ ์ ํ์ญ์์ค.
Agent๋ณ ์์ธ๊ฐ์ <controller-data-dir>/agent-capacities.json์ ์ ์ฅํ๋ฉฐ Controller ๋ณผ๋ฅจ๊ณผ Agent ID๊ฐ ๊ฐ์ผ๋ฉด ControllerยทAgent ์ฌ์์ ๋ค์๋ ์ ์งํฉ๋๋ค. Controller ๋ฐฑ์
์ ์ด ํ์ผ์ ํฌํจํ์ญ์์ค. Agent ID๊ฐ ๋ฐ๋๋ฉด ๋ณ๋ ์ค์ ๋์์
๋๋ค. ์คํ๋ผ์ธ Agent์ ์ค์ ์ ์ฌ์ ์ํ ๋ ์ ์ฉํฉ๋๋ค. Controller์ Agent ๋ชจ๋ ์ด ๊ธฐ๋ฅ์ ์ง์ํ๋ ๋ฒ์ ์ด์ด์ผ ํ๋ฉฐ, ๊ตฌ๋ฒ์ Agent๋ UI์ ์ค์ (โ๏ธ) ๋ฒํผ์ ๋นํ์ฑํํฉ๋๋ค.
์๋น์ค ์ฌ์์ ์์ด ๋ฑ๋กยทheartbeat ์๋ต์ผ๋ก ์ค์ ์ ์ ๋ฌํฉ๋๋ค. ํ์๋ CLI ๊ธฐ๋ณธ๊ฐ ๋๋ ์์ธ๊ฐ๊ณผ ์ ์ฉ ํ์ธ ์ **Applyingโฆ**์ ํ์ํฉ๋๋ค. ์ฉ๋์ ๋ฎ์ถ๋ฉด ์ ๋ฐฐ์น ์ ํ์ ์ฆ์ ์ ์ฉํ๊ณ ๊ธฐ์กด Peer๋ ์ ์งํฉ๋๋ค. ํ์ฌ ์ ์ ๋์ด ํ๋๋ณด๋ค ํฌ๋ฉด ์ฌ์ ๊ฐ ์๊ธธ ๋๊น์ง ์ join์ด ๋๊ธฐํฉ๋๋ค. ์ฆ๊ฐ๋ Agent๊ฐ ํ์ฌ ์ค์ ์ ์ ์ฉํ๋ค๊ณ ํ์ธํ ๋ค ์ฌ์ฉํ ์ ์์ต๋๋ค. Agent ์์ฒด ์์ฑ ์ ํ๊ณผ capacity ๋ฉํธ๋ฆญ์๋ ๋ณ๊ฒฝ๊ฐ์ ๋ฐ์ํฉ๋๋ค.
๋ฐฐ์น ์ ์ฑ
| ์ค์ | ๋ฐฐ์น ๋์ |
|---|---|
placement: balanced (๊ธฐ๋ณธ) |
Peer ํ๋๋ฅผ ์ถ๊ฐํ ์์ ์ ์ ๋/์ ํจ capacity๊ฐ ๊ฐ์ฅ ๋ฎ์ online Agent๋ถํฐ ๋ฐฐ์น. ๋๋ฅ ์ ํ์ฌ ์ ์ ์จ, Agent ID ์์ |
placement: random |
์ฌ์ ๊ฐ ์๋ online Agent ์ค ์๋ ๊ธฐ๋ฐ ์ ํ |
placement: single-agent |
ํ join ์คํ์ ์ ํํ Agent ํ๋์ ๊ณ ์ . repeat๋ ํ์ฐจ๋ง๋ค ์ฌ์ ํ. ๊ฐ๋ ์ฐจ๋ฉด ๋ค๋ฅธ ์๋ฒ๋ก ๋๊ธฐ์ง ์๊ณ ๋๊ธฐ |
agentId |
์ง์ ํ Agent๋ก ๊ณ ์ . ๋ฌผ๋ฆฌ ์๋ฒ ๊ณ ์ ์คํ์ /api/v1/agents์ ID ์ฌ์ฉ |
parallelism |
parallel: true์ธ join์์ ๋์์ ์คํํ ์์
์. ์๋ฒ ์๋ Swarm replica ์์ ๋ค๋ฆ |
Balanced ๋ฐฐ์น๋ ์น ์์ธ๊ฐ์ ํฌํจํ ๊ฐ Agent์ ์ ํจ capacity์ ๋น๋กํฉ๋๋ค. ๋ค๋ฅธ ๋ถํ๊ฐ ์๋ capacity 100๊ณผ 50์ Agent์ Peer 75๊ฐ๋ฅผ ์์ฝํ๋ฉด 50๊ฐ์ 25๊ฐ๋ก ๋ฐฐ๋ถํฉ๋๋ค. ์ ์ ๋์๋ ๋ชจ๋ ์คํ์ Peer, ์์ฑ ์์ฝ, ์ ๊ฑฐ ์ค์ธ ์ปจํ
์ด๋๋ฅผ ํฌํจํฉ๋๋ค. ๊ธฐ์กด Peer๋ ์ด๋ํ์ง ์๊ณ ์ join๊ณผ churn์ผ๋ก ๋น์์ง๋ ์ฌ๋กฏ์ ํตํด ์ ์ ๋น์จ์ ๋ง์ถฅ๋๋ค. ๋ช
์์ agentId, random, single-agent๋ ์ง์ ํ ๋ฐฐ์น ์ ์ฑ
์ ์ ์งํฉ๋๋ค.
| Agent | ์ ํจ ์ฉ๋ | 75๊ฐ ์์ฝ ํ Peer ์ | ์ ์ ์จ |
|---|---|---|---|
| A | 100 | 50 | 50% |
| B | 50 | 25 | 50% |
๋ค๋ฅธ ์ ์ ๊ฐ ์๋ Agent์์ ์์ํ ์์ ์ ๋๋ค. Peer ์ ์ ์จ์ด ๊ฐ์๋ CPUยท๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ฅ ๊น์ง ๊ฐ๋ค๋ ๋ป์ ์๋๋๋ค.
์์ฑ ํ์ฉยท์ ๋ฆฌยท๋ถํ
๋์ ์คํ์ ์์ฝ์ Controller์์ ์ง๋ ฌํํฉ๋๋ค. Agent๋ ์์ฑ ์์ฒญ ์๋ฝ๋ถํฐ ์ญ์ ์๋ฃ ํ์ธ๊น์ง ์ฌ๋กฏ์ ์ ์งํ๋ฏ๋ก Docker ์์ฑยท์์ ๋๊ธฐ ์๊ฐ๋ ํฌํจํ๋ฉฐ, ์ญ์ ์คํจ๋ ์ ์ ๋์ ํฌํจํฉ๋๋ค. ๊ฐ๋ณ Peer DELETE์ ์ ์ ์๋ต๋ง์ผ๋ก ์ฌ๋กฏ์ ๋ฐํํ์ง ์์ต๋๋ค. ๋คํธ์ํฌ ๋จ์ ๋ก ๋ณด๊ณ ๊ฐ 10์ด ๋๊ฒ ์์ผ๋ฉด ์ ๊ท ๋ฐฐ์น์์ ์ ์ธํ๋ฉฐ, ์ด์ Agent ํ๋ก์ธ์ค๋ ์์๊ฐ ๋ค์งํ ๋ณด๊ณ ๊ฐ ํ์ฌ ๋ ธ๋ยท์ฉ๋์ ๋ฎ์ด์ฐ์ง ์๋๋ก ๊ฒ์ฌํฉ๋๋ค. ๊ฐ์ ID์ ์ Agent๋ ์ด์ ํ๋ก์ธ์ค์ online ์ ํจ ์๊ฐ์ด ๋๋ ๋ค ๋ฑ๋ก๋ฉ๋๋ค.
์์ฑ ์๋ต์ด ๋๊ธฐ๋ฉด ์ ์ฅ ์ฌ๋ถ๊ฐ ๋ถํ์คํ ์ ์์ต๋๋ค. Controller๋ ๋ณต๊ตฌ ์ค ์์ฝ์ ์ ์งํ๋ฉฐ, Peer ์ํ ๋ณด๊ณ ๋ก ์ ์ ๋ฅผ ํ์ธํ๊ฑฐ๋ ํด๋น Run ์ ๋ฆฌ์์ ์คํ ์ธ๋ ์ฐจ๋จ๊ณผ ์ปจํ ์ด๋ ์ ๊ฑฐ๊ฐ ํ์ธ๋ ๋ค ํด์ ํฉ๋๋ค. ์ฌ์๋ ํ๋์ ๋ฒ์ ํธํ์ฑ์ ์์ฑ ์์ฒญ ๋ณต๊ตฌ ๊ณ์ฝ์ ์ฐธ๊ณ ํ์ญ์์ค.
Peer๊ฐ ๋ณด๊ณ ํ stopping, stopped, failed ์ํ๋ง์ผ๋ก ์ปจํ
์ด๋ ์ ๊ฑฐ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค. ํด๋น ์ํ์ฌ๋ ์ค์ ํ๋ก์ธ์ค๊ฐ ์ด์ ์์ผ๋ฉด ์ ์ง ์์ฒญ์ผ๋ก ์ทจ์ํฉ๋๋ค. Run ์ ๋ฆฌ๋ ๋์์ ์์๋ ์ฌ์๋๋ฅผ ํฌํจํ์ฌ ํ์ฌ ์ ๊ฑฐ ์๋๊ฐ ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. Agent๋ ์ข
๋ฃ ์ฆ๊ฑฐ๊ฐ ๋ก์ปฌ telemetry ํ์ ๋ค์ด๊ฐ๊ณ ์ ๋ฆฌ ์๋ฃ๊ฐ ๊ธฐ๋ก๋ ๋๊น์ง ์ฌ๋กฏ์ ์ ์งํฉ๋๋ค.
Docker ์์ฑ admission์๋ 45์ด์ ์์ฐ์ ์ ์ฉํฉ๋๋ค. ์ดํ ์ค์ ๋ณต์ฌยท์์ยท์ฃผ์ ํ์ธ์ ์๋ก ์์ํ๋ 45์ด ์์ฐ์ ๊ณต์ ํฉ๋๋ค. ์๋ ์์ฒญ์ deadline์ด ๋ ์งง์ผ๋ฉด ๋ ๋จ๊ณ ๋ชจ๋ ์ด๋ฅผ ๋ฐ๋ฆ
๋๋ค. admission ๋์ค ์ทจ์๋ ๋ฆ๊ฒ ์์ฑ๋ ์ปจํ
์ด๋๋ฅผ ์ ๋ฆฌํ ์ ์๋๋ก ์ ํ ์๊ฐ ์์์ ์์ฑ ๊ฒฐ๊ณผ๋ฅผ ํ๋ณดํ ๋๊น์ง ๋ณด๋ฅํ๋ฉฐ, ์์ ๋จ๊ณ๋ ์ฆ์ ์ทจ์ํ ์ ์์ต๋๋ค. internal/agent/docker.go๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค. ํผ์กํ ์๋ฒ์์ ์ด ์ ํ์ ๋ฐ๋ณตํด์ ์ด๊ณผํ๋ฉด join parallelism๊ณผ capacity๋ฅผ ๋ฎ์ถ๊ณ ๋์คํฌยท๋ฐ๋ชฌ ๋ถํ๋ฅผ ์ ๊ฒํ์ญ์์ค.
์ ์ฒด ์ฉ๋์ ๋๋ฆฌ๊ธฐ ์ ์ overlay์ ๋ฐฐํฌ ์ ์ฝ์ ํ์ธํ์ญ์์ค. ์ค๋น ์ํยท์ ๋ฆฌ ํยทํ๋ก์ธ์ค ๋ถํ๋ ๋ชจ๋ํฐ๋ง, ์ฌํ ๊ฐ๋ฅํ ๊ฐ๋ฐ ๋ฒค์น๋งํฌ๋ ์ฑ๋ฅ ์กฐ์ฌ๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.