You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从本地机器连接私有VPC内的AWS EKS Fargate实例

从本地连接私有VPC内EKS集群的Fargate Pod

由于Fargate是serverless容器运行环境,没有可直接SSH访问的底层EC2实例,你需要通过集群API和kubectl工具连接到运行在Fargate上的Pod,具体步骤如下:

1. 确保本地能访问EKS集群API Server

  • 因为集群部署在私有VPC,你需要先打通本地到VPC的网络通道(比如通过AWS VPN、Direct Connect,或者部署bastion主机作为中转),确保本地机器能访问EKS的API Server端点。
  • 使用AWS CLI更新本地kubeconfig,获取集群访问凭证:
    aws eks update-kubeconfig --region <你的AWS区域> --name <EKS集群名称>
    
  • 测试集群连通性:
    kubectl get nodes
    
    若能返回带有fargate-前缀的节点,说明API Server连接正常。

2. 连接到Fargate上的目标Pod

  • 首先列出所有运行中的Pod,定位到Fargate调度的目标Pod(可通过命名空间或标签筛选):
    kubectl get pods -A
    
  • 进入目标Pod的交互式shell:
    kubectl exec -it -n <Pod所在命名空间> <Pod名称> -- /bin/bash
    
    如果Pod未安装bash,替换为/bin/sh即可。

3. (可选)部署调试Pod到Fargate

如果目标Pod没有可用的shell或不适合直接访问,你可以临时部署一个调试用Pod到Fargate配置文件覆盖的命名空间:

apiVersion: v1
kind: Pod
metadata:
  name: fargate-debug-pod
  namespace: default # 需确保该命名空间在你的Fargate配置文件范围内
spec:
  containers:
  - name: debug-container
    image: busybox:stable
    command: ["sleep", "86400"]
    imagePullPolicy: IfNotPresent
  restartPolicy: Always

部署命令:

kubectl apply -f fargate-debug-pod.yaml

待Pod运行后,再通过kubectl exec进入调试Pod。

关键注意事项

  • Fargate Pod默认没有公网IP,必须通过VPC内网通道访问,确保本地网络已和VPC打通。
  • 确认你的Fargate配置文件包含目标Pod所在的命名空间或标签,否则Pod不会被调度到Fargate上。
  • 检查本地AWS凭证是否具备eks:DescribeCluster权限,同时kubectl用户需拥有目标Pod的get和exec RBAC权限。

内容的提问来源于stack exchange,提问作者Lesha Pipiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:00:55