k3s网络架构

k3s网络架构
Sakisaki Lv1

最近玩k3s做的网络架构,留个纪念

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
公网环境:
┌─────────────────────────┐
│ 公网服务器端 │
└─────────────────────────┘
│ Wireguard隧道
│ 10.7.0.1 ←→ 10.7.0.2/3/4/...

内网环境:
┌─────────────────────────┐
│ ┌─ Base:192.168.0.x │
│ ├─ Pod:10.42.0.0/1 │
│ ├─ Service:10.43.0.0/16 │
│ └─ MetalLB:192.168.0.50+│
│ │
│ ┌─────┬─────┬─────┐ │
│ │Node1│Node2│Node3│ │
│ │.10 │.11 │.12 │ │
│ └─────┴─────┴─────┘ │
└─────────────────────────┘

│ Headscale/Tailscale
│ 100.64.0.x
┌─────────────────────────┐
│ 内网设备访问 │
└─────────────────────────┘

网络分段:
├── 100.64.0.0/24 # Headscale/Tailscale 网段
├── 10.7.0.0/24 # Wireguard 网段
├── 192.168.0.0/24 # K3s 本地网段
├── 192.168.20.0/24 # MetalLB LoadBalancer 池(还没做)
├── 10.42.0.0/16 # K3s Pod CIDR (默认)
└── 10.43.0.0/16 # K3s Service CIDR (默认)

# 内网段 headscale | LoadBalancer
> 参考 test/test-external-dns.yaml
[headscale客户端 100.64.0.5] https://grafana.hk3s.loc
↓ DNS查询 grafana.hk3s.loc
[PowerDNS Recursor 100.64.0.1:53]
↓ 转发到权威DNS
[PowerDNS Authoritative 127.0.0.1:53] #TOOD
↓ 返回 100.64.0.1
[headscale客户端]
↓ HTTP请求 https://grafana.hk3s.loc -> 100.64.0.1:443
[Caddy 100.64.0.1:443]
↓ 代理到 grafana.k3s.loc
[PowerDNS Authoritative 100.64.0.1:5353]
↓ 返回 192.168.0.X
[LoadBalancer _(MetalLB)_ 192.168.0.X] #TODO
↓ 路由到Grafana Pod
[Grafana Pod]

# 公网段 wireguard | NodePort (未实现)
> 参考 test/test-2service.yaml
[用户] https://grafana.yourdomain.com
↓ DNS解析到公网IP
[公网服务器]
├── 请求1 → Wireguard隧道 10.7.0.1→10.7.0.2 → 192.168.0.10:30080
├── 请求2 → Wireguard隧道 10.7.0.1→10.7.0.3 → 192.168.0.11:30080
├── 请求3 → Wireguard隧道 10.7.0.1→10.7.0.4 → 192.168.0.12:30080
└── 请求4 → Wireguard隧道 10.7.0.1→10.7.0.5 → 192.168.0.13:30080
↓ Caddy 负载均衡
[Wireguard server 10.7.0.1]
↓ Wireguard隧道
[Grafana Pod 10.42.1.15:3000]
评论
目录
k3s网络架构