Tailscale

Tailscale์„ ํƒ€๊ณ , ArgoCD์— ์ ‘๊ทผํ•ด๋ณด๊ธฐ

  • kkumtree

2025-11-17T10:23:03+09:00

์ด์ „ ๊ฒŒ์‹œ๋ฌผ, ArgoCD with Ingress์˜ ๋„๋ฉ”์ธ ์„ค์ •์„ ํ•˜๋‹ค๊ฐ€ ๋ฌธ๋“, Tailscale์˜ serve๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ Tailscale ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ(์ดํ•˜, tailnet)์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ArgoCD ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ? ํ•˜์—ฌ ๊ตฌ์„ฑํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

tailnet diagram

kind๋ฅผ ์šด์šฉ ์ค‘์ธ Host์™€ ์ ‘์†ํ•  Client๋“ค์— Tailscale ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

1. Tailscale๊ณผ Serve

์ „ํ†ต์ ์ธ ์ค‘์•™์ง‘์ค‘์‹(Hub-Spoke) VPN์ด ์•„๋ž˜์™€ ๊ฐ™๋‹ค๋ฉด,

A traditional hub-and-spoke VPN

Tailscale์˜ ๊ฒฝ์šฐ, Mesh ๋„คํŠธ์›Œํฌ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋ฉฐ Wireguard๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

Tailscale P2P mesh network

๊ตฌ๋ถ„ ์ „ํ†ต์  ์ค‘์•™์ง‘์ค‘์‹ VPN Tailscale (๋ฉ”์‰ฌ VPN)
๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ ์ค‘์•™ ์„œ๋ฒ„๋ฅผ ํ†ตํ•œ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ ๊ฒฝ์œ โ€‹ P2P ์ง์ ‘ ์—ฐ๊ฒฐ, ๋ถ„์‚ฐํ˜• ๋ฉ”์‰ฌ ๋„คํŠธ์›Œํฌโ€‹
๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ ํด๋ผ์ด์–ธํŠธ โ†’ VPN ์„œ๋ฒ„ โ†’ ๋ชฉ์ ์ง€โ€‹ ํด๋ผ์ด์–ธํŠธ โ†’ ๋ชฉ์ ์ง€ (์ง์ ‘ ์—ฐ๊ฒฐ)โ€‹
ํ”„๋กœํ† ์ฝœ OpenVPN(TCP/UDP), IKEv2, L2TP WireGuard(UDP ๊ธฐ๋ฐ˜)
์„ฑ๋Šฅ ์ค‘์•™ ์„œ๋ฒ„ ๋ณ‘๋ชฉ ๋ฐœ์ƒ, ์ง€์—ฐ ์ฆ๊ฐ€โ€‹ ์ง์ ‘ ์—ฐ๊ฒฐ๋กœ ์ง€์—ฐ ์ตœ์†Œํ™”, ๋น ๋ฅธ ์†๋„
์„ค์ • ๋ณต์žก๋„ ์„œ๋ฒ„ ๊ตฌ์ถ•, ํฌํŠธ ํฌ์›Œ๋”ฉ ํ•„์š”โ€‹ ๋กœ๊ทธ์ธ๋งŒ์œผ๋กœ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅโ€‹
NAT ํ†ต๊ณผ ์ˆ˜๋™ ํฌํŠธ ํฌ์›Œ๋”ฉ ํ•„์š”โ€‹ ์ž๋™ NAT Traversal ์ง€์›
ํ™•์žฅ์„ฑ ์„œ๋ฒ„ ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ์ œํ•œโ€‹ ๊ฐ ๋…ธ๋“œ ๋…๋ฆฝ์ , ํ™•์žฅ ์šฉ์ด
๋ณด์•ˆ ์ค‘์•™ ์„œ๋ฒ„๊ฐ€ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ ํ™•์ธ ๊ฐ€๋Šฅโ€‹ ์ข…๋‹จ ๊ฐ„ ์•”ํ˜ธํ™”, P2P ์ „์†กโ€‹

Tailscale์˜ serve์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š”, ngrok์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๊ณผ ์œ ์‚ฌํ•œ funnel๊ณผ ๋‹ฌ๋ฆฌ
tailnet์— ์†ํ•œ ๊ธฐ๊ธฐ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

kkumtree

Source code on GitHub

ยฉ 2025 kkumtree and contributors All rights reserved.
Licensed under
CC BY-NC-ND 4.0