Kubernetes如何知道资源请求和限制?

时间:2019-05-07 14:16:06

标签: kubernetes

这是一个已创建要在kubernetes中部署的Yaml文件。我想知道既然文件中没有资源请求和限制,那么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

3 个答案:

答案 0 :(得分:1)

您可以“ kubectl描述”您的pod,并查看分配了哪些实际资源。借助LimitRange,Kubernetes可以为pod分配默认请求和限制(如果不是其规范的一部分)。

如果未分配请求/限制-您的pod的服务质量将达到Best Effort,如果节点上的资源紧张,则可以将其驱逐。

答案 1 :(得分:1)

您可以按照以下步骤获取分配给广告连播的资源限制。

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}'

答案 2 :(得分:1)

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

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