配置Kubernetes命名空间的默认内存请求和限制

如何配置命名空间的默认内存请求和限制。如果在具有默认内存限制的命名空间中创建Container,并且Container未指定其自己的内存限制,则会为Container分配默认内存限制。Kubernetes在某些条件下分配默认内存请求。

要检查版本,请输入kubectl version。

群集中的每个节点必须至少具有2 GiB的内存。

创建命名空间

创建命名空间,以便在此练习中创建的资源与群集的其余部分隔离。

kubectl create namespace default-mem-example

创建LimitRange和Pod

这是LimitRange对象的配置文件。配置指定默认内存请求和默认内存限制。

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

在default-mem-example命名空间中创建LimitRange:

kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults.yaml --namespace=default-mem-example

现在,如果在default-mem-example命名空间中创建了Container,并且Container没有为内存请求和内存限制指定自己的值,则会向Container提供256 MiB的默认内存请求,默认内存限制为512 MiB 。

这是具有一个Container的Pod的配置文件。Container未指定内存请求和限制。

apiVersion: v1
kind: Pod
metadata:
  name: default-mem-demo
spec:
  containers:
  - name: default-mem-demo-ctr

    image: nginx

创建Pod

kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults-pod.yaml --namespace=default-mem-example

查看Pod的详细信息

kubectl get pod default-mem-demo --output=yaml --namespace=default-mem-example

输出显示Pod的Container具有256 MiB的内存请求和512 MiB的内存限制。这些是LimitRange指定的默认值。

containers:
- image: nginx
  imagePullPolicy: Always
  name: default-mem-demo-ctr
  resources:
    limits:
      memory: 512Mi
    requests:
      memory: 256Mi

删除你的Pod

kubectl delete pod default-mem-demo --namespace=default-mem-example

如果指定Container的限制但不指定其请求,该怎么办?

这是具有一个Container的Pod的配置文件。Container指定内存限制,但不指定请求:

apiVersion: v1
kind: Pod
metadata:
  name: default-mem-demo-2
spec:
  containers:
  - name: default-mem-demo-2-ctr
    image: nginx
    resources:
      limits:
        memory: "1Gi"

创建Pod

kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults-pod-2.yaml --namespace=default-mem-example

查看Pod的详细信息

kubectl get pod default-mem-demo-2 --output=yaml --namespace=default-mem-example

输出显示Container的内存请求设置为与其内存限制匹配。请注意,未向Container分配默认的内存请求值256Mi。

resources:
  limits:
    memory: 1Gi
  requests:
    memory: 1Gi

默认内存限制和请求的动机

如果您的命名空间具有资源配额,则为内存限制设置默认值会很有帮助。以下是资源配额对命名空间施加的两个限制:

在命名空间中运行的每个Container都必须具有自己的内存限制。

命名空间中所有Container使用的内存总量不得超过指定的限制。

如果Container未指定其自己的内存限制,则会为其指定默认限制,然后可以允许它在受配额限制的命名空间中运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值