【问题标题】:How Kubernetes knows resource requests and limits?Kubernetes 如何知道资源请求和限制?
【发布时间】:2019-05-08 01:31:01
【问题描述】:

这是一个 yaml 文件,该文件已创建以部署在 kubernetes 中。我想知道由于文件中没有资源请求和限制,kubernetes如何知道资源请求和限制来运行它?我如何获取这些信息?

apiVersion: v1
 kind: Pod
 metadata:
   name: rss-site
   labels:
     app: web
 spec:
   containers:
     - name: front-end
       image: nginx
       ports:
         - containerPort: 80
     - name: rss-reader
       image: nickchase/rss-php-nginx:v1
       ports:
         - containerPort: 88

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您可以“kubectl describe”您的 pod 并查看分配了哪些实际资源。使用 LimitRange Kubernetes 可以将默认请求和限制分配给 pod,如果不是其规范的一部分。

    如果没有分配请求/限制 - 您的 pod 将变为Best Effort 服务质量,并且可以在节点资源压力的情况下被驱逐。

    【讨论】:

      【解决方案2】:

      您可以使用以下步骤来获取分配给 pod 的资源限制。

      Create the pod
      -------------------
      kubectl run test-resource-limits --image=busybox --limits "memory=100Mi" \
        --command -- /bin/sh -c "while true; do sleep 2; done"
      
      Test the resource limits that are specified
      -------------------------------------------
      kubectl get pods test-resource-limits-7b8b46c8c7-jdjgs  \
        -o=jsonpath='{.spec.containers[0].resources}'
      

      【讨论】:

        【解决方案3】:

        如果您不指定资源请求和限制。 Kubernetes 将在没有它们的情况下运行您的工作负载。这意味着您的 pod 可能会使用节点上的所有 CPU 和 RAM。

        请注意;如果您的命名空间的默认值设置为 limitRange,则默认值将应用于未指定资源规范的工作负载。

        【讨论】:

          猜你喜欢
          • 2022-11-04
          • 2019-10-03
          • 1970-01-01
          • 2020-10-12
          • 1970-01-01
          • 2018-05-11
          • 2018-08-27
          • 1970-01-01
          • 2020-04-21
          相关资源
          最近更新 更多