【Kubernetes运维篇】RBAC之准入控制器详解

文章目录

    • 一、ResourceQuota准入控制器
      • 1、ResourceQuota是什么?
      • 2、限制CPU、内存、Pod数量、Deployment数量
      • 3、限制存储空间大小
    • 二、LimitRanger准入控制器
      • 1、LimitRanger是什么?
      • 2、LimitRanger限制案例

一、ResourceQuota准入控制器

中文官方参考文档:

1、ResourceQuota是什么?

ResourceQuota准入控制器是K8S中内置的准入控制器,默认该控制器是启用状态,主要功能是限制名称空间下的资源使用,防止在一个名称空间下的Pod占用过多的资源,简单理解就是针对名称空间限制用户资源的使用。

2、限制CPU、内存、Pod数量、Deployment数量

第一步:创建 test 名称空间,针对这个名称空间做限制

kubectl create ns test

第二步:创建resourcequota资源限制CPU、内存、Pod数量、Deployment数量

cat resourcequota.yaml 
---
apiVersion: v1
kind: ResourceQuota
metadata: name: resourcequota-demonamespace: test            # 针对test名称空间限制
spec:hard:pods: "6"                # 限制Pod数量requests.cpu: "2"        # 限制CPU请求requests.memory: 2Gi     # 限制内存请求limits.cpu: "4"          # 限制CPU使用limits.memory: 10Gi      # 限制内存使用count/deployments.apps: "10"  # 限制deployments数量persistentvolumeclaims: "10"  # 限制PVC数量

参数解释:

资源名称描述
limits.cpu所有非终止状态的 Pod,其 CPU 限额总量不能超过该值。
limits.memory所有非终止状态的 Pod,其内存限额总量不能超过该值。
requests.cpu所有非终止状态的 Pod,其 CPU 需求总量不能超过该值。
requests.memory所有非终止状态的 Pod,其内存需求总量不能超过该值。
hugepages-<size>对于所有非终止状态的 Pod,针对指定尺寸的巨页请求总数不能超过此值。
cpurequests.cpu 相同。
memoryrequests.memory 相同。

第三步:查看test名称空间限制信息

kubectl describe quota -n test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TOPEINXn-1689485141312)(D:\MD归档文档\IMG\image-20230716113435632.png)]

3、限制存储空间大小

第一步:创建resourcequota资源限制存储空间大小

cat resourcequota-2.yaml 
---
apiVersion: v1
kind: ResourceQuota
metadata: name: resourcequota-demonamespace: test            # 针对test名称空间限制
spec:hard:requests.storage: "5Gi"              # 限制存储总容量persistentvolumeclaims: "5"          # 限制pvc总数requests.ephemeral-storage: "1Gi"    # 限制使用本地临时存储的下限总容量limits.ephemeral-storage: "2Gi"      # 限制使用本地临时存储上限总容量 

参数解释:

资源名称描述
requests.storage所有 PVC,存储资源的需求总量不能超过该值。
persistentvolumeclaims在该命名空间中所允许的 PVC 总量。
requests.ephemeral-storage在命名空间的所有 Pod 中,本地临时存储请求的总和不能超过此值
limits.ephemeral-storage在命名空间的所有 Pod 中,本地临时存储限制值的总和不能超过此值。

第二步:验证

kubectl describe quota -n test

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asiKagsR-1689485141313)(D:\MD归档文档\IMG\image-20230716115334720.png)]

二、LimitRanger准入控制器

1、LimitRanger是什么?

LimitRanger准入控制器是Kubernetes的一种资源配额管理机制,用于限制Pod的资源使用情况。它主要用于以下几个方面:

  • 设置容器的资源限制:LimitRanger可以强制要求每个Pod或容器设置资源限制,例如CPU使用量和内存使用量。这有助于避免某个Pod或容器过度消耗集群资源,导致其他应用程序受影响。

  • 强制执行资源限制:LimitRanger可以确保Pod或容器只使用指定的资源限制,通过对Pod的准入控制来强制执行这些限制。如果没有设置资源限制,在高负载情况下,一个应用程序可能消耗过多的资源,从而影响其他应用程序的稳定性。

  • 配额管理:LimitRanger可以与Kubernetes的配额管理机制一起使用,实现更精细的资源管理。通过设置配额限制,可以控制每个命名空间可用的资源总量,以及每个命名空间中每种资源的使用情况。

总的来说,LimitRanger准入控制器有助于确保资源的合理使用和分配,提高集群的可靠性和稳定性。

如果我们在创建Pod定义了资源上下限,但不满足LimitRanger规则中定义的资源上下限,此时LimitRanger会拒绝创建Pod资源,如果创建Pod时没有指定资源上下限,默认会使用LimitRanger规则中的资源上下限制

2、LimitRanger限制案例

第一步:创建limit 名称空间,针对limit名称空间做演示

kubectl create ns limit

第二步:配置LimitRanger规则

cat limitrange.yaml 
---
apiVersion: v1
kind: LimitRange
metadata:name: limitrange-demonamespace: limit
spec:limits:- default:               # 默认容器上限值cpu: 1000mmemory: 1000MidefaultRequest:        # 默认容器下限值cpu: 500mmemory: 500Mimin:                   # 创建Pod或Containerd中,requests字段值不得小于此值cpu: 500mmemory: 500Mimax:                   # 创建Pod或Containerd中,requests字段值不得大于此值cpu: 2000mmemory: 2000MimaxLimitRequestRatio:  # 指定资源的上限和下限的比值,即上限是下限的多少倍cpu: 4memory: 4type: Container        # 针对Container做限制,也可以是Pods
kubectl apply -f limitrange.yaml

第三步:查看规则信息

kubectl describe limitrange -n limit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8h2ws11W-1689485141314)(D:\MD归档文档\IMG\image-20230716131050591.png)]

第四步:测试默认上下限,创建Pod不指定限制,看是否使用LimitRanger规则中默认配置的值

cat limitrange-pod.yaml 
---
apiVersion: v1
kind: Pod
metadata:name: limit-pod-demonamespace: limit
spec:containers:- image: nginximagePullPolicy: IfNotPresentname: nginx
kubectl apply -f limitrange-pod.yaml

查看限制信息:

kubectl describe pod limit-pod-demo -n limit

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DsO8QRYx-1689485141314)(D:\MD归档文档\IMG\image-20230716131903333.png)]

第五步:测试CPU下限,创建Pod指定不合规的下限,看是否可以成功创建。

cat limitrange-pod-2.yaml 
---
apiVersion: v1
kind: Pod
metadata:name: limit-pod-demo-2namespace: limit
spec:containers:- image: nginximagePullPolicy: IfNotPresentname: nginxresources:requests:cpu: 100m   # 下限100m
kubectl apply -f limitrange-pod-2.yaml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YBmyTFXC-1689485141314)(D:\MD归档文档\IMG\image-20230716132249261.png)]

可以看到不能成功创建Pod,因为我们指定的下限不合规,我们在定义LimitRanger规则是下限不得小于500m,我创建Pod是指定下限是100m 所有无法创建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scrapy

scrapy介绍安装--架构 Scrapy 是一个爬虫框架&#xff08;底层代码封装好了&#xff0c;只需要在固定位置写固定代码即可&#xff09;&#xff0c;应用领域比较广泛---》爬虫界的django# 安装 #Windows平台1、pip3 install wheel #安装后&#xff0c;便支持通过wheel文件安装软…

c#调用cpp库,debug时不进入cpp函数

选中c#的项目&#xff0c;右击属性&#xff0c;进入属性页&#xff0c;点击调试&#xff0c;点击打开调试启动配置文件UI&#xff0c;打开启用本机代码调试。

相机标定学习笔记

Kalibr 是标定工具中&#xff0c;唯一一个可以标定camToImu的&#xff0c;是vio必不可少的工具&#xff0c;其他的都有替代品。所以学习多种开源算法进行相机标定&#xff0c;并记录学习相机标定的过程。 一、相机标定 1、在场景中放置一个已知的物体 &#xff08;1&#xff…

MySQL的四种主要存储引擎

目录 &#xff08;一&#xff09;MyISAM &#xff08;二&#xff09;InnoDB 1)自动增长列&#xff1a; 2)外键约束&#xff1a; &#xff08;三&#xff09;MEMORY &#xff08;四&#xff09;MERGE 什么是存储引擎&#xff1f; 对MySQL来说&#xff0c;它提供了存储不…

【wifi模块选型指导】数据传输WiFi模块的选型参考_USB/UART接口WiFi模块

数据传输WiFi模块有USB接口和UART接口两大类&#xff0c;为满足行业客户的不同应用需求&#xff0c;SKYLAB研发推出了多款2.4GHz单频&#xff0c;2.4/5GHz双频的USB接口WiFi模块和UART接口WiFi模块&#xff0c;数据传输能力&#xff0c;传输距离各有不同。怎么选才是最适合的呢…

基于ResNet50算法实现图像分类识别

概要 在本文中将介绍使用Python语言&#xff0c;基于TensorFlow搭建ResNet50卷积神经网络对四种动物图像数据集进行训练&#xff0c;观察其模型训练效果。 一、目录 ResNet50介绍 图片模型训练预测 项目扩展 二、ResNet50介绍 ResNet50是一种基于深度卷积神经网络&#xff…

性能测试需求分析怎么做?(中)

本系列文章我们为大家系统地介绍一下性能测试需求分析&#xff0c;让大家全面掌握性能测试的第一个环节。本系列文章将会从性能测试需求分析整体概述、性能测试需求分析内容、性能测试需求分析方法这三个方面进行展开。在&#xff08;上&#xff09;部分中&#xff0c;我们为大…

238. 除自身以外数组的乘积

题目描述&#xff1a; 主要思路&#xff1a; 正逆各扫一遍&#xff0c;利用数组存储当前数左边和右边的乘积。 class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int nnums.size();vector<int> ans;int l[n1],r[n1];l[0]1,…

python将dataframe数据导入MongoDB非关系型数据库

文章目录 pymongo连接新建数据库和集合pandas导入数据插入数据数据查看 pymongo连接 import pymongo client pymongo.MongoClient("mongodb://localhost:27017/") dblist client.list_database_names() for db in dblist:print(db) #查看已有数据库admin bilibil…

【kubernetes系列】kubernetes之计算资源管理

资源类型 在 Kubernetes 中&#xff0c;Node 提供资源&#xff0c;而 Pod 使用资源。其中资源分为计算&#xff08;CPU、Memory、GPU&#xff09;、存储&#xff08;Disk、SSD&#xff09;、网络&#xff08;Network Bandwidth、IP、Ports&#xff09;。这些资源提供了应用运行…

自动化测试之数据驱动与关键字驱动

目录 1.录制/回放的神话 2.数据驱动的自动化测试框架 3.关键字驱动的自动化测试 初次接触自动化测试时&#xff0c;对数据驱动和关键字驱动不甚理解&#xff0c;觉得有点故弄玄须&#xff0c;不就是参数和函数其嘛&#xff01;其实其也体现了测试所不同与开发的一些特点&…

目标检测——R-CNN网络基础

目录 Overfeat模型RCNN模型算法流程候选区域生成CNN网络提取特征目标分类&#xff08;SVM&#xff09;目标定位预测过程 算法总结 Fast RCNN模型算法流程ROI Pooling目标分类和回归 模型训练模型总结 Overfeat模型 RCNN模型 算法流程 候选区域生成 CNN网络提取特征 目标分类&am…

机器学习1

核心梯度下降算法&#xff1a; import numpy as np from utils.features import prepare_for_trainingclass LinearRegression:def __init__(self,data,labels,polynomial_degree 0,sinusoid_degree 0,normalize_dataTrue):"""1.对数据进行预处理操作2.先得到…

Python-Web框架flask使用

目录 1.Web框架 1.1 flask 1.1.1 debug调试 1.1.2 定义参数web服务 获取字符串 ​编辑 1.1.3 html网页渲染 1.13.1 带参数传给网页文件 普通元素 列表元素 字典元素 1.Web框架 1.1 flask python的web框架&#xff0c;目录结构如下&#xff1a; 1.static存放的是css,…

Windows7中使用SRS集成音视频一对一通话

SRS早就具备了SFU的能力&#xff0c;比如一对一通话、多人通话、直播连麦等等。在沟通中&#xff0c;一对一是常用而且典型的场景&#xff0c; 让我们一起来看看如何用SRS做直播和RTC一体化的一对一通话。 一、启动windows7-docker 二、拉取SRS镜像 执行命令:docker pull oss…

BTY生态系统DNS关于DeSoc的构想

2022年5月&#xff0c;以太坊创始人Vitalik Buterin与经济学家Glen Weyl和Flashbots研究员Puja Ohlhaver联合发布了《Decentralized Society: Finding Web3’s Soul》。这篇论文的核心是围绕“Web3灵魂”创造出去中心化社会的可能性。 论文中阐述&#xff0c;当下Web3 更多是表…

程序员如何准备技术面试

程序员如何准备技术面试 &#x1f607;博主简介&#xff1a;我是一名正在攻读研究生学位的人工智能专业学生&#xff0c;我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑&#xff0c;欢迎随时来交流哦&#xff01;&#x1f604; ✨座右…

Nacos服务注册和配置中心(Config,Eureka,Bus)1

SCA(Spring Cloud Alibaba)核心组件 Spring Cloud是若干个框架的集合&#xff0c;包括spring-cloud-config、spring-cloud-bus等近20个子项目&#xff0c;提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案,Spring C…

python_day11_practice

将文本数据插入数据库 两文本文件为day10面向对象练习案例 将data_define.py文件复制过来&#xff08;导入失败&#xff0c;疑惑&#xff09; 新建数据库&#xff0c;建表orders -- CREATE DATABASE py_sql charset utf8;use py_sql;create table orders(order_date date,…

从0到1构建证券行业组织级项目管理体系的探索与实践︱东吴证券PMO负责人娄鹏呈

东吴证券股份有限公司信息技术总部PMO负责人娄鹏呈先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;从0到1构建证券行业组织级项目管理体系的探索与实践。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&a…