请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

本文来自

边缘计算专区

边缘计算专区

人已关注

请添加对本版块的简短描述

精选帖子

k8s apiserver --v  日志级别
k8s apiserver --v 日志级别
0阅读|241人阅读
阿里云CDN计费
阿里云CDN计费
0阅读|514人阅读
信用卡空当接龙
信用卡空当接龙
0阅读|536人阅读
HTTP/1.0和HTTP/1.1、HTTP/2请求对比
HTTP/1.0和HTTP/1.1、HTTP/2请求对比
3阅读|931人阅读

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

[复制链接]
470 abc 发表于 2019-8-11 21:26:17
如何配置命名空间的默认内存请求和限制。如果在具有默认内存限制的命名空间中创建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未指定其自己的内存限制,则会为其指定默认限制,然后可以允许它在受配额限制的命名空间中运行。
https://idc.wanyunshuju.com/K8S/584.html

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表