【k8s学习笔记-容器概念入门(二)-隔离与限制】

(又开了新坑,这次可要填满加油)

容器基础二:隔离与限制

隔离

概念解释

1、Namespace:是Linux 容器中用来实现“隔离”的技术手段,Namespace 技术实际上修改了应用进程看待整个计算机“视图”,即它的“视线”被操作系统做了限制,只能“看到”某些指定的内容
在这里插入图片描述2、docker engine:不等同于Hypervisor,并不像 Hypervisor 那样对应用进程的隔离环境负责,也不会创建任何实体的“容器”,真正对隔离环境负责的是宿主机操作系统本身
3、容器中的应用:用户运行在容器里的应用进程,跟宿主机上的其他进程一样,都由宿主机操作系统统一管理,只不过这些被隔离的进程拥有额外设置过的 Namespace 参数。而 Docker 项目在这里扮演的角色,更多的是旁路式的辅助和管理工作(docker甚至可以去掉?那由谁来替代呢)

容器化的特点

  1. 节省资源:采用虚拟机方式,每个虚拟机都需哟有一个操作系统,这会带来巨大的资源损耗,而采取容器化的方式也不需要单独的擦左系统,而且namespace占用的资源可以忽略不计
  2. 敏捷和高性能:这是最大的优势
  3. 隔离的不彻底:1)因为容器是运行在宿主机上的一种特殊的进程,多个容器共同使用一个宿主机的操作系统的内核;2)有很多资源和对象是不可以被namespace的,比如时间,也就是说整个系统的时间是统一在的,这会导致容器内的操作自由度是有一定限制的,有些可以做,有些就不可以做

限制

限制采用的技术

1)Linux Cgroups 就是 Linux 内核中用来为进程设置资源限制的一个重要功能,一是就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。二是对进程进行优先级设置、审计,以及将进程挂起和恢复等操作;2)Linux Cgroups 的设计就是一个子系统目录加上一组资源限制文件的组合,即为每一个容器创建一个控制组

限制不完善的地方

应用程序在容器里读取到的 CPU 核数、可用内存等信息都是宿主机上的数据,这会给应用的运行带来非常大的困惑和风险

总结

  1. 一个正在运行的 Docker 容器,其实就是一个启用了多个 Linux Namespace 的应用进程,而这个进程能够使用的资源量,则受 Cgroups 配置的限制。
  2. 隔离是用的namespace技术,但是无法实现彻底隔离;限制采用的是cgroups技术
  3. 容器是“单进程”模型:在一个容器中,你没办法同时运行两个不同的应用,除非你能事先找到一个公共的 PID=1 的程序来充当两个不同应用的父进程

小知识

1.pid是父进程

问题

1、centos是什么东西?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值