0

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

kops 创建集群 --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,code=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 地址和内部负载均衡器。我想知道这是否意味着我不应该能够连接到我的集群并且预期会出现上述错误?

4

2 回答 2

0

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

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

于 2018-06-11T08:30:11.960 回答
0

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

于 2018-06-18T02:35:09.490 回答