티스토리 뷰
실제 경험과 인사이트를 AI와 함께 정리한 글
Oracle Cloud + Tailscale + Kubernetes 완벽 가이드(3)
pak2251 2025. 10. 26. 19:262단계: Tailscale 메시 네트워크 구성
시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드
← 이전: 1단계: Oracle Cloud 준비 | 다음: 3단계: Kubernetes + Cilium 구축 →
서로 다른 Oracle Cloud 계정의 인스턴스를 하나의 네트워크로 연결
📋 이 단계에서 할 일
- Tailscale 설치 및 최적화
- Tailscale 공용 서버 또는 Headscale 연결
- 노드 간 연결 확인
- MTU 최적화
🌐 Tailscale이란?
- WireGuard 기반 메시 VPN
- NAT 통과: 복잡한 네트워크 환경에서도 연결
- 자동 키 관리: 수동 설정 불필요
- 100.64.0.0/10 대역 자동 할당
🚀 빠른 시작 (Tailscale 공용 서버)
가장 간단한 방법은 Tailscale 공식 서버를 사용하는 것입니다.
1. Tailscale 설치
모든 노드에서 실행:
# Tailscale 설치
curl -fsSL https://tailscale.com/install.sh | sh
# 서비스 활성화
sudo systemctl enable --now tailscaled2. Tailscale 연결
# Tailscale 연결 (인터랙티브 인증)
sudo tailscale up
# 브라우저에서 인증 URL 열어서 로그인
# Google, Microsoft, GitHub 계정 사용 가능3. 연결 확인
# 자신의 Tailscale IP 확인
tailscale ip -4
# 100.64.x.x
# 연결된 노드 목록
tailscale status
# 다른 노드 ping
tailscale ping <다른_노드_IP>🏠 자체 호스팅 (Headscale 서버)
완전한 통제권을 원한다면 Headscale을 사용하세요.
→ 02-setup-headscale-server.md 참고
Headscale 사전 준비
Headscale 서버가 이미 구축되어 있다면:
- 사전 인증 키 생성 (Headscale 서버에서)
sudo headscale users create k8s sudo headscale --user k8s preauthkeys create --reusable --expiration 2160h- 연결 정보 확인
- Server URL:
https://headscale.yourdomain.com:20443 - Auth Key: 위에서 생성한 키
- Server URL:
Headscale 연결
각 노드에서 실행:
# 노드 이름 설정
NODENAME="master-01" # 각 노드별로 변경
# Headscale 서버 연결
sudo tailscale up \
--login-server=https://headscale.yourdomain.com:20443 \
--authkey=<YOUR_PREAUTHKEY> \
--hostname=$NODENAME \
--accept-routes \
--accept-dns=false
# 연결 확인
tailscale status⚙️ 네트워크 최적화
참고: IP 포워딩과 커널 파라미터는 1단계에서 이미 설정했습니다.
1. 네트워크 성능 최적화 (Tailscale 전용)
Oracle Cloud 환경에서 Tailscale 최적 성능을 위한 설정:
# 기본 네트워크 인터페이스 찾기
NETDEV=$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")
# UDP 성능 최적화 (Tailscale WireGuard용)
sudo ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list off 2>/dev/null || true
echo "Network device $NETDEV optimized for Tailscale"2. MTU 확인
Tailscale + VXLAN 환경을 위한 MTU 최적화:
# Tailscale 인터페이스 MTU 확인
ip link show tailscale0
# 기본값: 1280
# 필요시 MTU 조정 (권장하지 않음)
# sudo ip link set dev tailscale0 mtu 1280🔍 연결 검증
1. 기본 연결 테스트
# 모든 노드 상태 확인
tailscale status
# 출력 예시:
# 100.64.0.1 master-01 k8s@ linux active
# 100.64.0.2 worker-01 k8s@ linux active
# 100.64.0.3 worker-02 k8s@ linux active2. 네트워크 품질 확인
# 네트워크 진단
tailscale netcheck
# 다른 노드로 ping (Tailscale 내장)
tailscale ping 100.64.0.1
# pong from master-01 (100.64.0.1) via DERP(sin) in 45ms
# 일반 ping 테스트
ping -c 3 100.64.0.13. 포트 연결 테스트
# nc (netcat) 테스트
nc -zv 100.64.0.1 22 # SSH
nc -zv 100.64.0.1 6443 # Kubernetes API (나중에)🛡️ 방화벽 설정
Oracle Linux (firewalld)
# Tailscale 인터페이스를 trusted zone에 추가
sudo firewall-cmd --permanent --zone=trusted --add-interface=tailscale0
# 필요한 포트 열기 (Kubernetes용)
sudo firewall-cmd --permanent --add-port=6443/tcp
sudo firewall-cmd --permanent --add-port=10250/tcp
sudo firewall-cmd --permanent --add-port=8472/udp # VXLAN
# 설정 적용
sudo firewall-cmd --reloadUbuntu (ufw)
# Tailscale 트래픽 허용
sudo ufw allow in on tailscale0
# 필요한 포트 열기
sudo ufw allow 6443/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 8472/udp
# 적용
sudo ufw reload📋 체크리스트
각 노드에서 확인:
- Tailscale 설치 완료
- Tailscale 연결 성공
- 100.64.x.x IP 할당 확인
- 다른 노드와 ping 통신 성공
- IP 포워딩 활성화
- 방화벽 규칙 설정
🎯 예상 결과
성공적으로 구성된 경우:
$ tailscale status
100.64.0.1 master-01 k8s@ linux active
100.64.0.2 worker-01 k8s@ linux active
100.64.0.3 worker-02 k8s@ linux active
$ tailscale ping 100.64.0.2
pong from worker-01 (100.64.0.2) via DERP(sin) in 25ms⚠️ 일반적인 문제
"no matching peer" 에러
- 노드가 아직 연결되지 않음
tailscale status로 상태 확인sudo systemctl restart tailscaled시도
높은 지연시간
- DERP 릴레이 서버 경유 중
- 직접 연결 대기 (1-2분 소요)
tailscale netcheck로 연결 상태 확인
방화벽 차단
- Oracle Cloud Security List 확인
- UDP 41641 포트 열려있는지 확인
- OS 레벨 방화벽 규칙 확인
🔄 다음 단계
Tailscale 네트워크가 구성되면:
- Headscale 자체 호스팅 (선택): 02-setup-headscale-server.md
- Kubernetes 설치 진행: 03-setup-kubernetes-cilium.md
💡 추가 팁
Tailscale vs Headscale 선택 기준
| 항목 | Tailscale 공용 | Headscale 자체 호스팅 |
|---|---|---|
| 설정 난이도 | 매우 쉬움 | 중간 |
| 무료 노드 수 | 20개 | 무제한 |
| 제어권 | 제한적 | 완전한 통제 |
| 인증 방법 | OAuth (Google 등) | 사전 인증 키 |
| 추천 대상 | 빠른 테스트, 소규모 | 프로덕션, 대규모 |
성능 최적화 팁
- 직접 연결 확인
tailscale status | grep "direct"- DERP 서버 우회
- 시간이 지나면 자동으로 직접 연결
- 방화벽 규칙 재확인
- Exit Node 설정 (선택)
# 특정 노드를 Exit Node로 설정 sudo tailscale up --advertise-exit-node
다음 문서: Kubernetes + Cilium 클러스터 구축
'실제 경험과 인사이트를 AI와 함께 정리한 글' 카테고리의 다른 글
| Oracle Cloud + Tailscale + Kubernetes 완벽 가이드(5) (0) | 2025.10.26 |
|---|---|
| Oracle Cloud + Tailscale + Kubernetes 완벽 가이드(4) (0) | 2025.10.26 |
| Oracle Cloud + Tailscale + Kubernetes 완벽 가이드(2) (0) | 2025.10.26 |
| Oracle Cloud + Tailscale + Kubernetes 완벽 가이드(1) (0) | 2025.10.26 |
| Oracle Cloud + Tailscale + Kubernetes 완벽 가이드(0) (0) | 2025.10.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Next.js
- AI Development
- LangChain
- 개발 도구
- Claude
- claude code
- authentication
- frontend
- Kubernetes
- react
- Rag
- Ontology
- troubleshooting
- backend
- knowledge graph
- SHACL
- workflow
- PYTHON
- api gateway
- AI
- ai 개발 도구
- architecture
- Go
- security
- AI agent
- Tailwind CSS
- LLM
- Tax Analysis
- authorization
- Developer Tools
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함
