容器中的程序要运行,肯定是要占用一定资源的,比如cpu和内存等,如果不对某个容器的资源做限制,那么它就可能吃掉大量资源,导致其它容器无法运行。针对这种情况,kubernetes提供了对内存和cpu的资源进行配额的机制,这种机制主要通过resources选项实现,他有两个子选项:

  • limits:用于限制运行时容器的最大占用资源,当容器占用资源超过limits时会被终止,并进行重启

  • requests :用于设置容器需要的最小资源,如果环境资源不够,容器将无法启动

可以通过上面两个选项设置资源的上下限。

接下来,编写一个测试案例,创建pod-resources.yaml

apiVersion: v1
kind: Pod
metadata:name: pod-resourcesnamespace: dev
spec:containers:- name: nginximage: nginx:1.17.1resources: # 资源配额limits:  # 限制资源(上限)cpu: "2" # CPU限制,单位是core数memory: "10Gi" # 内存限制requests: # 请求资源(下限)cpu: "1"  # CPU限制,单位是core数memory: "10Mi"  # 内存限制

在这对cpu和memory的单位做一个说明:

  • cpu:core数,可以为整数或小数

  • memory: 内存大小,可以使用Gi、Mi、G、M等形式

# 运行Pod
[root@k8s-master01 ~]# kubectl create  -f pod-resources.yaml
pod/pod-resources created# 查看发现pod运行正常
[root@k8s-master01 ~]# kubectl get pod pod-resources -n dev
NAME            READY   STATUS    RESTARTS   AGE
pod-resources   1/1     Running   0          39s   # 接下来,停止Pod
[root@k8s-master01 ~]# kubectl delete  -f pod-resources.yaml
pod "pod-resources" deleted# 编辑pod,修改resources.requests.memory的值为10Gi
[root@k8s-master01 ~]# vim pod-resources.yaml# 再次启动pod
[root@k8s-master01 ~]# kubectl create  -f pod-resources.yaml
pod/pod-resources created# 查看Pod状态,发现Pod启动失败
[root@k8s-master01 ~]# kubectl get pod pod-resources -n dev -o wide
NAME            READY   STATUS    RESTARTS   AGE
pod-resources   0/1     Pending   0          20s    # 查看pod详情会发现,如下提示
[root@k8s-master01 ~]# kubectl describe pod pod-resources -n dev
......
Warning  FailedScheduling  35s   default-scheduler  0/3 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 2 Insufficient memory.(内存不足)

Pod详解-资源配额相关推荐

  1. 学习笔记之-Kubernetes(K8S)介绍,集群环境搭建,Pod详解,Pod控制器详解,Service详解,数据存储,安全认证,DashBoard

    笔记来源于观看黑马程序员Kubernetes(K8S)教程 第一章 kubernetes介绍 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...

  2. kubernetes—Pod详解

    Pod详解 前言 Pod介绍 Pod结构 Pod定义 pod的几种基础配置 概述 基本配置(name,image) 镜像拉取(imagePullPolicy) 启动命令(command和args) 环 ...

  3. Kuberneters(2)- Pod详解

    第四章 实战入门 本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问. Namespace ​ Namespace是kubernetes系统中的一种非常重要资源, ...

  4. 玩转k8s:Pod详解

    1 Pod详解 1.1 Pod介绍 1.1.1 Pod结构 每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少 Pause容器,这是每个Pod都会有的一个 ...

  5. 【k8s】八、Pod详解(二)

    目录 前言 Pod网络通讯方式 不同情况下的网络通讯方式 同一个Pod内部通讯 Pod间的通讯 Pod 与 Service之间的通讯 Pod与外网通讯 Pod到外网 外网到Pod CNI 什么是CNI ...

  6. 江礼坤:详解资源合作推广

    江礼坤:详解资源合作推广之一 有三个多月没有写文章和更新博客了,很多朋友问俺是不是退出江湖了,其实不是俺变懒了,相反的,最近三个多月,写死俺了.因为这几个月在闭门写书,写的是天晕地暗,写了差不多三十来 ...

  7. k8s之Pod详解(五)【Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级)】

    参考于Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级) Pod Pod的结构 每个Pod中都可以包含一个或者多个容器 这些容器可以分为两类: 用户自定义用的 ...

  8. k8s pod 详解

    https://www.cnblogs.com/kevingrace/p/11309409.html 一.什么是Pod kubernetes中的一切都可以理解为是一种资源对象,pod,rc,servi ...

  9. k8s(二)——— pod 详解

    Pod Pod 的基本操作 创建pod 1. 先定义模板文件 examplepod.yaml apiVersion: v1 kind: Pod metadata:name: examplepod sp ...

最新文章

  1. 绑定域名_[云丰网]如何绑定第三方购买的域名?
  2. Visual Studio 2017常用快捷键(小白入)
  3. 深度解读NLP文本情感分析Pipeline
  4. python无参数装饰器_python_之无参装饰器_01
  5. java蓝桥杯算法训练 求1000以内的完数(题解)
  6. 中间人攻击利用框架bettercap测试
  7. 计算机电源检测软件,电脑电源检测工具
  8. 微信小程序开发之视频上传
  9. 方舟生存计划怎么删除服务器信息,方舟服务器怎么删除玩家数据 | 手游网游页游攻略大全...
  10. 如何更好更快的站在巨人的肩膀上?
  11. 中国邮政国际挂号信网上查询
  12. golang学习笔记(6)-gorm实现查询功能
  13. 计算机毕设(附源码)JAVA-SSM快递代收系统
  14. 面向NDN的网络攻击检测技术分析
  15. 35岁以后不建议裸辞
  16. 红色警戒3原版V1.00基址大全
  17. 计算机技术中的多媒体是什么,在多媒体计算机技术中,媒体含义一般指()。A中介B介质C信息的载体D存储介质 - 试题答案网问答...
  18. 特么的. 最终把 amobbs 的站长阿莫(莫进明)给回骂了一顿.
  19. 打造次世代分析型数据库(四):几十张表关联?小Case!
  20. 阿里云ECS服务器购买及配置,SpringBoot项目部署到阿里云ECS服务器,阿里云ECS服务器安装JDK、Mysql、nginx详细步骤

热门文章

  1. C# 3.0 扩展方法
  2. Visual Studio Code(VS code)介绍
  3. linux——mysql5.5 安装遇到问题总结解决方式
  4. 绕过CDN查找网站真实IP方法收集
  5. windows下nodejs环境配置
  6. 【深入理解JVM】JVM字节码指令集
  7. JSP学习总结:2006
  8. Android笔记之平移View
  9. chrome下input[type=text]的placeholder不垂直居中的问题解决
  10. Linux C Socket编程发送结构体、文件详解及实例