在 Amazon EKS 上运行硝基飞地并在 pod 上获得 Insufficient humpages-2Mi

问题描述 投票:0回答:1

我正在关注这篇文章,以在 EKS 上使用 Nitro Enclaves。我的 Pod 向我发出警告并陷入待处理状态。

0/2 nodes are available: 2 Insufficient aws.ec2.nitro/nitro_enclaves, 2 
Insufficient hugepages-2Mi. preemption: 0/2 nodes are available: 
2 No preemption victims found for incoming pod.

在检查节点时,我看到以下内容:

kubectl describe node ip-x.us-east-2.compute.internal | grep -A 8 "Allocated resources:"
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests    Limits
  --------           --------    ------
  cpu                325m (4%)   0 (0%)
  memory             140Mi (0%)  340Mi (2%)
  ephemeral-storage  0 (0%)      0 (0%)
  hugepages-1Gi      0 (0%)      0 (0%)
  hugepages-2Mi      0 (0%)      0 (0%)

kubectl describe node ip-x.us-east-2.compute.internal | grep -A 13 "Capacity:"                                                                                                                                                                                          
Capacity:
  cpu:                8
  ephemeral-storage:  83873772Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             15896064Ki
  pods:               29
Allocatable:
  cpu:                7910m
  ephemeral-storage:  76224326324
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             14879232Ki
  pods:               29

Pod 定义包括:

"containers": [
      {
        "name": "hello-container",
        "image": "hello-f9c725ee-4d02-4f48-8c3f-f341a754061b:latest",
        "command": [
          "/home/run.sh"
        ],
        "resources": {
          "limits": {
            "aws.ec2.nitro/nitro_enclaves": "1",
            "cpu": "250m",
            "hugepages-2Mi": "100Mi"
          },
          "requests": {
            "aws.ec2.nitro/nitro_enclaves": "1",
            "cpu": "250m",
            "hugepages-2Mi": "100Mi"
          }
        },

我尝试过的事情: 在阅读了其他几篇文章后,尝试了垂直和水平扩展并重新启动了 Kubelet 服务,但没有成功,并且 Pod 仍然停留在待处理状态。

kubernetes amazon-eks kubectl huge-pages enclave
1个回答
0
投票

我认为这里可能存在两个潜在问题,一个与缺乏

hugepages-2Mi
有关,另一个与缺乏
aws.ec2.nitro/nitro_enclaves
有关。在此期间我将引用 https://docs.aws.amazon.com/enclaves/latest/user/kubernetes.html

对于

hugepages-2Mi
,请确保在步骤 1 中创建的启动模板实际应用于提供硝基的 EKS 节点组中的节点,并且在该启动模板上正确设置
user data
。请注意,如果您修改
user data
以提供 1024 倍数的 MB 数,而不是
hugepages-2Mi
,您将得到
hugepages-1Gi
,如步骤 5.1 下的
limits
中所述。

对于

aws.ec2.nitro/nitro_enclaves
,您需要确保 https://raw.githubusercontent.com/aws/aws-nitro-enclaves-k8s-device-plugin/main/aws-nitro- 提供了 DaemonSet 的 Pod enclaves-k8s-ds.yaml 正在启用硝基的节点上运行。它可能会丢失,因为 DaemonSet 未正确添加到您的 K8S,或者因为启用硝基的节点的节点标签不正确(它们应该是
aws-nitro-enclaves-k8s-dp=enabled
,应该在
kubectl describe node
中可见)。如果 DaemonSet Pod 实际上已启动并正在运行,它也可能存在问题。您可以通过
kubectl logs --namespace=kube-system -l name=aws-nitro-enclaves-k8s-dp --tail=1000

查看
© www.soinside.com 2019 - 2024. All rights reserved.