我正在尝试在命令行运行此命令:
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:*
,有人知道吗?
我正在进行 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) **无法连接到服务器:获取凭据:解码标准输出:方案“pkg/client/auth/exec/exec.go”中的版本“client.authentication.k8s.io/v1alpha1”没有注册任何类型“ExecCredential”: 62 英寸\n**
\n2022-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) 在 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 地址到哪里去了?
背景:
我有VPC
3 个公共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
我在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有关.我不知道如何在没有访问服务器的情况下解决这个问题.
我已经使用命令行 eksctl 创建了一个 EKS 集群,并验证了该应用程序运行正常。
但是注意到一个奇怪的问题,当我尝试在 Web 浏览器中访问集群中的节点时,我看到以下错误
Error loading Namespaces
Unauthorized: Verify you have access to the Kubernetes cluster
Run Code Online (Sandbox Code Playgroud)
我能够看到节点使用 kubectl get nodes
我以管理员用户身份登录。关于如何解决这个问题的任何帮助都会非常好。谢谢。
如何使用 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
我正在尝试使用 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
我在远程 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) amazon-eks ×10
kubernetes ×6
kubectl ×2
terraform ×2
aws-application-load-balancer ×1
aws-sdk ×1
ubuntu-16.04 ×1