Amazon web services 如何在保留在计算机上的同时通过SSH隧道连接到远程服务器?

Amazon web services 如何在保留在计算机上的同时通过SSH隧道连接到远程服务器?,amazon-web-services,kubernetes,ssh,ssh-tunnel,Amazon Web Services,Kubernetes,Ssh,Ssh Tunnel,我有一个Kubernetes集群要管理,它位于AWS上它自己的私有子网中。为了让我们能够管理它,我们在公共子网上有一个堡垒服务器。通过隧道直接到达我们的集群是很容易的。但是,我们需要让部署机器建立一个隧道,并执行到Kubernetes服务器的命令,例如运行Helm和kubectl。有人知道怎么做吗 非常感谢, 约翰在美国焊接学会 情景1 默认情况下,此API服务器端点对internet是公开的,并且使用AWS标识和访问管理(IAM)和本机Kubernetes基于角色的访问控制(RBAC)的组合来

我有一个Kubernetes集群要管理,它位于AWS上它自己的私有子网中。为了让我们能够管理它,我们在公共子网上有一个堡垒服务器。通过隧道直接到达我们的集群是很容易的。但是,我们需要让部署机器建立一个隧道,并执行到Kubernetes服务器的命令,例如运行Helm和kubectl。有人知道怎么做吗

非常感谢,

约翰在美国焊接学会

情景1

默认情况下,此API服务器端点对internet是公开的,并且使用AWS标识和访问管理(IAM)和本机Kubernetes基于角色的访问控制(RBAC)的组合来保护对API服务器的访问

如果是这种情况,您可以使用提供的kubeconfig文件从您可以访问internet的Concourse服务器使用
kubectl
命令,如果您没有kubeconfig文件,请遵循以下步骤

场景2

当您启用私有集群端点时(这似乎是您的情况)

当您为集群启用端点专用访问时,Amazon EKS将代表您创建一个Route 53专用托管区域,并将其与集群的VPC关联。这个私有托管区域由Amazon EKS管理,它不会出现在您帐户的Route 53资源中。为了使私有托管区域正确地将流量路由到API服务器,您的VPC必须将enableDnsHostnames和enableDnsSupport设置为true,并且为您的VPC设置的DHCP选项必须在其域名服务器列表中包括AmazonProviderdDNS。有关更多信息,请参阅《亚马逊专有网络用户指南》中更新专有网络的DNS支持


您可以修改您的私有端点步骤,或者按照这些步骤进行操作。可能有更简单的方法来完成,但我想到的第一个解决方案是设置简单的ssh端口转发

假设您对这两台机器都有ssh访问权限,即,
Concourse
Bastion
有ssh访问权限,
Bastion
集群有ssh访问权限,则可以按以下方式执行:

首先在
堡垒上进行所谓的本地ssh端口转发(描述得很好):

然而,它仍然不是你所需要的。现在,您需要将其转发到您的
congourse
机器。在
consource
run上:

ssh -L <kube-api-server-port>:localhost:<kube-api-server-port> ssh-user@<bastion-server-ip-address-or-hostname>
或者将其合并到您的
.kube/cofig

如果有帮助,请告诉我


您还可以使这样的隧道更持久。您可以找到更多信息。

当您说“部署机器”时,您是指堡垒服务器,对吗?不,Concourse->bastion->Cluster。我们的大堂机器有一些工具,比如kubectl,用来对抗集群,但是需要一条穿过堡垒的隧道。
curl localhost:<kube-api-server-port>
ssh -L <kube-api-server-port>:localhost:<kube-api-server-port> ssh-user@<bastion-server-ip-address-or-hostname>
curl localhost:<kube-api-server-port>