2

我已经使用 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 对这些实例节点角色的完全访问权限。

4

2 回答 2

3

如果您使用 terraform,或修改标签和名称变量,请确保标签中的集群名称匹配!

节点必须由某个集群“拥有”。节点只会加入它们应该加入的集群。我忽略了这一点,但是在使用 terraform 时没有很多文档可供参考。确保变量匹配。这是命名要加入的父集群的节点标签:

  tag {
    key = "kubernetes.io/cluster/${var.eks_cluster_name}-${terraform.workspace}"
    value = "owned"
    propagate_at_launch = true
  }
于 2019-04-01T16:06:49.470 回答
2

如果您遵循 aws 白皮书,则可以轻松连接所有工作节点并将它们与 EKS 集群连接。

链接:https ://docs.aws.amazon.com/eks/latest/userguide/getting-started.html

根据我的想法,您忘记使用实例角色配置文件 ARN 编辑配置映射。

于 2018-12-26T05:49:54.263 回答