Files
k3s/005-docs/notes/biji.md
2026-02-05 00:11:05 +08:00

25 KiB
Raw Blame History

k3s集群部署完成!

📊 部署总结

集群状态

  • k3s版本: v1.34.3+k3s1
  • 节点状态: Ready (control-plane)
  • 运行中的Pods: 35个
  • 存储系统: Longhorn (分布式存储)
  • 证书管理: cert-manager + Let's Encrypt

🚀 已部署的服务

所有服务都已实现无状态化部署,数据和存储完全解耦:
┌─────────────────┬───────────────────────────────┬────────────┬─────────────┬─────────────────┐
│ 服务 │ 域名 │ 状态 │ 存储 │ HTTPS │
├─────────────────┼───────────────────────────────┼────────────┼─────────────┼─────────────────┤
│ WordPress博客 │ https://blog.u6.net3w.com Running │ 2Gi (MySQL) │
├─────────────────┼───────────────────────────────┼────────────┼─────────────┼─────────────────┤
│ Docker Registry │ https://registry.u6.net3w.com Running │ 20Gi │ (证书申请中) │
├─────────────────┼───────────────────────────────┼────────────┼─────────────┼─────────────────┤
│ n8n工作流 │ https://n8n.u6.net3w.com Running │ 5Gi │
├─────────────────┼───────────────────────────────┼────────────┼─────────────┼─────────────────┤
│ Gitea代码仓库 │ https://git.u6.net3w.com Running │ 10Gi │
├─────────────────┼───────────────────────────────┼────────────┼─────────────┼─────────────────┤
│ Uptime Kuma监控 │ https://status.u6.net3w.com Running │ 2Gi │
├─────────────────┼───────────────────────────────┼────────────┼─────────────┼─────────────────┤
│ 导航页 │ https://nav.u6.net3w.com Running │ - │
└─────────────────┴───────────────────────────────┴────────────┴─────────────┴─────────────────┘
💾 存储配置

所有数据都使用Longhorn持久化存储,实现了容器与数据的完全解耦:

  • MySQL数据库: 2Gi独立存储卷
  • Docker镜像仓库: 20Gi独立存储卷
  • Gitea代码仓库: 10Gi独立存储卷
  • n8n工作流数据: 5Gi独立存储卷
  • Uptime Kuma监控数据: 2Gi独立存储卷

🔐 安全配置

  • 自动HTTPS证书(Let's Encrypt)
  • Traefik Ingress Controller
  • Docker Registry认证(用户名: admin, 密码: 123456)

📝 常用命令

查看所有服务

kubectl get pods -A

查看存储卷

kubectl get pvc -A

查看域名和证书

kubectl get ingress -A
kubectl get certificate -A

查看Longhorn UI (可选)

kubectl get svc -n longhorn-system

⚠️ 注意事项

  1. Registry证书: registry.u6.net3w.com的SSL证书还在申请中,稍等几分钟会自动完成
  2. DNS解析: 确保所有*.u6.net3w.com子域名都已正确解析到 134.195.210.237
  3. 数据持久化: 所有数据都存储在Longhorn卷中,容器重启不会丢失数据

所有服务已成功实现无状态化部署,可以随时重启、扩容或迁移! 🎊

部署完成!

Registry 账号密码

  • 用户名: admin
  • 密码: 123456

Web 界面访问地址

🌐 https://registry-ui.u6.net3w.com

部署状态

  • Registry UI Pod 运行中
  • Service 已创建
  • Ingress 已配置
  • SSL 证书已自动签发Let's Encrypt

使用说明

  1. 访问 Web 界面
    - 打开浏览器访问: https://registry-ui.u6.net3w.com
    - 现在可以看到漂亮的 Web 界面,不再是空白页面
  2. 浏览镜像
    - UI 会自动连接到您的 Registry
    - 可以查看所有已推送的镜像
    - 支持搜索和过滤功能
  3. Docker 命令使用

登录 Registry

docker login registry.u6.net3w.com

用户名: admin

密码: 123456

推送镜像

docker tag my-image:latest registry.u6.net3w.com/my-image:latest
docker push registry.u6.net3w.com/my-image:latest

拉取镜像

docker pull registry.u6.net3w.com/my-image:latest

配置文件位置

  • Registry 配置: /home/fei/k3s/k3s/registry/registry-stack.yaml
  • UI 配置: /home/fei/k3s/k3s/registry/registry-ui.yaml
  • 密码文件: /home/fei/k3s/k3s/registry/hardcode-secret.yaml

现在您可以通过 Web 界面方便地管理 Docker 镜像了!

认证已经成功!

我刚才测试了 docker login登录成功了

docker login registry.u6.net3w.com --username admin --password
123456

输出: Login Succeeded

可能的问题原因

您遇到 401 错误可能是因为:

  1. 密码输入错误 - 在交互式输入时可能有隐藏字符或空格
  2. Docker 缓存 - 可能缓存了旧的错误认证信息

解决方案

请尝试以下方法:

方法 1清除旧的认证信息后重试

先登出

sudo docker logout registry.u6.net3w.com

再登录

sudo docker login registry.u6.net3w.com

Username: admin

Password: 123456

方法 2使用命令行参数推荐
echo "123456" | sudo docker login registry.u6.net3w.com --username
admin --password-stdin

方法 3直接使用密码参数
sudo docker login registry.u6.net3w.com --username admin --password 123456

验证登录成功后

登录成功后,您可以:

测试推送镜像

sudo docker tag nginx:latest registry.u6.net3w.com/nginx:test
sudo docker push registry.u6.net3w.com/nginx:test

查看 Web UI

访问: https://registry-ui.u6.net3w.com

请尝试上述方法之一,应该就能成功登录了!如果还有问题,请告诉我具体的 错误信息。

✻ Crunched for 1m 17s

● Background command "Monitor registry logs in real-time" completed
(exit code 0)

● 我看到后台日志监控任务已完成。让我读取完整的日志输出。

● Read agent output bb664e0
⎿ Read 16 lines

● 完美!从日志中我可以看到 Docker 登录已经成功了!

日志分析

查看日志的第 35-39 行,显示了完整的 Docker 登录流程:

  1. 第一次请求401
    "GET /v2/" HTTP/1.1" 401 87 "" "Docker-Client/28.2.2 (linux)"
  2. Docker 客户端先发送不带认证的请求,收到 401 要求认证
  3. 第二次请求200 成功):
    level=info msg="authorized request" ... "Docker-Client/28.2.2
    (linux)"
    "GET /v2/" HTTP/1.1" 200 2 "" "Docker-Client/28.2.2 (linux)"
  4. Docker 客户端发送带认证的请求,认证成功!

总结

问题已解决

  • Registry 认证配置正确
  • 账号密码admin / 123456
  • Docker 登录测试成功

您现在可以使用的服务

  1. Docker Registry API
    sudo docker login registry.u6.net3w.com

Username: admin

Password: 123456

  1. Web UI 界面
    - 访问:https://registry-ui.u6.net3w.com
    - 可视化管理您的镜像

使用示例

推送镜像

sudo docker tag my-app:latest registry.u6.net3w.com/my-app:latest
sudo docker push registry.u6.net3w.com/my-app:latest

拉取镜像

sudo docker pull registry.u6.net3w.com/my-app:latest

如果您之前遇到的 401 错误还在,请尝试我之前建议的方法(先 logout 再 login或使用 --password-stdin。Registry 本身已经完全正常工作了!