首页 > 解决方案 > kubernetes:错误列出节点

问题描述

我使用 kops 配置了 kubernetes 集群:

kops create cluster \
    --zones ap-southeast-1a \
    --dns-zone=${DNS_ZONE} \
    --node-count 3 \
    --vpc=${VPC_ID} \
    --subnets=${SUBNET_ID} \
    ${NAME}

配置了 Ec2 实例,我可以在控制台中看到它们。

DNS_ZONE 是 abc.in,route53 中的公共托管区域

api.sp-southeast-1.es.k8s.abc.in. A 54.123.123.123
api.internal.sp-southeast-1.es.k8s.abc.in. A 172.123.123.123
etcd-a.internal.sp-southeast-1.es.k8s.abc.in. A 172.123.123.123
etcd-events-a.internal.sp-southeast-1.es.k8s.abc.in. A 172.123.123.123 

我已经就同一问题进行了堆栈溢出讨论。

我将 3 个 t2.micro 实例用于主节点,3 个 t2.medium 实例用于节点

主节点的入站规则是:

Custom TCP Rule TCP 4003 - 65535 sg-0559ecf7ab (nodes.sp-southeast-1.es.k8s.abc.in) 
Custom TCP Rule TCP 2382 - 4000 sg-0559674a0d3ab (nodes.sp-southeast-1.es.k8s.abc.in) 
All traffic All All sg-0ecc38031f44 (masters.sp-southeast-1.es.k8s.abc.in) 
SSH TCP 22 0.0.0.0/0 
Custom UDP Rule UDP 1 - 65535 sg-0557674a0d3ab (nodes.sp-southeast-1.es.k8s.abc.in) 
Custom TCP Rule TCP 1 - 2379 sg-0557674a0d3ab (nodes.sp-southeast-1.es.k8s.abc.in) 
Custom TCP Rule TCP 443 0.0.0.0/0

当我进入

kops validate cluster
> unexpected error during validation: error listing nodes: 
Get https://api.sp-southeast-1.es.k8s.abc.in/api/v1/nodes: 
dial tcp 54.123.123.123:443: i/o timeout

标签: kubernetesdevopskubectlkops

解决方案


我已经升级了我的生产 kube 集群,我遇到了同样的问题。我们使用 AWS 云。

问题是由于集群 api 的 dns 配置(AWS Route 53)不正确,也许是 kops 的错误?

为了解决这个问题,我手动为 kube api 设置了正确的 ip 地址,然后 api 现在可以访问了。

更新:我发现问题是由于不正确的 kops 升级,负责网络服务的 kubelet 没有正确运行。该集群使用 1.10 的 kubernetes,但 aws ec2 映像为 1.9。强制集群到1.9.8版本,集群升级正常运行,kubelet网络服务更新dns正确。


推荐阅读