【问题标题】:Service Fabric Container API not loading on endpointService Fabric Container API 未在端点上加载
【发布时间】:2019-02-07 04:40:18
【问题描述】:
- 在 VS2017 中创建一个新的 Web 应用程序
- 右键单击Web应用程序->添加->容器编排支持->Service Fabric
- 在本地运行 (F5)(成功),在
http://machinename:<port in manifest> 上加载
- 发布到 Azure SF 集群 + 容器注册表
- 此 URL 应加载
http://<azurecluster>:<port in manifest>
但它没有加载。
群集中加载的唯一内容是 Service Fabric Explorer,它显示应用程序运行无误。
我做错什么了吗?
我认为这与错误的端口有关。
通过模板自己添加容器时(如下图),这些是选项:
- 主机端口和容器端口。这些是否正确映射在
容器编排支持(上面的第 2 步)?
- 在主机端口帮助图标中,它说端口可能需要打开
负载均衡器。我需要在上面的步骤中做这些事情吗?
- 此外,仅提供集装箱端口
在步骤 #2 中配置 (applicationManifest.xml)。那么主机端口呢?
- 容器端口如何映射到应用端口?
- 为什么我们不必在本地进行(如果这是问题所在)?
【问题讨论】:
标签:
containers
azure-service-fabric
【解决方案1】:
服务在清单中指定容器端口:
<Resources>
<Endpoints>
<Endpoint Name="Guest1TypeEndpoint" UriScheme="http" Port="8081" Protocol="http"/>
</Endpoints>
</Resources>
应用程序在清单中指定主机端口:
<Policies>
<ContainerHostPolicies CodePackageRef="Code">
<PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
</ContainerHostPolicies>
</Policies>
在本例中,容器端口 8081 映射到主机端口 80。
更多信息here。
您还需要配置Azure Load Balancer 规则和探测,以将流量(在端口 80 上)转发到集群。
之后,您应该会看到它正常工作。
【讨论】:
-
@loakD 所以最终的 url 将是 http://:80 或 http://:8081 ?
-