[k8s] ctn

 

[install]
yum -y install docker
vi
/etc/docker/daemon.json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn" ] }
systemctl restart docker

 

[install iproute]
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum install iproute -y

ip addr

 

[ctn create network]

docker network create --driver bridge --subnet 173.18.0.0/16 --gateway 173.18.0.1 servicebridge01

 

[1. 容器资源限额]

# ①运行一个压力测试容器,实践容器内存分配限额。
docker run -it -m 200M hub.c.163.com/combk8s/jess/stress --vm 1 --vm-bytes 150M
docker run -it -m 200M hub.c.163.com/combk8s/jess/stress --vm 1 --vm-bytes 250M

# ②运行一个压力测试容器,实践容器内存和swap分配限额。
docker run -it -m 300M --memory-swap=400M hub.c.163.com/combk8s/jess/stress --vm 2 --vm-bytes 100M

# ③运行一个压力测试容器,实践容器CPU使用限额。
docker run -it --cpus=0.6 hub.c.163.com/combk8s/jess/stress --vm 1

# ④在容器运行终端Ctrl+c后,然后运行压力测试容器,实践容器CPU权重限额。依次运行三个压力测试容器,让宿主机CPU使用出现竞争。
docker run -itd --cpu-shares 2048 hub.c.163.com/combk8s/jess/stress --cpu 1
docker run -itd --cpu-shares 1024 hub.c.163.com/combk8s/jess/stress --cpu 1
docker run -itd --cpu-shares 512 hub.c.163.com/combk8s/jess/stress --cpu 1

# ⑤运行一个测试容器,实践容器IO限额。
docker run -it --device-write-bps /dev/vda:50MB hub.c.163.com/library/centos
time dd if=/dev/zero of=test.out bs=1M count=200 oflag=direct

 

[2. CGroup]

# ①运行压力测试容器,验证内存限额cgroup配置。
docker run -itd -m 300M --memory-swap=400M hub.c.163.com/combk8s/jess/stress --vm 2 --vm-bytes 100M
docker container ls

cd /sys/fs/cgroup/memory/docker/容器长ID/
按照容器ID,查询cgroup内存子系统验证其内存限额配置。
(cgroup内存子系统所在路径为
/sys/fs/cgroup/memory/docker/容器长ID/
内存限额配置在memory.limit_in_bytes和memory.memsw.limit_in_bytes文件内。
# ②运行压力测试容器,验证CPU使用限额cgroup配置。 docker run -itd --cpus=0.7 hub.c.163.com/combk8s/jess/stress --vm 1 docker container ls top ctrl+c结束。按照容器ID,查询cgroup cpu子系统验证其CPU使用限额配置。
(cgroup cpu子系统所在路径为/sys/fs/cgroup/cpu/docker/容器长ID/
CPU使用限额配置在cpu.cfs_quota_us和cpu.cfs_period_us文件内。 注意:请使用第2步中的container ID替换命令中的【容器长ID】 cd
/sys/fs/cgroup/cpu/docker/容器长ID / # ③运行压力测试容器,验证CPU权重限额cgroup配置。 docker run -itd --cpu-shares 2048 hub.c.163.com/combk8s/jess/stress --cpu 1 docker run -itd --cpu-shares 1024 hub.c.163.com/combk8s/jess/stress --cpu 1 docker run -itd --cpu-shares 512 hub.c.163.com/combk8s/jess/stress --cpu 1 cat /sys/fs/cgroup/cpu/docker/容器长ID/cpu.shares # ④运行测试容器,验证IO限额cgroup配置。 docker run -it --device-write-bps /dev/vda:70MB hub.c.163.com/library/centos cat /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device exit lsblk

 

[3.Namespace]

# ①UTS Namespace
创建测试容器,分别在容器和宿主机验证主机名。
docker run -d -t -h container hub.c.163.com/library/centos
docker exec -it 容器ID bash
hostname
exit

hostname

# ②PID Namespace
docker exec命令进入容器验证容器进程信息。容器ID通过container ls命令确认。
docker container ls
docker exec -it 容器ID sh
ps
exit

ps -aux | grep dockerd

# ③User Namespace

运行测试容器,在容器内创建用户。退出容器,然后在宿主机验证用户名信息。

docker run -it hub.c.163.com/library/centos
useradd container
su - container
exit
exit

su - container

 

posted on 2025-04-12 11:06  天涯人  阅读(17)  评论(0)    收藏  举报

导航