티스토리 뷰

2단계: Tailscale 메시 네트워크 구성

시리즈: Oracle Cloud + Tailscale + Kubernetes 완벽 가이드
이전: 1단계: Oracle Cloud 준비 | 다음: 3단계: Kubernetes + Cilium 구축


서로 다른 Oracle Cloud 계정의 인스턴스를 하나의 네트워크로 연결

📋 이 단계에서 할 일

  1. Tailscale 설치 및 최적화
  2. Tailscale 공용 서버 또는 Headscale 연결
  3. 노드 간 연결 확인
  4. 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 tailscaled

2. 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 서버가 이미 구축되어 있다면:

  1. 사전 인증 키 생성 (Headscale 서버에서)
  2. sudo headscale users create k8s sudo headscale --user k8s preauthkeys create --reusable --expiration 2160h
  3. 연결 정보 확인
    • Server URL: https://headscale.yourdomain.com:20443
    • Auth Key: 위에서 생성한 키

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   active

2. 네트워크 품질 확인

# 네트워크 진단
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.1

3. 포트 연결 테스트

# 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 --reload

Ubuntu (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 네트워크가 구성되면:

💡 추가 팁

Tailscale vs Headscale 선택 기준

항목 Tailscale 공용 Headscale 자체 호스팅
설정 난이도 매우 쉬움 중간
무료 노드 수 20개 무제한
제어권 제한적 완전한 통제
인증 방법 OAuth (Google 등) 사전 인증 키
추천 대상 빠른 테스트, 소규모 프로덕션, 대규모

성능 최적화 팁

  1. 직접 연결 확인
  2. tailscale status | grep "direct"
  3. DERP 서버 우회
    • 시간이 지나면 자동으로 직접 연결
    • 방화벽 규칙 재확인
  4. Exit Node 설정 (선택)
  5. # 특정 노드를 Exit Node로 설정 sudo tailscale up --advertise-exit-node

다음 문서: Kubernetes + Cilium 클러스터 구축

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
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
글 보관함