我应使用哪个匹配程序来服务,该服务应托管在本地Service Fabric群集的localhost {port}上

时间:2018-09-01 21:01:54

标签: traefik azure-service-fabric

我对Service Fabric和Traefik有疑问。

我已经成功地将Traefik应用程序部署到本地群集(并且实际上也部署在我自己的Azure Infra中)。这是我试图将Traefik(RP)放在另一个应用程序中的服务(MyService)旁边。

我可以看到Traefik仪表板,也可以看到一个后端(貌似表明它已成功为我的应用程序和服务正确调用了SF管理API)。

我还可以看到一个附带的前端,其中包含一些路由规则(匹配器)。但是,对于我一生来说,我无法通过RP向我的服务提出简单的要求。

我可以直接打我的服务。 Service Fabric(SF)表示它也处于良好状态。

我的本​​地SF群集不受保护,因此可以通过设置.toml等简化操作。

我的服务也托管在localhost:9025上(端点在服务清单和端口设置(API中的Kestrel)中公开)相同。

Traefik在端口5000上设置(而不是80,请参见下文)。

要明确进行简单的版本检查,我将使用http://localhost:9025/myservice/myaction/v1/version

http://localhost:5000/myservice/myaction/v1/version会使我得到404或503(取决于我对匹配器/修饰符的处理方式)。

我也将Traefik端点也从端口80修改为5000,只是为了将其切换并避免任何端口冲突。 (我现在没有IIS站点。)Netstat确认也没有使用其他端口。

服务清单中的匹配器如下:

             <Extensions>
                <Extension Name="Traefik">
                    <Labels xmlns="http://schemas.microsoft.com/2015/03/fabact-no-schema">
                        <Label Key="traefik.frontend.rule">PathPrefix:/myservice</Label>
                        <Label Key="traefik.enable">true</Label>
                    </Labels>
                </Extension>
```            </Extensions>

One last thing, I guess, that would have really helped would be the ability to see the "resolved" requests.  That is a request that comes into the RP, and then is matched or modified so that I can see what the RP actually reconciles a request out too. Perhaps this already exists, but tweaking of various logging didn't yield this info.

1 个答案:

答案 0 :(得分:0)

好吧, 因此,与Traefik有关的Service Manifest并没有错,而是Traefik无法理解的端点暴露在Manifest中。

这行不通:

<Endpoint Name="MyService" Protocol="http" Type="Input" Port="9025" />

但是,这将:

<Endpoint Name="MyService" UriScheme="http" Port="9025" />

(我遗漏的其他属性仍然可以添加,但这似乎是Traefik枚举它作为可行后端所需的最低要求)

Traefik日志中(以前不存在)显示了明确的接线指示

Wiring frontend frontend-fabric:/MyApp/MyService to entryPoint http

然后,在用户界面中,对于后端,再次显示服务器URI,

请原谅我这是在某处记录的文档,但是除了基于服务结构和Traefik的已设置网站上的屏幕截图,我没有想到没有看到服务器URI以外,我找不到其他任何东西。

另一个症状是,如果未正确接线,则后端将显示为红色,如果配置正确,则将显示为绿色。

正如我所说,所有这些都很明显,但是我在需要进行的这一简单修改上浪费了很多时间。