如何在具有私有拓扑和内部loadbalacer的aws上连接到我的集群?

时间:2018-06-11 04:18:28

标签: amazon-web-services cluster-computing kops internal-load-balancer aws-load-balancer

我正在使用以下命令创建集群:

  

kops create cluster --zones us-west-1c --master-size = m4.large --node-size = m5.large $ {NAME} --associate-public-ip = false --topology private - -api-loadbalancer-type internal --networking calico --vpc vpc-xxxxxxxx --cloud-labels =" Creator = revor,Description = YM k8 cluster,ENV = int,Name = SMV_INT_YMK8,Requestor = Rey R​​eymond,代码= 5483"

群集在aws中创建。到现在为止还挺好。但问题是,当我运行kops validate cluster时,我得到了:

  

验证群集xxx.xxx.xx   验证期间出现意外错误:错误列出节点:获取https://api。 xxx.xxx.xx / api / v1 / nodes:拨打tcp 172.30.xx.xx:443:getsockopt:连接被拒绝

当我运行kubectl get nodes时,我得到:

  

无法连接到服务器:拨打tcp 172.30.xx.xx:443:i / o timeout

当我运行ssh -i ~/.ssh/id_rsa admin@api.xxx.xxx.xx时,我得到:

  

sh:连接到主机api。 xxx.xxx.xx端口22:拒绝连接

我的问题是为什么我无法连接到我的群集以及为什么我收到上述错误?

如上面的命令所示,我的群集被定义为具有专用拓扑,没有公共IP地址和内部负载均衡器。我想知道这是否意味着我不能连接到我的集群并且预计会出现上述错误?

2 个答案:

答案 0 :(得分:0)

如果您的所有实例都是私有的,那么这是预期的。我敢打赌,您的xxx.xxx.xx位于172.x.x.x等私有IP范围内。通常的方法是在公共网络中创建具有公共IP地址的EC2实例,连接到此实例,然后从此公共实例连接到您的私有实例。此类实例通常称为堡垒主机。当然,您必须修改VPC安全组以允许从公有子网访问您的私有子网。

请查看https://docs.aws.amazon.com/quickstart/latest/linux-bastion/welcome.html以获取AWS提供的指南。

答案 1 :(得分:0)

除了@Sergey Kovalev提到的内容之外,请确保您已正确配置了kubeconfig(在堡垒主机中)以使您的" kubectl"连接到你的kube master api