如何使用pulumi设置AWS Fargate的容器端口和负载平衡器?

小牛

我正在尝试使用Pulumi在AWS Fargate上部署简单的flask python应用程序。python应用程序的dockerfile从容器公开端口8000。如何使用pulumi使用负载均衡器进行设置?到目前为止,我已经使用index.ts(pulumi)尝试了以下方法:

import * as awsx from "@pulumi/awsx";

// Step 1: Create an ECS Fargate cluster.
const cluster = new awsx.ecs.Cluster("first_cluster");

// Step 2: Define the Networking for our service.
const alb = new awsx.elasticloadbalancingv2.ApplicationLoadBalancer(
    "net-lb", { external: true, securityGroups: cluster.securityGroups });
const web = alb.createListener("web", { port: 80, external: true });

// Step 3: Build and publish a Docker image to a private ECR registry.
const img = awsx.ecs.Image.fromPath("app-img", "./app");

// Step 4: Create a Fargate service task that can scale out.
const appService = new awsx.ecs.FargateService("app-svc", {
    cluster,
    taskDefinitionArgs: {
        container: {
            image: img,
            cpu: 102 /*10% of 1024*/,
            memory: 50 /*MB*/,
            portMappings: [{ containerPort: 8000, }],
        },
    },
    desiredCount: 5,
});

// Step 5: Export the Internet address for the service.
export const url = web.endpoint.hostname;

当我卷曲URL时curl http://$(pulumi stack output url),我得到:

<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body bgcolor="white">
<center><h1>503 Service Temporarily Unavailable</h1></center>
</body>
</html>

如何将负载均衡器端口映射到8000的容器端口?

米哈伊尔·希尔科夫(Mikhail Shilkov)

您可以在应用程序负载均衡器上指定目标端口:

const atg = alb.createTargetGroup(
    "app-tg", { port: 8000, deregistrationDelay: 0 });

然后,您可以简单地将侦听器传递到服务端口映射:

const appService = new awsx.ecs.FargateService("app-svc", {
    // ...
    taskDefinitionArgs: {
        container: {
            // ...
            portMappings: [web],
        },
    },
});

这是带有公共docker容器的完整复制品,因此任何人都可以从工作样本开始:

import * as awsx from "@pulumi/awsx";

const cluster = new awsx.ecs.Cluster("first_cluster");

const alb = new awsx.elasticloadbalancingv2.ApplicationLoadBalancer(
    "app-lb", { external: true, securityGroups: cluster.securityGroups });
const atg = alb.createTargetGroup(
    "app-tg", { port: 8080, deregistrationDelay: 0 });
const web = atg.createListener("web", { port: 80 });

const appService = new awsx.ecs.FargateService("app-svc", {
    cluster,
    taskDefinitionArgs: {
        container: {
            image: "gcr.io/google-samples/kubernetes-bootcamp:v1",
            portMappings: [web],
        },
    },
    desiredCount: 1,
});

export const url = web.endpoint.hostname;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TCP负载平衡器和HTTP负载平衡器之间的区别以及何时使用什么?

来自分类Dev

如何在AWS的应用程序负载平衡器(容器服务)上使用唯一的运行状况检查端口?

来自分类Dev

如何以简单的方式替换负载平衡器Docker容器而无需停机

来自分类Dev

AWS负载平衡器背后的Wordpress多站点

来自分类Dev

AWS-负载平衡器上的SSL / HTTPS

来自分类Dev

AWS负载平衡器和IIS虚拟目录

来自分类Dev

使用负载平衡器终止Kafka / SSL连接

来自分类Dev

使用HTTPS应用程序负载平衡器时Django Fargate Docker中的CSRF错误

来自分类Dev

如何调试为什么Kubernetes负载平衡器服务在端口上没有响应?

来自分类Dev

AWS弹性负载平衡器和Cloudfront哪种SSL证书是正确的证书?ssl证书兼容性

来自分类Dev

使用AzureAD和istio内部负载平衡器进行Grafana,Prometheus,Kiali身份验证

来自分类Dev

配置 ASP.NET Core 以使用代理服务器和负载平衡器

来自分类Dev

如何告诉AWS应用程序负载平衡器不转发路径模式?

来自分类Dev

如何在AWS上为Kubernetes创建应用程序负载平衡器

来自分类Dev

Azure负载平衡器-使用ARM模板将现有VM添加到Azure负载平衡器

来自分类Dev

使用应用程序负载平衡器| 舵图| AWS

来自分类Dev

负载平衡器如何与asp.net会话一起使用

来自分类Dev

在IBM Websphere环境中设置负载平衡器服务器

来自分类Dev

AWS:通过负载平衡器运行服务器端脚本

来自分类Dev

AWS-为什么在通过负载平衡器时更改myIp

来自分类Dev

在没有Cloudfront或负载平衡器的Amazon AWS for EC2上启用HTTPS

来自分类Dev

GKE-如何通过L7负载平衡器提供HTTPS服务?

来自分类Dev

我的服务应如何响应Azure负载平衡器探针?

来自分类Dev

如何配置Nginx充当代理的负载平衡器?

来自分类Dev

我的服务应如何响应Azure负载平衡器探测?

来自分类Dev

如何从Azure负载平衡器中删除入站规则

来自分类Dev

如何从Azure负载平衡器中删除入站规则

来自分类Dev

如何从SL-API创建softlayer citrix负载平衡器

来自分类Dev

应用程序负载平衡器,用于使用子域进行服务分段

Related 相关文章

  1. 1

    TCP负载平衡器和HTTP负载平衡器之间的区别以及何时使用什么?

  2. 2

    如何在AWS的应用程序负载平衡器(容器服务)上使用唯一的运行状况检查端口?

  3. 3

    如何以简单的方式替换负载平衡器Docker容器而无需停机

  4. 4

    AWS负载平衡器背后的Wordpress多站点

  5. 5

    AWS-负载平衡器上的SSL / HTTPS

  6. 6

    AWS负载平衡器和IIS虚拟目录

  7. 7

    使用负载平衡器终止Kafka / SSL连接

  8. 8

    使用HTTPS应用程序负载平衡器时Django Fargate Docker中的CSRF错误

  9. 9

    如何调试为什么Kubernetes负载平衡器服务在端口上没有响应?

  10. 10

    AWS弹性负载平衡器和Cloudfront哪种SSL证书是正确的证书?ssl证书兼容性

  11. 11

    使用AzureAD和istio内部负载平衡器进行Grafana,Prometheus,Kiali身份验证

  12. 12

    配置 ASP.NET Core 以使用代理服务器和负载平衡器

  13. 13

    如何告诉AWS应用程序负载平衡器不转发路径模式?

  14. 14

    如何在AWS上为Kubernetes创建应用程序负载平衡器

  15. 15

    Azure负载平衡器-使用ARM模板将现有VM添加到Azure负载平衡器

  16. 16

    使用应用程序负载平衡器| 舵图| AWS

  17. 17

    负载平衡器如何与asp.net会话一起使用

  18. 18

    在IBM Websphere环境中设置负载平衡器服务器

  19. 19

    AWS:通过负载平衡器运行服务器端脚本

  20. 20

    AWS-为什么在通过负载平衡器时更改myIp

  21. 21

    在没有Cloudfront或负载平衡器的Amazon AWS for EC2上启用HTTPS

  22. 22

    GKE-如何通过L7负载平衡器提供HTTPS服务?

  23. 23

    我的服务应如何响应Azure负载平衡器探针?

  24. 24

    如何配置Nginx充当代理的负载平衡器?

  25. 25

    我的服务应如何响应Azure负载平衡器探测?

  26. 26

    如何从Azure负载平衡器中删除入站规则

  27. 27

    如何从Azure负载平衡器中删除入站规则

  28. 28

    如何从SL-API创建softlayer citrix负载平衡器

  29. 29

    应用程序负载平衡器,用于使用子域进行服务分段

热门标签

归档