不知道这是 AWS 的错误还是其他错误。我创建了一个 IAM 用户并为其提供了完整的管理策略。然后,我使用该用户通过 CLI 创建 EKS 集群,但是当我使用root 用户eksctl登录 AWS 控制台时,在尝试访问集群节点时出现以下错误。
您当前的用户或角色无权访问此 EKS 集群上的 Kubernetes 对象\n这可能是由于当前用户或角色没有描述集群资源的 Kubernetes RBAC 权限,或者在集群中没有条目\xe2\x80\x99s身份验证配置映射。
\n我有这些问题
\nAWS本身不建议为root用户创建访问密钥并将其用于可编程访问,所以我现在很困惑。有人帮忙
\n到目前为止我看到的所有问题以及此处文档的链接都在讨论在 AWS IAM 中创建的用户或角色,而不是根用户。
\n我搜索了很多网站和文章,但没有找到完美的答案。我正在使用eks 版本 1.18。我可以看到一些 Pod 被“驱逐”,但是当尝试检查节点时,我可以看到错误“(从类似事件组合):无法垃圾收集所需数量的图像。想要释放 6283487641 字节,但释放了0 字节”。
有什么办法可以找到失败的原因吗?或者如何解决这个问题?任何建议都是非常受欢迎的。
我可以看到磁盘“覆盖”文件系统在几个小时内几乎已满。我不确定发生了什么事。下面的屏幕截图显示了我的内存利用率。
我正在尝试为 eks 设置 eksctl 但它抛出
"Error: unable to determine AMI to use: error getting AMI from SSM Parameter Store: AccessDeniedException: User: arn:aws:iam:::user/cnc is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1::parameter/aws/service/eks/optimized-ami/1.18/amazon-linux-2/recommended/image_id".
我正在使用的 IAM 权限策略是
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:DescribeParameters"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ssm:GetParameters",
"ssm:GetParametersByPath"
],
"Resource": "arn:aws:ssm:::parameter/*"
}
]
Run Code Online (Sandbox Code Playgroud)
我还尝试使用策略模拟来检查权限,它给了我“隐式拒绝(没有匹配的语句)”
我在公共子网中创建了一个具有 1 个工作节点的新 EKS 集群。我能够查询节点、连接到集群并运行 pod 创建命令,但是,当我尝试创建 pod 时,它失败并出现通过描述 pod 得到的以下错误。请指导。
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 81s default-scheduler 0/1 nodes are available: 1 Too many pods. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod.
Warning FailedScheduling 16m default-scheduler 0/2 nodes are available: 2 Too many pods, 2 node(s) had untolerated taint {node.kubernetes.io/unschedulable: }, 2 node(s) were unschedulable. preemption: …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用 k8s-sig 组提供的指南运行外部 dns pod。我遵循了指南的每一步,并得到了以下错误。
time="2021-02-27T13:27:20Z" level=error msg="records retrieval failed: failed to list hosted zones: WebIdentityErr: failed to retrieve credentials\ncaused by: AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity\n\tstatus code: 403, request id: 87a3ca86-ceb0-47be-8f90-25d0c2de9f48"
Run Code Online (Sandbox Code Playgroud)
我使用 Terraform 创建了 AWS IAM 策略,并成功创建了它。除了我使用过的服务帐户的 IAM 角色之外eksctl,其他所有内容都是通过 Terraform 生成的。
但是后来我看到了这篇文章,它说使用 awscli 创建 AWS IAM 策略可以消除这个错误。所以我删除了使用 Terraform 创建的策略,并使用 awscli 重新创建它。然而,它抛出了同样的错误错误。
下面是我的外部 dns yaml 文件。
apiVersion: v1
kind: ServiceAccount
metadata:
name: external-dns
# If you're using Amazon EKS with IAM Roles for Service Accounts, specify …Run Code Online (Sandbox Code Playgroud) 我已手动创建 EKS 集群。现在,当我尝试通过此链接launch-windows-workers创建 Windows 节点组时
我收到以下错误:-
2021-09-03 06:28:02 [!] 未找到“testEnv-cluster”的 eksctl 管理的 CloudFormation 堆栈,将尝试在非 eksctl 管理的集群上创建节点组错误:加载集群“testEnv 的 VPC 规范” -cluster":在不属于 eksctl 的集群上创建节点组所需的 VPC 配置:vpc.subnets、vpc.id、vpc.securityGroup
任何帮助
eksctl get nodegroups --cluster=cluster-name --profile=dev
aws eks list-nodegroups --cluster=cluster-name --profile=dev
Run Code Online (Sandbox Code Playgroud)
第一个结果是正确的
第二个结果是空气,如下:
{
"nodegroups": []
}
Run Code Online (Sandbox Code Playgroud)
我使用这两个命令获取集群的nodegroup,但是发现结果并不一致。
我使用的配置文件是相同的 ~/.aws/config。
该命令检查了 cluster_name。出来吧,这两个命令可以正确检测集群但无法检测节点组
提前感谢
我正在尝试eksctl使用适当的 IAM 权限启用自动缩放在 AWS EKS 集群上创建 Kubernetes 。根据文档:
您可以使用 IAM 角色创建一个集群(或现有集群中的节点组),以允许使用集群自动缩放器:
eksctl create cluster --asg-access
我正在努力奔跑
eksctl create cluster --asg-access -f myconfig.yml
Run Code Online (Sandbox Code Playgroud)
但收到此错误:
[?] cannot use --asg-access when --config-file/-f is set
Run Code Online (Sandbox Code Playgroud)
他们是--asg-access在配置文件中使用的一种方式吗?我尝试在配置文件架构文档中查找相关配置无济于事。
使用 terraform 或 eksctl 生成新的 AWKS EKS 集群有什么好处吗?
与另一种相比,是否有一些长期维护的好处?
我创建了一个cluster.yaml包含以下信息的文件:
---\napiVersion: eksctl.io/v1alpha5\nkind: ClusterConfig\nmetadata:\n name: eks-litmus-demo\n region: ${AWS_REGION}\n version: "1.21"\nmanagedNodeGroups:\n - instanceType: m5.large\n amiFamily: AmazonLinux2\n name: eks-litmus-demo-ng\n desiredCapacity: 2\n minSize: 2\n maxSize: 4\nEOF\nRun Code Online (Sandbox Code Playgroud)\n当我$ eksctl create cluster -f cluster.yaml通过终端运行创建集群时,出现以下错误:
错误:检查 AWS STS 访问 \xe2\x80\x93 无法获取当前会话的角色 ARN:MissingEndpoint:此服务需要“端点”配置
\n我该如何解决这个问题?请帮忙!!!
\n注意:我将 STS 下的全球和区域终端节点设置为“在所有 AWS 区域均有效”。
\nyaml cluster-computing amazon-web-services amazon-eks eksctl
eksctl ×10
amazon-eks ×8
kubernetes ×6
amazon-iam ×2
amazon-ec2 ×1
aws-cli ×1
aws-ssm ×1
external-dns ×1
kubectl ×1
nodes ×1
terraform ×1
yaml ×1