docker安全

本文通过实验展示如何在容器环境中设置和调整CPU与内存资源限制,包括对比容器与虚拟机的资源使用情况,深入探讨cgroup机制及namespace概念,以及如何在Kubernetes中应用这些资源限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统基础安全实验

创建出的容器内存大小与虚拟机一致
docker run -it --name vm1 ubntu
查看内存状态free -m
对比虚拟机和容器
在这里插入图片描述
查看容器进程的namespace
在这里插入图片描述
可以看到vm1容器的namespace有六个
查看cgroup进程的路径
在这里插入图片描述
在/sys/fs/cgroup下
在这里插入图片描述
依次查看cpu,内存和容器的目录下的文件
在这里插入图片描述
在memory目录下新建目录时直接会从上级目录继承
在memory目录下创建一个文件夹x1
在这里插入图片描述
进入到x1文件目录下查看
在这里插入图片描述
对比可以看到x1文件目录下的文件基本与其父目录memory文件内容一致
因为没有人为的创建文件
对比创建容器的id与其原名称的差距
在创建容器的时候会在/sys/fs/cgroup/memory/docker这个目录底下生成相应容器id的文件夹
创建容器并查看容器的id
在这里插入图片描述

在/sys/fs/cgroup/memory/docker文件夹下查看容器的原始id
在这里插入图片描述
对比两者不难发现,在查询的容器的id只是其真实id的一部分

在其id的文件夹下查看对于内存的限制会看到一个数字,不过这么大的数字基本就是接近无限的意思
在这里插入图片描述

对cpu进行资源限制

实验环境是只有一个cpu
与memory文件夹一样,在cpu目录下创建一个x1文件夹,来继承父目录cpu下的文件配置
在这里插入图片描述
查看其目录下的几个文件了解cpu对于系统的限制,其中数值-1表示对系统没有限制

cat cpu.cfs_period_us

##查看cpu限制的长度

 cat cpu.cfs_quota_us

##对于时间的限制

dd if=/dev/zero of=/dev/null &

##占用cpu

top

##查看cpu的占有率

在这里插入图片描述
在这里插入图片描述
此时cpu已经被沾满了
对cpu的资源进行限制
在x1
将cpu限制的长度修改为20000
将20000这个数值导入到限制cpu长度的文件夹
在这里插入图片描述
发现现在cpu的占用率还是在100%徘徊
在这里插入图片描述
将cpu的PID导入到tasks文件中,并再次查看

在这里插入图片描述
在这里插入图片描述
可以看到cpu的占有率被很好的控制在20%左右
将对应的进程杀死就在tasks文件里面看不到PID了
在这里插入图片描述
在容器环境下对cpu进行限制
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:

  • kind: ServiceAccount
    name: admin-user
    namespace: kube-system

apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system

apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system


apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:

  • kind: ServiceAccount
    name: admin-user
    namespace: kube-system
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值