EKS AWS:无法连接工作节点

时间:2019-03-06 15:53:59

标签: amazon-web-services kubernetes aws-eks eks

我对Launching worker node in the AWS EKS guide的脚步感到非常困惑。老实说,在这一点上,我不知道出了什么问题。 当我执行kubectl得到svc时,我得到了集群,所以这是个好消息。 我的aws-auth-cm.yaml中有这个

apiVersion: v1
kind: ConfigMap
metadata:
  name: aws-auth
  namespace: kube-system
data:
  mapRoles: |
    - rolearn: arn:aws:iam::Account:role/rolename
      username: system:node:{{EC2PrivateDNSName}}
      groups:
        - system:bootstrappers
        - system:nodes

这是我在.kube中的配置

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: CERTIFICATE
    server: server
  name: arn:aws:eks:region:account:cluster/clustername
contexts:
- context:
    cluster: arn:aws:eks:region:account:cluster/clustername
    user: arn:aws:eks:region:account:cluster/clustername
  name: arn:aws:eks:region:account:cluster/clustername
current-context: arn:aws:eks:region:account:cluster/clustername
kind: Config
preferences: {}
users:
- name: arn:aws:eks:region:account:cluster/clustername
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      args:
      - token
      - -i
      - clustername
      command: aws-iam-authenticator.exe

我已经使用建议的AMI启动了EC2实例。

一些注意事项:

  • 我使用CLI启动了集群,
  • 我创建了一些密钥对,
  • 我没有使用Cloudformation堆栈,
  • 我将这些策略附加到EC2的角色上:AmazonEKS_CNI_Policy,AmazonEC2ContainerRegistryReadOnly,AmazonEKSWorkerNodePolicy。

这是我第一次尝试使用kubernetes和EKS,因此请牢记:)。感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您的配置文件和身份验证文件看起来正确。安全组分配可能存在一些问题?您能否共享创建集群和工作节点所遵循的确切步骤? 还有为什么必须使用CLI而不是控制台的特殊原因?我的意思是,如果这是您第一次尝试EKS,那么您可能应该尝试至少使用控制台设置一次集群。

答案 1 :(得分:0)

有时出于某种原因,aws_auth configmap 不会自动应用。所以我们需要手动添加它们。我遇到了这个问题,所以把它留在这里以防它对某人有帮助。

  1. 检查您是否已经应用了 aws-auth ConfigMap。

    kubectl describe configmap -n kube-system aws-auth

如果您收到一条错误消息,指出“来自服务器的错误 (NotFound): configmaps "aws-auth" not found”,请继续

  1. 下载配置图。

    curl -o aws-auth-cm.yaml https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm.yaml

  2. 使用您喜欢的文本编辑器打开文件。将 替换为与您的节点关联的 IAM 角色的 Amazon 资源名称 (ARN),然后保存文件。

  3. 应用配置。

    kubectl apply -f aws-auth-cm.yaml

  4. 观察节点的状态并等待它们达到就绪状态。

    kubectl get nodes --watch

您也可以转到 aws 控制台并找到要添加的工作程序节点。

查找更多信息here