其他分享
首页 > 其他分享> > Kubernetes 入门到进阶实战-01课程导学, 03Kubernetes之Docker必知必会

Kubernetes 入门到进阶实战-01课程导学, 03Kubernetes之Docker必知必会

作者:互联网

课程介绍与学习指南

  1. 无人指引kubernets入门,环境搭建困难
  2. kubernetes安装复杂,概念多,看了就忘,缺乏实战环节
  3. 生产环境需要应用配置分离,网络配置,配额管理,应用监控
  4. 框架图

Kubernetes之Docker必知必会

为什么需要Docker

docker启动秒级,硬盘占用MB,性能接近原生,单机支持上千个容器。
docker有这样的性能就是为了云原生的部署,docker+kubernetes发展如此之快就是为了云原生大规模的容器化部署。

Docker namespace隔离

  1. docker通过namespace实现进程间的隔离
  2. namespace隔离的类型
  1. unshare命令的使用
    unshare --fork --pid --mount-proc bash
    ps aux
    通过该命令我们进入了一个新的进程空间,该进程空间中只有两个进程。

CGroups实现资源配额

  1. docker使用cgroups实现资源的配额管理
  2. cgroups限制进程的cpu使用时间,docker中的cpu、内存、网络的限制均通过cgroups来实现
  3. 在linux创建一个让CPU飙升到100%的进程
    while :; do :; done&
    3.1 查看进程ip
    htop
    结果是25717, 记住留着在下面通过cgroups设置资源上限限制的时候使用
  4. 进入linux的cgroups查看(因为Linux一切皆文件的特性)
cd /sys/fs/cgroup/cpu  // 进入cpu目录
sudo mkdir cgroups_test  // 随便创建一个目录
cd cgroups_test
cat cpu.cfs_quota_us  // 结果显示-1, -1的意思就是不做任何的限制
cat tasks  // 结果为空,也就是说当前配额没有和linux操作系统中的任何进程关联,所有配额没有任何意义,不生效
su root  // 切换到root用户
echo 20000 > cpu.cfs_quota_us  // 设置配额上限,cpu的使用时长不超过20ms(20000um),也就是20%的CPU时间
echo 25717 > tasks  // 设置当前进程为20%的CPU时间
  1. 查看docker是不是用的cgroups技术
 sudo docker container run --rm -it --cpus=".5" nginx:stable sh  // 创建并运行容器
cd /sys/fs/cgroup/cpu  // 切换到cpu目录下
cat cpu.cfs_quota_us  // 查看cpu限额,结果显示50000us,也就是我们刚刚启动容器时设置的--cpus=".5", 这就是当前进程CPU的配额

Docker镜像特性与原理

  1. docker镜像的由来
    虽然docker实现了运行环境的隔离,但是如何讲一个容器快速的进行启动、复制、迁移到其它主机上运行?
    如果容器无法进行快速的复制、迁移,那么和以vmware为代表的虚拟化技术没有太多优势
  2. docker镜像的特性
  1. docker镜像是如何存储的

标签:01,cgroups,隔离,Kubernetes,03Kubernetes,进程,镜像,docker,cpu
来源: https://www.cnblogs.com/mayanan/p/16341866.html