无法使用Kops验证Kubernetes集群

时间:2018-03-07 02:22:00

标签: amazon-web-services kubernetes kops

我是Kubernetes的新手。我正在使用Kops在AWS上部署我的Kubernetes应用程序。我已经在AWS上注册了我的域,并且还创建了一个托管区域并将其附加到我的默认VPC。

通过kops创建我的Kubernetes集群成功。但是,当我尝试使用kops validate cluster验证我的群集时,它会失败,并显示以下错误:

  

无法解析Kubernetes群集API网址dns:查找api.ucla.dt-api-k8s.com 149.142.35.46:53:没有这样的主机

我已尝试调试此错误但失败了。你能帮帮我吗?我现在非常沮丧。

4 个答案:

答案 0 :(得分:1)

我遇到了一个Ubuntu盒子问题。我所做的就是在第53条路由的托管区域中将dns记录添加到/ etc / hosts。

答案 1 :(得分:0)

根据您的描述,您在Route 53中创建了一个私有托管区域。验证可能失败,因为Kops尝试从您的计算机访问群集API,该计算机位于VPC之外,但私有托管区域仅响应请求来自VPC内部。具体来说,主机名api.ucla.dt-api-k8s.com是Kubernetes API所在的位置,是您通过计算机与群集进行通信和发出命令的方法。私有托管区域不允许您从外部世界(您的计算机)访问此API。

解决此问题的方法是将托管区域设为公开。 Kops会自动为您创建一个VPC(除非另有配置),但您仍然可以从您的计算机访问API。

答案 2 :(得分:0)

昨晚我遇到了一个以前使用过的基于kops的集群创建脚本。我认为也许切换区域会有所帮助,但没有帮助。 今天早上它又开始工作。这感觉像是AWS方面的间歇性事件。

所以我建议的答案是: 发生这种情况时,您可能需要花几个小时自行解决。就我而言,我在过夜后从头开始重建了集群。我不知道是否有必要从头开始-我希望没有。

答案 3 :(得分:0)

这是我解决问题的方法: 看起来 kops 库有一个错误,尽管它显示 **验证失败:验证期间出现意外错误:无法解析 Kubernetes 集群 API URL dns:查找 api ** 当你尝试 kops 验证集群 后等待 10-15 分钟。在幕后,kubernetes 集群启动了!您可以通过对 kunernetes 集群的主节点执行 ssh 来验证相同的内容

  1. 转到您可以运行 ec2 实例和 k8 实例的页面
  2. 复制您的主 k8 节点的“公共 IPv4 地址”
  3. 在命令提示符下登录到 ec2 实例后登录到主节点,如下所示 ssh ubuntu@<<你的主k8节点的“公共IPv4地址”>>
  4. 使用以下命令验证您是否可以看到 k8 集群的所有节点,它应该显示您的主节点和工作节点在那里列出 kubectl get nodes --all-namespaces