kubernetes 中未指定资源时,默认分配是什么?

what is the default allocation when resources are not specified in kubernetes?

以下为kubernetes POD定义

apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

因为我没有指定资源,所以会分配多少内存&CPU?是否有 kubectl 可以找到分配给 POD 的内容?

如果没有为Pod指定资源,Pod会被调度到任意节点,选择节点时不考虑资源。

如果 Pod 使用的内存多于可用内存或获得很少的 CPU 时间,则 Pod 可能会“终止”,因为 Pods 具有指定资源的资源将被优先处理。为您的 Pods.

设置资源是一个好习惯

参见 Configure Quality of Service for Pods - 您的 Pod 将被归类为“尽力而为”:

For a Pod to be given a QoS class of BestEffort, the Containers in the Pod must not have any memory or CPU limits or requests.

在您的情况下,kubernetes 会将名为 BestEffortQoS 分配给您的广告连播。 这意味着 kube-scheduler 不知道如何安排您的广告连播并尽力而为。

这也意味着您的 pod 可以使用它想要的任何数量的资源(cpu/mem)(但是如果出现任何问题,kubelet 将驱逐它)。

要查看您的 pod 的资源成本,您可以使用 kubectl top pod xxxx