6.5 KiB
6.5 KiB
域名绑定配置总结
配置完成时间
2026-01-30
域名配置
所有服务已绑定到 *.u9.net3w.com 子域名,通过 Caddy 作为前端反向代理。
已配置的子域名
| 服务 | 域名 | 后端服务 | 命名空间 |
|---|---|---|---|
| Longhorn UI | https://longhorn.u9.net3w.com | longhorn-frontend:80 | longhorn-system |
| Grafana | https://grafana.u9.net3w.com | kube-prometheus-stack-grafana:80 | monitoring |
| Prometheus | https://prometheus.u9.net3w.com | kube-prometheus-stack-prometheus:9090 | monitoring |
| Alertmanager | https://alertmanager.u9.net3w.com | kube-prometheus-stack-alertmanager:9093 | monitoring |
| MinIO S3 API | https://s3.u6.net3w.com | minio:9000 | minio |
| MinIO Console | https://console.s3.u6.net3w.com | minio:9001 | minio |
架构说明
Internet (*.u9.net3w.com)
↓
Caddy (前端反向代理, 80/443)
↓
Traefik Ingress Controller
↓
Kubernetes Services
流量路径
- 外部请求 → DNS 解析到服务器 IP
- Caddy (端口 80/443) → 接收请求,自动申请 Let's Encrypt SSL 证书
- Traefik → Caddy 转发到 Traefik Ingress Controller
- Kubernetes Service → Traefik 根据 Ingress 规则路由到对应服务
Caddy 配置
配置文件位置: /home/fei/k3s/009-基础设施/005-ingress/Caddyfile
{
email admin@u6.net3w.com
}
# Longhorn 存储管理
longhorn.u9.net3w.com {
reverse_proxy traefik.kube-system.svc.cluster.local:80
}
# Grafana 监控仪表板
grafana.u9.net3w.com {
reverse_proxy traefik.kube-system.svc.cluster.local:80
}
# Prometheus 监控
prometheus.u9.net3w.com {
reverse_proxy traefik.kube-system.svc.cluster.local:80
}
# Alertmanager 告警管理
alertmanager.u9.net3w.com {
reverse_proxy traefik.kube-system.svc.cluster.local:80
}
Ingress 配置
Longhorn Ingress
- 文件:
/home/fei/k3s/009-基础设施/005-ingress/longhorn-ingress.yaml - Host:
longhorn.u9.net3w.com
监控系统 Ingress
- 文件:
/home/fei/k3s/009-基础设施/006-monitoring/ingress.yaml - Hosts:
grafana.u9.net3w.comprometheus.u9.net3w.comalertmanager.u9.net3w.com
SSL/TLS 证书
Caddy 会自动为所有配置的域名申请和续期 Let's Encrypt SSL 证书。
- 证书存储: Caddy Pod 的
/data目录 - 自动续期: Caddy 自动管理
- 邮箱: admin@u6.net3w.com
访问地址
监控和管理
- Longhorn 存储管理: https://longhorn.u9.net3w.com
- Grafana 监控: https://grafana.u9.net3w.com
- 用户名:
admin - 密码:
prom-operator
- 用户名:
- Prometheus: https://prometheus.u9.net3w.com
- Alertmanager: https://alertmanager.u9.net3w.com
对象存储
- MinIO S3 API: https://s3.u6.net3w.com
- MinIO Console: https://console.s3.u6.net3w.com
DNS 配置
确保以下 DNS 记录已配置(A 记录或 CNAME):
*.u9.net3w.com → <服务器IP>
或者单独配置每个子域名:
longhorn.u9.net3w.com → <服务器IP>
grafana.u9.net3w.com → <服务器IP>
prometheus.u9.net3w.com → <服务器IP>
alertmanager.u9.net3w.com → <服务器IP>
验证配置
检查 Caddy 状态
kubectl get pods -n default -l app=caddy
kubectl logs -n default -l app=caddy -f
检查 Ingress 状态
kubectl get ingress -A
测试域名访问
curl -I https://longhorn.u9.net3w.com
curl -I https://grafana.u9.net3w.com
curl -I https://prometheus.u9.net3w.com
curl -I https://alertmanager.u9.net3w.com
添加新服务
如果需要添加新的服务到 u9.net3w.com 域名:
1. 更新 Caddyfile
编辑 /home/fei/k3s/009-基础设施/005-ingress/Caddyfile,添加:
newservice.u9.net3w.com {
reverse_proxy traefik.kube-system.svc.cluster.local:80
}
2. 更新 Caddy ConfigMap
kubectl create configmap caddy-config \
--from-file=Caddyfile=/home/fei/k3s/009-基础设施/005-ingress/Caddyfile \
-n default --dry-run=client -o yaml | kubectl apply -f -
3. 重启 Caddy
kubectl rollout restart deployment caddy -n default
4. 创建 Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: newservice-ingress
namespace: your-namespace
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: newservice.u9.net3w.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: your-service
port:
number: 80
5. 应用 Ingress
kubectl apply -f newservice-ingress.yaml
故障排查
Caddy 无法启动
# 查看 Caddy 日志
kubectl logs -n default -l app=caddy
# 检查 ConfigMap
kubectl get configmap caddy-config -n default -o yaml
域名无法访问
# 检查 Ingress
kubectl describe ingress <ingress-name> -n <namespace>
# 检查 Traefik
kubectl logs -n kube-system -l app.kubernetes.io/name=traefik
# 测试内部连接
kubectl run test --rm -it --image=curlimages/curl -- curl -v http://traefik.kube-system.svc.cluster.local:80
SSL 证书问题
# 查看 Caddy 证书状态
kubectl exec -n default -it <caddy-pod> -- ls -la /data/caddy/certificates/
# 强制重新申请证书
kubectl rollout restart deployment caddy -n default
安全建议
- 启用基本认证: 为敏感服务(如 Prometheus、Alertmanager)添加认证
- IP 白名单: 限制管理界面的访问 IP
- 定期更新: 保持 Caddy 和 Traefik 版本更新
- 监控日志: 定期检查访问日志,发现异常访问
维护命令
# 更新 Caddy 配置
kubectl create configmap caddy-config \
--from-file=Caddyfile=/home/fei/k3s/009-基础设施/005-ingress/Caddyfile \
-n default --dry-run=client -o yaml | kubectl apply -f -
kubectl rollout restart deployment caddy -n default
# 查看所有 Ingress
kubectl get ingress -A
# 查看 Caddy 日志
kubectl logs -n default -l app=caddy -f
# 查看 Traefik 日志
kubectl logs -n kube-system -l app.kubernetes.io/name=traefik -f
备份
重要配置文件已保存在:
- Caddyfile:
/home/fei/k3s/009-基础设施/005-ingress/Caddyfile - Longhorn Ingress:
/home/fei/k3s/009-基础设施/005-ingress/longhorn-ingress.yaml - 监控 Ingress:
/home/fei/k3s/009-基础设施/006-monitoring/ingress.yaml
建议定期备份这些配置文件。
*配置完成!所有服务现在可以通过 .u9.net3w.com 域名访问。 🎉