kubernetes - 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
解决方案
我已经升级了我的生产 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正确。
推荐阅读
- ios - Opentok 和 CallKit 的问题
- r - 在数据框中找到最佳行
- python - 在多线程中使用 Lock
- .net-core - 有没有办法完全绕过 .NET Core 中的冷启动?
- java - 使用Java在一个标签中读取具有多个值的XML文件
- r - 添加到 sf 情节的自定义键失败
- python - on_delete=models.PROTECT 和 on_delete=models.CASCADE 对 Django 模型有什么作用?
- c# - 在c#中提取2GB XML文件的数据
- android - 来自 Json 的 ExpandableList 视图
- dataset - 从哪里我可以得到多时相卫星图片