ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-06-04 15:03:55  阅读:146  来源: 互联网

标签:01 cgroups 隔离 Kubernetes 03Kubernetes 进程 镜像 docker cpu


课程介绍与学习指南

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

Kubernetes之Docker必知必会

为什么需要Docker

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

Docker namespace隔离

  1. docker通过namespace实现进程间的隔离
  2. namespace隔离的类型
  • UTS Namespace隔离:提供了主机名与域名的隔离,这样每个docker容器就可以拥有独立的主机名和域名了,在网络上被视为一个独立的节点,而非宿主机上的一个进程
  • IPC Namespace隔离:进程间通信涉及的IPC资源包括常见的信号量、消息队列、共享内存;在同一个IPC namespace下的进程彼此可见,在不同IPC namespace下的进程批次不可见
  • PID Namespace隔离:pid namespace隔离非常实用,它对进程pid重新标号,在不同的name space下可以有相同的pid
  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镜像的特性
  • docker镜像具备了应用运行所需要的所有依赖
  • 一次构建,处处运行
  • docker镜像的存储是基于checksum的去重存储,大大降低存储空间
  1. docker镜像是如何存储的
  • docker镜像是分层存储的
  • docker镜像是增量存储的,如何看增量存储呢,需要到/var/lib/docker/overlay2/xxxxxxxxx/diff增量的区别

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有