type
status
date
slug
summary
tags
category
icon
password

📝 Sablier

一个免费的开源软件,可以按需启动工作负载,并在一段时间不活动后停止工作负载。
notion image

Scale-to-Zero

在操作仅偶尔使用的 Web 应用程序或服务时,仅在有特定需求时启动它们会很有用。在 Docker 容器中,此类用例存在“Scale-to-Zero”的概念,这意味着将工作负载缩减到零。
对于与反向代理结合使用的 HTTP 服务,Sablier提供了一种在您自己的基础架构中实现 Scale-to-Zero的简单方法。

Sablier 和 Traefik

由于Sablier被设计为可单独使用的API,因此反向代理集成可充当该API的客户端。
它利用对插件集成的API调用来捕获对Sablier的动态请求。
notion image
目前支持的反向代理有Traefik、NginxCaddy。
反向代理
Docker
Swarm
Kubernetes
Podman
notion image

💿 开始

😀
本文使用的反向代理工具为Traefik,以日志查看器Dozzle为例进行演示。

准备容器

部署服务容器和Sablier, 服务容器在本文中以Dozzle为例,也可以使用其他服务。

Dozzle

在UnRAID中:
notion image
添加标签: sablier.enable: true sablier.group: dozzle
notion image
如果已部署有Authelia,还可以添加环境变量Authentication:forward-proxy
使用CLI:

Sablier

在UnRAID中:
在应用中搜索Sablier,然后单击从DockerHub获取更多结果找到acouvreur/sablier
添加环境变量PROVIDER_NAME:docker
添加路径/var/run/docker.sock:/var/run/docker.sock
notion image
使用CLI:

🛠️ 配置

安装插件Sablier到Traefik

在Traefik.yml中
在fileConfig.yml中
需注意的配置项:
dynamic: 提供一个等待页面。blocking则会挂起请求,直到服务准备好。
theme: 等待页面的主题样式,内置有4个,点此在文末查看。也支持自己编写主题样式。
names: 服务容器的名称
sessionDuration: 会话持续时间后关闭容器/服务/部署实例,实际使用需设置久一点。
⚠️
如果(在初始 HTTP 请求之后)只有通过 websocket 通道的流量活动,则这不被视为活动。在配置的超时之后,服务将关闭。Issue #21
💡
如果有第二组应用,可以添加第二组middlewares: sablier-APP,并链接到路由。

注册服务

⚠️
注意
在此处插件需要在Traefik动态配置文件中配置,如果直接给容器添加标签(例如在dozzle模板WebUI中添加traefik.http.routers.dozzle.middlewares=sablier-dozzle),在容器关闭后标签也会失效。

🤗 测试

1.访问Dozzle网址,如https://dozzle.example.com。
2.进入Sablier等待页面。
notion image
3.服务启动完成后跳转至Dozzle主页。
4.无活动1分钟后Dozzle自动关闭。

📚 附录

Themes

ghost
ghost
hacker-terminal
hacker-terminal
shuffle
shuffle
matrix
matrix

📎 参考文章

终端出现意外字符的解决及UnRAID软件包管理UnRAID 自动续期SSL证书
Loading...
Biliko
Biliko
吃饱了🍚
最新发布
Docker 按需启动
2024-11-22
UnRAID 自动续期SSL证书
2024-10-12
Linux 删除文件
2024-8-5
UnRAID 安装Windows Server 2022虚拟机
2024-8-5
Traefik 篇二:前期准备
2024-8-5
Traefik 篇一:Home Server的反向代理,总体架构介绍
2024-8-5
公告
🎉祝你每天快乐!🎉