我已成功使用aws eks启动了群集并应用了aws-auth,但是节点未加入群集。我检查了节点的日志消息并找到了它-
Dec 4 08:09:02 ip-10-0-8-187 kubelet: E1204 08:09:02.760634 3542 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:461: Failed to list *v1.Node: Unauthorized
Dec 4 08:09:03 ip-10-0-8-187 kubelet: W1204 08:09:03.296102 3542 cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
Dec 4 08:09:03 ip-10-0-8-187 kubelet: E1204 08:09:03.296217 3542 kubelet.go:2130] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Dec 4 08:09:03 ip-10-0-8-187 kubelet: E1204 08:09:03.459361 3542 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:452: Failed to list *v1.Service: Unauthorized`
对此我不确定。我已将eks的完全访问权限附加到这些实例节点角色。
答案 0 :(得分:2)
如果您已遵循AWS白皮书,则有一种简单的方法可以连接所有工作程序节点并将其与EKS集群连接。
链接:https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html
按照我的想法,您忘记了使用实例角色配置文件ARN编辑配置映射。
答案 1 :(得分:0)
如果使用的是terraform,或修改标签和名称变量,请确保群集名称与标签中的匹配!
节点必须由某个群集“拥有”。节点将仅加入他们应该加入的集群。我忽略了这一点,但是在使用terraform时没有太多的文档需要处理。确保变量匹配。这是命名要加入的父群集的节点标签:
tag {
key = "kubernetes.io/cluster/${var.eks_cluster_name}-${terraform.workspace}"
value = "owned"
propagate_at_launch = true
}