在 docker 容器内(在 EC2 实例上)运行的微服务未到达 AWS ALB

天空

我正在尝试在微服务前面添加 AWS 应用程序负载均衡器(在 VPC 和公共子网内的 EC2 节点上运行)。那些在 docker 容器内运行。我注意到,如果微服务直接在 EC2 实例上运行。它能够与ALB通信。在 docker 容器内启动微服务时。它不与 ALB 通信。

我可以用 curl 重现:

1) 直接在 EC2 实例上点击 curl - 工作

  $ curl  http://vpc-elb-url/alive

回复:

 ok

2) 从 docker 容器内部点击 curl - 不工作

$ docker run --rm byrnedo/alpine-curl  http://vpc-elb-url/alive

回复:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1120  100  1120    0     0  65882      0 --:--:-- --:--:-- --:--:-- 65882
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Not Found</title>
        <style>
            html, body, pre {
                margin: 0;
                padding: 0;
                font-family: Monaco, 'Lucida Console', monospace;
                background: #ECECEC;
            }
            h1 {
                margin: 0;
                background: #AD632A;
                padding: 20px 45px;
                color: #fff;
                text-shadow: 1px 1px 1px rgba(0,0,0,.3);
                border-bottom: 1px solid #9F5805;
                font-size: 28px;
            }
            p#detail {
                margin: 0;
                padding: 15px 45px;
                background: #F6A960;
                border-top: 4px solid #D29052;
                color: #733512;
                text-shadow: 1px 1px 1px rgba(255,255,255,.3);
                font-size: 14px;
                border-bottom: 1px solid #BA7F5B;
            }
        </style>
    </head>
    <body>
        <h1>Not Found</h1>
        <p id="detail">
            For request 'GET /alive'
        </p>
    </body>
</html>

任何帮助,将不胜感激。谢谢。

天空

我不认为这是一个有效的问题。我正在回答这个,也许它会帮助其他人。如果有人犯同样的错误:(

我们使用以下命令将所有流量从 80 路由到 9000:

$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 9000

因为这个 ALB 变得无法访问。我们只是使用以下命令删除了此规则

sudo iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 9000

一切正常!

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Docker容器放入AWS EC2实例的动机

AWS Elastic Beanstalk与EC2容器服务(ECS)-Docker

ALB 和 EC2 实例之间的 AWS 安全组

即使运行Docker容器也无法访问AWS EC2实例

亚马逊 EC2 容器服务 - 任务是否部署为 docker 容器内的 docker 容器?

如何在 docker 容器上运行 ansible-playbook 以在 AWS EC2 Ubuntu 实例上执行命令?

运行的Docker容器在AWS EC2 Ubuntu上随机消失

如何在运行NGINX Docker容器的AWS EC2上启用HTTPS?

AWS EC2容器服务/ Elastic Beanstalk Docker容器端口udp绑定

RabbitMQ Docker 容器不适用于 AWS EC2 实例

通过AWS ECS在一个EC2实例中的多个Docker容器

在AWS自动扩展组中启动EC2时,如何运行简单的Docker容器?

aws 外部 ALB 和私有 Ip ec2 实例之间的安全组规则?

运行存储在EC2容器实例中的Docker映像

使用Docker在AWS EC2上运行Elasticsearch

在docker容器中的AWS EC2上运行时,Apache Ignite错误的节点发现

如何在不使用弹性beantalk或ec2容器服务的情况下在aws上部署docker容器

我应该使用AWS Elastic Beanstalk还是Amazon EC2容器服务(ECS)扩展Docker容器?

AWS ALB与Docker群

在AWS EC2上运行的呼叫容器

AWS ELB / ALB http / 2通过http / 2(不是http / 1.1)直通EC2实例

每个EC2实例在AWS弹性beantalk中扩展Docker容器的数量[应用程序架构]

在 AWS EC2 免费套餐账户上安装 Docker

Amazon AWS EC2容器服务是否支持卷?

EC2 Docker容器在CloudWatch上登录

AWS EC2 Cloud9 在 Docker 容器中调试 Python3

AWS:如何在离我的客户最近的 ec2 上立即部署 docker 实例?

如何在单个AWS EC2实例上的Node中部署多个微服务?

docker:EC2实例中堆栈中的容器不继承dns名称服务器