这个项目能做什么
fingerjoin 在 Kubernetes 中充当 WebFinger 聚合代理,使多个 fediverse 应用(例如 Mastodon)能够共享单个域名。它处理发送至 '/.well-known/webfinger' 的请求,将查询转发给所有注册的后端——这些后端通过带有 'fingerjoin.naktis.eu/webfinger: "true"' 标注的 Gateway API HTTPRoute 资源进行识别——并合并它们的 JSON Resource Descriptor (JRD) 响应。后端服务通过 HTTPRoute backendRefs 解析为集群内 FQDN。请求并发发送(最大 10 个在途请求,5 秒超时),响应正文上限为 256 KiB。合并过程优先考虑高优先级后端:保留第一个 subject,属性使用每个键的第一个值,别名进行合并并去重,链接则根据 (rel, href) 进行去重。它遵循 RFC 7033 状态码:200(至少一个成功)、404(所有后端均未知)、410(资源永久消失)、502(后端失败且无成功响应)以及 503(未注册任何后端)。其他端点包括 '/healthz'(存活检查)和 '/readyz'(就绪检查)。该工具通过 Helm chart 部署,需要集群范围的权限以监听 HTTPRoute 资源。
评论
0 评分人数达到10人后显示
登录后参与讨论。