标签: amazon-eks

AccessDeniedException - 创建 eks 集群 - 用户无权执行:eks:CreateCluster

我正在尝试在命令行运行此命令:

aws eks create-cluster \
    --name ignitecluster \
    --role-arn "$role_arn" \
    --resources-vpc-config  subnetIds="$subnet_id",securityGroupIds="$security_group"
Run Code Online (Sandbox Code Playgroud)

我得到:

调用 CreateCluster 操作时发生错误 (AccessDeniedException):用户:arn:aws:iam::9136xxxx20371:user/ec2_resources is notauthorized to perform: eks:CreateCluster on resource: arn:aws:eks:us-west-2: 9136xxxx371:簇/点燃簇

我一生都无法弄清楚如何授予此角色权限eks:*,有人知道吗?

amazon-eks

16
推荐指数
1
解决办法
8053
查看次数

Kubectl 命令抛出错误:无法连接到服务器:获取凭据:exec:退出状态 2

我正在进行 EKS/Kubectl 的实验室设置,在完成集群构建后,我运行以下命令:

> kubectl get node

And I get the following error:
Unable to connect to the server: getting credentials: exec: exit status 2
Run Code Online (Sandbox Code Playgroud)

此外,我确信这是一个配置问题,

kubectl version
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument operation: Invalid choice, valid choices are:

create-cluster                           | delete-cluster                          
describe-cluster                         | describe-update                         
list-clusters                            | list-updates                            
update-cluster-config                    | update-cluster-version                  
update-kubeconfig                        | wait                                    
help                                    
Client Version: version.Info{Major:"1", …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes kubectl amazon-eks

15
推荐指数
2
解决办法
9万
查看次数

无法连接到服务器:获取凭据:解码标准输出:没有为版本注册任何类型的“ExecCredential”

**无法连接到服务器:获取凭据:解码标准输出:方案“pkg/client/auth/exec/exec.go”中的版本“client.authentication.k8s.io/v1alpha1”没有注册任何类型“ExecCredential”: 62 英寸\n**

\n
2022-09-16 16:35:00 [\xe2\x84\xb9]  eksctl version 0.111.0\n2022-09-16 16:35:00 [\xe2\x84\xb9]  using region ap-south-1\n2022-09-16 16:35:00 [\xe2\x84\xb9]  skipping ap-south-1c from selection because it doesn\'t support the following instance type(s): t2.micro\n2022-09-16 16:35:00 [\xe2\x84\xb9]  setting availability zones to [ap-south-1a ap-south-1b]\n2022-09-16 16:35:00 [\xe2\x84\xb9]  subnets for ap-south-1a - public:192.168.0.0/19 private:192.168.64.0/19\n2022-09-16 16:35:00 [\xe2\x84\xb9]  subnets for ap-south-1b - public:192.168.32.0/19 private:192.168.96.0/19\n2022-09-16 16:35:00 [\xe2\x84\xb9]  nodegroup "ng-1" will use "" [AmazonLinux2/1.23]\n2022-09-16 16:35:00 [\xe2\x84\xb9]  using Kubernetes version 1.23\n2022-09-16 16:35:00 [\xe2\x84\xb9]  creating EKS cluster "basic-cluster" in "ap-south-1" region with managed nodes\n2022-09-16 …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes ubuntu-16.04 amazon-eks

15
推荐指数
3
解决办法
3万
查看次数

节点上的 Pod 限制 - AWS EKS

在 AWS EKS 上,我将具有 17 个副本(请求和限制 64Mi 内存)的部署添加到具有 2 个节点类型 t3.small 的小型集群。

用 kube-system pod 计算,每个节点运行的 pod 总数为 11,1 个待处理,即:

节点 #1:
aws-node-1
coredns-5-1as3
coredns-5-2das
kube-proxy-1
+7 个应用程序 pod 副本

节点 #2:
aws-node-1
kube-proxy-1
+9 个应用程序 pod 副本

我理解t3.small 是一个非常小的实例。我只是想了解是什么限制了我。内存请求不是它,我的可用资源远远低于可用资源。

我发现每个节点都有 IP 地址限制,具体取决于实例类型。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html?shortFooter=true#AvailableIpPerENI
我没有找到任何其他文档明确说明这会限制 pod 创建,但我假设它确实如此。根据该表,t3.small 可以有 12 个 IPv4 地址。如果是这种情况并且这是限制因素,因为我有 11 个 pod,1 个缺少的 IPv4 地址到哪里去了?

amazon-web-services kubernetes amazon-eks

14
推荐指数
3
解决办法
2万
查看次数

EKS ALB 无法自动发现子网

背景

  • 我有VPC3 个公共subnets(子网可以访问 Internet 网关)

  • 我在这个 VPC 中有一个 EKS 集群,EKS 集群是从控制台创建的,没有使用 eksctl

  • 我使用了官方 aws 文档中的教程,我设法设置了我的 ALB 控制器并且控制器运行完美:

集群包含两个节点组:

  • 第一个节点组有一个节点类型: t3a.micro
  • 第二个节点组有一个节点类型: t3.small
$ kubectl get deployment -n kube-system aws-load-balancer-controller
NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
aws-load-balancer-controller   1/1     1            1           60m
Run Code Online (Sandbox Code Playgroud)

我使用了他们的游戏示例,这是清单文件:

---
apiVersion: v1
kind: Namespace
metadata:
  name: game-2048
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: game-2048
  name: deployment-2048
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: app-2048
  replicas: 1
  template:
    metadata:
      labels:
        app.kubernetes.io/name: app-2048
    spec:
      containers:
      - …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-eks aws-application-load-balancer

14
推荐指数
3
解决办法
8771
查看次数

设置AWS EKS - 不知道配置的用户名和密码

我在AWS上设置EKS非常困难.我已经按照本教程:https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html#eks-launch-workers

我到达了~/.kube/config文件,当我尝试运行时,kubectl get svc我提示如下.

? kubectl get svc
Please enter Username: Alex
Please enter Password: ********
Error from server (Forbidden): services is forbidden: User 
"system:anonymous" cannot list services in the namespace "default"
Run Code Online (Sandbox Code Playgroud)

我不确定在哪里可以找到此条目的用户名和密码.请指出我可以找到此信息的确切位置.

我认为这也与EKS RBAC有关.我不知道如何在没有访问服务器的情况下解决这个问题.

amazon-web-services kubernetes kubectl amazon-eks

13
推荐指数
2
解决办法
4949
查看次数

加载命名空间时出错。未经授权:验证您有权访问 Kubernetes 集群

我已经使用命令行 eksctl 创建了一个 EKS 集群,并验证了该应用程序运行正常。

但是注意到一个奇怪的问题,当我尝试在 Web 浏览器中访问集群中的节点时,我看到以下错误

Error loading Namespaces
Unauthorized: Verify you have access to the Kubernetes cluster
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我能够看到节点使用 kubectl get nodes

我以管理员用户身份登录。关于如何解决这个问题的任何帮助都会非常好。谢谢。

amazon-web-services kubernetes amazon-eks

13
推荐指数
1
解决办法
1624
查看次数

使用 AWS Java SDK v2 从 AWS EKS 获取身份验证令牌

如何使用 AWS Java SDK v2 从 AWS EKS 获取 Kubernetes 身份验证令牌?然后可用于使用 Kubernetes SDK 向 Kubernetes 进行身份验证的身份验证令牌。换句话说,我想从 EKS 获取身份验证令牌以用于与 Kubernetes 的身份验证,这样我就不必创建“kube 配置”。

我实际上得到了一个使用 AWS Java SDK v1(而不是 v2)的解决方案,查看以下open issue中的代码示例。这里还有一个 Python 代码示例但我在使用 AWS Java SDK v2 时没有取得任何成功。我尝试使用 AWS Java SDK v2 执行此操作:

public static String getAuthenticationToken(AwsCredentialsProvider awsAuth, Region awsRegion, String clusterName) {
    try {
        SdkHttpFullRequest requestToSign = SdkHttpFullRequest
                .builder()
                .method(SdkHttpMethod.GET)
                .uri(new URI("https", String.format("sts.%s.amazonaws.com", awsRegion.id()), null, null))
                .appendHeader("x-k8s-aws-id", clusterName)
                .appendRawQueryParameter("Action", "GetCallerIdentity")
                .appendRawQueryParameter("Version", "2011-06-15")
                .build();

        ZonedDateTime expirationDate = DateUtil.addSeconds(DateUtil.now(), 60); …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes aws-sdk amazon-eks aws-java-sdk-2.x

12
推荐指数
1
解决办法
1991
查看次数

Terraform AWS EKS ALB Kubernetes Ingress 不会创建侦听器或目标组

我正在尝试使用 Terraform 资源创建一个带有 ALB 入口的 AWS EKS 集群。

该文档表明入口将自动创建一个带有关联侦听器和目标组的负载均衡器。

Kubernetes Ingress 创建 ALB 负载均衡器、安全组和规则,但不创建目标组或侦听器。我曾尝试使用网关或应用程序子网,但没有任何区别。我尝试设置安全组,但 ALB 设置并使用了它自己的自我管理的安全组。

我依赖本指南

ALB 的卷曲让我感到

无法连接到 de59ecbf-default-mainingre-8687-1051686593.ap-southeast-1.elb.amazonaws.com 端口 80:连接被拒绝

我分别创建了 IAM 角色和 ACM 证书,因为 AWS 对这些有配额限制。我的 EKS 集群和节点角色是标准的,节点角色附加了最新的策略。

我曾经kubectl单独应用 kubernetes 入口,但结果相同。它创建 ALB 和一个安全组,其中包含端口规则,但没有目标组或侦听器。

当我将集群端点粘贴aws eks describe-cluster --name my-tf-eks-cluster --query "cluster.endpoint"到浏览器中时,我得到以下信息:

{ "kind": "Status", "apiVersion": "v1", "metadata": { }, "status": "Failure", "message": "forbidden: User "system:anonymous" cannot get path "/ "", "reason": "Forbidden", "details": { }, "code": 403 }

此外,入口没有 IP 地址。 …

terraform kubernetes-ingress terraform-provider-aws amazon-eks

12
推荐指数
1
解决办法
2930
查看次数

Switch terraform 0.12.6 to 0.13.0 给了我 provider["registry.terraform.io/-/null"] 是必需的,但它已被删除

我在远程 terraform-cloud 中管理状态

我已经下载并安装了最新的 terraform 0.13 CLI

然后我删除了.terraform

然后我跑terraform init了,没有错误

然后我做了

? terraform apply -var-file env.auto.tfvars

Error: Provider configuration not present

To work with
module.kubernetes.module.eks-cluster.data.null_data_source.node_groups[0] its
original provider configuration at provider["registry.terraform.io/-/null"] is
required, but it has been removed. This occurs when a provider configuration
is removed while objects created by that provider still exist in the state.
Re-add the provider configuration to destroy
module.kubernetes.module.eks-cluster.data.null_data_source.node_groups[0],
after which you can remove the provider configuration again.

Releasing state lock. …
Run Code Online (Sandbox Code Playgroud)

terraform terraform-provider-aws amazon-eks

12
推荐指数
3
解决办法
7379
查看次数