首页 > 解决方案 > Amazon Kubernetes AWS-EKS 未正确创建或未与 kubectl 同步

问题描述

按照这个文档一步一步来:

https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html?shortFooter=true

我使用 aws cli 而不是 UI 创建了 EKS 集群。所以我得到了以下输出

proxy-kube$ kubectl get svc 
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   18h

但是当我遵循这个入门并将 Worker 节点与集群相关联时,我得到了

proxy-kube$ kubectl get nodes 
No resources found.

我可以看到在 AWS 控制台 (UI) 中创建并运行了 3 个 EC2 实例。但我什至无法部署和运行留言簿应用程序。当我部署应用程序时,我得到以下信息:

~$ kubectl get services -o wide
NAME           TYPE           CLUSTER-IP       EXTERNAL-IP                                                               PORT(S)          AGE       SELECTOR
guestbook      LoadBalancer   10.100.46.244    a08e89122c10311e88fdd0e3fbea8df8-1146802048.us-east-1.elb.amazonaws.com   3000:32758/TCP   17s       app=guestbook
kubernetes     ClusterIP      10.100.0.1       <none>                                                                    443/TCP          21h       <none>
redis-master   ClusterIP      10.100.208.141   <none>                                                                    6379/TCP         1m        app=redis,role=master
redis-slave    ClusterIP      10.100.226.147   <none>

但是如果我尝试访问EXTERNAL-IP,它会显示

服务器无法访问

在浏览器中。

还尝试为 kubernetes 获取仪表板,但它未能在 127.0.0.1:8001 上显示任何内容

有谁知道可能出了什么问题?对此的任何帮助表示赞赏。

谢谢

标签: amazon-web-serviceskubernetesamazon-eks

解决方案


看起来你的 kubelet(你的节点)没有向 master 注册。如果您没有任何节点,则基本上您将无法运行任何东西。

您可以通过 ssh 进入其中一个节点并使用以下内容检查 kubelet 中的日志:

journalctl -xeu kubelet

此外,这将有助于发布kubectl describe deployment <deployment-name>kubectl get pods


推荐阅读