当前位置: 首页 > news >正文

k8s中容器的调度与创建:CRI,cgroup

container调度与创建

在这里插入图片描述

选自:K8s、CRI与container - packy的文章 - 知乎
https://zhuanlan.zhihu.com/p/102897620

Cgroup创建:

cgexec -g cpu,memory:$UUID \
>     unshare -uinpUrf --mount-proc \
>     sh -c "/bin/hostname $UUID && chroot $ROOTFS /bin/sh"
/ echo "Hello from in a container" 

解释一下选项 -uinpUrf
在给定的命令 unshare -uinpUrf --mount-proc 中,选项 -uinpUrf 用于指定要创建的不同类型的命名空间。以下是每个选项的含义:

  1. -u:创建一个新的用户命名空间(User Namespace),允许在其中映射用户 ID 和用户组 ID。这样可以在命名空间中隔离用户的身份标识,提供更好的安全性。

  2. -i:创建一个新的 PID 命名空间(PID Namespace),允许在其中隔离进程 ID。这样可以使得在不同命名空间中的进程看到不同的进程 ID,实现进程隔离。

  3. -n:创建一个新的网络命名空间(Network Namespace),允许在其中隔离网络资源,包括网络接口、IP 地址、路由表等。这样不同的命名空间中的网络可以相互隔离,实现网络隔离。

  4. -p:创建一个新的 IPC 命名空间(Inter-Process Communication Namespace),允许在其中隔离进程间通信的资源,如消息队列、共享内存和信号量。这样不同命名空间的进程间通信无法相互影响,实现通信隔离。

  5. -U:创建一个新的 UTS 命名空间(UTS Namespace),允许在其中隔离主机名和域名信息。这样在不同的 UTS 命名空间中可以设置不同的主机名,实现主机隔离。

  6. -r:创建一个新的挂载命名空间(Mount Namespace),允许在其中隔离文件系统挂载点,提供了独立的文件系统视图。这样不同挂载命名空间中的文件系统挂载情况相互隔离,实现文件系统隔离。

综合这些选项的作用,通过指定 -uinpUrf 选项,unshare 命令会创建一个新的用户命名空间、PID 命名空间、网络命名空间、IPC 命名空间、UTS 命名空间和挂载命名空间,实现了多个方面的隔离,使得在新的命名空间中的进程能够有更好的隔离性。

http://www.lryc.cn/news/309216.html

相关文章:

  • Unity安装与简单设置
  • 数据库的介绍、分类、作用和特点
  • 【Unity】机器人末端执行器仿真
  • 更换个人开发环境后,pycharm连接服务器报错Authentication failed
  • E - Bad Juice
  • 用HTML5的<canvas>元素实现刮刮乐游戏
  • TypeScript + react 中 TypeScript 的加入后 , 有哪些优化项目
  • Redis学习路径(构建体系)
  • 【README 小技巧】 展示gitee中开源项目start
  • tcping实用小工具
  • 【Web】Java反序列化之CC2——commons-collections4的新链之一
  • golang使用gorm操作mysql1
  • Flutter异常上报及性能监控实现
  • 基于springboot+vue的工厂车间管理系统
  • Java基础 - Stream 流:Stream API的终端操作
  • 高级语言期末2009级A卷(计算机学院)
  • docker-compose搭建php开发环境
  • 翻译论文:Beating Floating Point at its Own Game: Posit Arithmetic(一)
  • 【数据结构-图论】并查集
  • 云计算时代的运维: 职业发展方向与岗位选择
  • java锁底层概述
  • win10如何添加指纹登陆
  • 足底筋膜炎的症状及治疗
  • udp丢包问题研究
  • 在idea中用模板骨架初始创建maven管理的web项目时没有src有关的目录的解决方案
  • WPF 【十月的寒流】学习笔记(2):MVVM中是怎么实现通知的
  • 数据结构:广义表
  • 你好,C++(18) 到底要不要买这个西瓜?4.1.6 操作符之间的优先顺序
  • C语言 for 循环语句的基本格式是什么?
  • 项目-SERVER模块-日志宏