【问题标题】:Root Access to Fargate Containers deployed on EKS for Troubleshooting对部署在 EKS 上的 Fargate 容器的根访问权限以进行故障排除
【发布时间】:2021-12-25 06:03:28
【问题描述】:

我正在对使用 Fargate 部署到 EKS 集群的 pod/容器上的应用程序问题进行故障排除。使用kubectl exec 在某些情况下可以正常工作,但它似乎只能作为普通/默认用户工作,我需要一些根深蒂固的东西,比如在整个系统中列出用户/PID(收集 lsof、netstat 类型信息)。

有谁知道 AWS 的新 ECS Exec 是否应该能够访问在 Fargate 上运行的任何容器,甚至是那些部署到 EKS 集群(而不是 ECS)的容器。 ecs exec 的文档根本没有提到 EKS,而且在这个问题上也很模棱两可。除了上述文档的以下摘录:

服务器端要求 (AWS Fargate)

如果 ECS 任务及其容器在 Fargate 上运行,您无需执行任何操作,因为 Fargate 已包含启用此 ECS 功能的所有基础设施软件要求。因为 Fargate 软件堆栈是通过所谓的“平台版本”管理的(如果您想要了解 AWS Fargate 平台版本入门,请阅读此博客),您只需确保您使用的是 PV 1.4(这是最新版本并且附带 ECS Exec 先决条件)。

猜测它可能会起作用,但如果不是,我不想浪费时间。有人知道吗?

如果没有,您如何对部署到 EKS 的 Fargate 管理的容器进行根级调试?

您是否需要在容器中安装 ssh server/user/creds 才能执行此操作?就安全性而言,这感觉像是最糟糕的做法。

【问题讨论】:

    标签: containers amazon-ecs aws-cli amazon-eks aws-fargate


    【解决方案1】:

    带有securityContext.privileged: true,甚至hostPorthostNetwork 的Pod 都无法在Fargate 上运行,无法访问容器边界之外的资源,包括EBS 返回的PersistentVolume(这个真的告诉你它有多严格)。因此,ecs exec 作为命令是否有效并不重要,您根本没有权限在 Fargate infra 上进行低级调试。通常,您在 EC2 上运行调试并在准备好后在 Fargate 上部署。

    【讨论】:

      猜你喜欢
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多