AWS EKS 0/1 节点可用。1 个不足的豆荚

sne*_*gin 10 kubernetes amazon-ecr kubernetes-pod amazon-eks

我们正在尝试使用 ECR 将 dot net core API 服务部署到亚马逊 EKS。部署成功,但 Pod 处于挂起状态。以下是我们遵循的详细步骤。

步骤随之而来。1. 创建了一个 docker 镜像 2. 将镜像推送到 ECR。该图像现在也可以在 aws 控制台中看到。// 图像看起来不错,我可以在本地使用我的 docker 运行它。

  1. 创建一个 t2-micro 集群如下 eksctl create cluster --name net-core-prod --version 1.14 --region us-west-2 --nodegroup-name standard-workers --node-type t2.micro --nodes 1 --nodes-min 1 --nodes-max 1 –managed // 集群和节点组创建成功。// IAM 角色也被创建

  2. 使用附加的 json/yaml//net-app.json 部署复制控制器 在此处输入图片说明

  3. 使用附加的 json/yaml //net-app-scv.json 部署服务 在此处输入图片说明
  4. get all 命令返回了这个。//get_all.png 得到所有 POD 始终处于 PENDING 状态。

  5. Pod describe 给出了以下结果 //describe_pod.png 描述豆荚

  6. 我们还尝试向集群 IAM 角色添加策略以包含附加的 ECR 权限。//ECR_policy.json

要点:
1. 我们使用的是 t2-micro 实例集群,因为它是 AWS 免费账户。
2.我们创建了一个linux集群并尝试推送dotnet core app。//这在我们的本地机器
3 上运行良好。集群只有 1 个节点 //-nodes 1 --nodes-min 1 --nodes-max 1

有人可以指导我们如何正确设置它。

Muh*_*man 27

在 Amazon Elastic Kubernetes Service ( EKS) 上,每个节点的最大 Pod 数取决于节点类型,范围为 4 到 737。

如果达到最大限制,您将看到如下内容:

? kubectl get node -o yaml | grep pods
      pods: "17" => this is allocatable pods that can be allocated in node
      pods: "17" => this is how many running pods you have created
Run Code Online (Sandbox Code Playgroud)

如果你只得到一个数字,它应该是可分配的。计算所有正在运行的 Pod 的另一种方法是运行以下命令:

kubectl get pods --all-namespaces | grep Running | wc -l
Run Code Online (Sandbox Code Playgroud)

以下是每个节点类型的最大 Pod 列表:https : //github.com/awslabs/amazon-eks-ami/blob/master/files/eni-max-pods.txt

在 Google Kubernetes Engine ( GKE) 上,限制为每个节点 110 个 pod。检查以下网址:

https://github.com/kubernetes/community/blob/master/sig-scalability/configs-and-limits/thresholds.md

在 Azure Kubernetes 服务 ( AKS) 上,默认限制为每个节点 30 个 pod,但可以增加到 250。每个节点的默认最大 pod 数量因 kubenet 和 Azure CNI 网络以及集群部署方法而异。检查以下 URL 以获取更多信息:

https://docs.microsoft.com/en-us/azure/aks/configure-azure-cni#maximum-pods-per-node


Raj*_*pta 11

问题是您正在使用t2.micro. 至少t2.small需要。调度程序无法在节点上调度 pod,因为t2.micro实例上没有足够的可用容量。大部分容量已被系统资源占用。尽量t2.small少用。

  • 我使用的是 t3.micro,但它还不够,因此添加了另一个大小为 t3.small 的节点组来解决该问题。 (3认同)

sne*_*gin -2

更新:我尝试将节点数增加到 6,现在可以正常工作了。

已经安排了 4 个 kube-system pod,因此尝试将其增加到 6 个。

我不擅长 Kubes,这只是反复试验的结果。

如果有经验的人可以阐明它是如何工作的,这将非常有用。