无法更新 kops 集群 - DNS 查找错误
Unable to update kops cluster - DNS lookup error
为 "kubernetes.xxxx.xxx" 进行 NS 记录的 DNS 查找时出错:在 10.0.2.3:53 上查找 kubernetes.xxxxxxxx.xxx:读取 udp 10.0.2.15:56154->10.0.2.3:53: i/o超时
只有我的 kops 更新集群抛出以下所有其他命令看起来都很好
这是我的 kops 验证集群
Using cluster from kubectl context: kubernetes.xxxx.xxx
Validating cluster kubernetes.xxxxxx.xxxx
INSTANCE GROUPS NAME ROLE MACHINETYPE MIN MAX SUBNETS
master-xxx-xxxx-1a Master t2.micro 1 1 xx-xxxxx-1a
nodes Node t2.micro 2 2 xx-xxxxxx-1a
NODE STATUS NAME ROLE READY
ip-xxxx-xx-xx-xxx.xxx-xxxxx-x.compute.internal master True
Validation Failed Ready Master(s) 1 out of 1. Ready Node(s) 0 out of
2.
your nodes are NOT ready kubernetes.xxxxxx.xxx
这是一个 DNS 问题。我对我的名称服务器进行了 nslookup,并将 IP 添加到 /etc/resolv.conf 文件
nameserver 10.0.2.3
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
search xxxxxx
search kubernetes.xxxxxx.xxx
当我 运行 kops 现在更新集群。它解决了这个问题。
正如您在评论中所写,您正在尝试从 VPC 网络外部的 VM 调用命令。
您的系统中似乎将 DNS 服务器地址设置为 10.0.2.3:53
但它不可用,这就是您无法从 VM 解析区域的原因。
例如,要修复它,请编辑您的 /etc/hosts
文件并将名称服务器地址设置为 8.8.8.8
。
如果您的 Kubernetes DNS 区域正常,您当然可以解析它(如果您使用的是 public DNS 区域)。
对于私有 DNS 区域,它几乎是一样的,但是您应该设置该区域的 DNS 服务器地址而不是 8.8.8.8
。
您只需要在 /etc/resolv.conf
中添加一个条目
nameserver 8.8.8.8
注意:我想你已经配置好了你的 NS 记录,否则你可以按照这个 doc
为 "kubernetes.xxxx.xxx" 进行 NS 记录的 DNS 查找时出错:在 10.0.2.3:53 上查找 kubernetes.xxxxxxxx.xxx:读取 udp 10.0.2.15:56154->10.0.2.3:53: i/o超时
只有我的 kops 更新集群抛出以下所有其他命令看起来都很好
这是我的 kops 验证集群
Using cluster from kubectl context: kubernetes.xxxx.xxx
Validating cluster kubernetes.xxxxxx.xxxx
INSTANCE GROUPS NAME ROLE MACHINETYPE MIN MAX SUBNETS master-xxx-xxxx-1a Master t2.micro 1 1 xx-xxxxx-1a nodes Node t2.micro 2 2 xx-xxxxxx-1a
NODE STATUS NAME ROLE READY ip-xxxx-xx-xx-xxx.xxx-xxxxx-x.compute.internal master True
Validation Failed Ready Master(s) 1 out of 1. Ready Node(s) 0 out of 2.
your nodes are NOT ready kubernetes.xxxxxx.xxx
这是一个 DNS 问题。我对我的名称服务器进行了 nslookup,并将 IP 添加到 /etc/resolv.conf 文件
nameserver 10.0.2.3
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
search xxxxxx
search kubernetes.xxxxxx.xxx
当我 运行 kops 现在更新集群。它解决了这个问题。
正如您在评论中所写,您正在尝试从 VPC 网络外部的 VM 调用命令。
您的系统中似乎将 DNS 服务器地址设置为 10.0.2.3:53
但它不可用,这就是您无法从 VM 解析区域的原因。
例如,要修复它,请编辑您的 /etc/hosts
文件并将名称服务器地址设置为 8.8.8.8
。
如果您的 Kubernetes DNS 区域正常,您当然可以解析它(如果您使用的是 public DNS 区域)。
对于私有 DNS 区域,它几乎是一样的,但是您应该设置该区域的 DNS 服务器地址而不是 8.8.8.8
。
您只需要在 /etc/resolv.conf
中添加一个条目nameserver 8.8.8.8
注意:我想你已经配置好了你的 NS 记录,否则你可以按照这个 doc