繁体   English   中英

如何使用多个容器将 SSH 放入 AWS ECS Fargate?

[英]How to SSH into AWS ECS Fargate with multiple containers?

我正在对 ECS Fargate 进行一些试验。 我遇到过在同一个任务上运行三个容器的情况。 有什么办法可以将 ssh 放入这三个容器中吗?

经过一番挖掘,我发现如果我只有一个容器, 这里是可能的。 但是当你有多个容器在同一个任务中运行时,我无处能找到如何做到这一点。 我想知道这是否可能。 也许 Fargate 不适合我,我必须使用 ECS EC2 go。

注意:我必须时不时地手动运行一些 php 脚本,这就是我需要进入这些容器的原因。

我找不到任何其他方法来解决这个问题,因为我不能在同一个任务中使用三个容器来暴露 22,所以我不得不在构建其他两个时将用于 ssh 的端口从 22 更新为 2222、2223(任何其他端口)容器。

RUN sed -i 's/#Port 22/Port 2222/g' /etc/ssh/sshd_config

注意:我必须时不时地手动运行一些 php 脚本,这就是我需要进入这些容器的原因。

在这种情况下,如果您需要定期运行这些脚本,我的建议是使用ECS 计划的 cron 任务来执行这些脚本。

如果您更临时地而不是按日历计划运行它们,我建议将脚本拉出到它自己的容器中,该容器可以使用ECS RunTask API运行

不要害怕运行更多的容器。 一般来说,容器的理想用法是每个容器一个进程或一个作业。 如果您有多种类型的作业,则运行多种类型的容器。

理想情况下,您还可以为每种容器类型定义一个任务。 所以也许:

  1. 网站容器 -> 网站任务定义 -> 将任务定义作为 ECS 服务启动
  2. api 容器 -> api 任务定义 -> 将任务定义作为自己的 ECS 服务启动
  3. PHP 脚本容器 -> 脚本任务定义 -> 使用 ECS RunTask 执行该脚本任务(或安排它在 cron 计划上定期自动执行)

我不知道你的具体工作负载是什么样的,但希望这可以作为一个例子,如果你有三样东西,它们最好是三个不同的容器、三个任务定义和三个独立的 ECS 服务/任务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM