Kubernets(一)基本概念理解

AI 摘要: 本文主要介绍了Docker的发展历程,以及关键概念Namespace和CGroup的作用。Docker在容器编排领域有着优势,通过与其他项目的整合,提供了丰富的容器生态。此外,还介绍了Docker的改名和RedHat对CoreOS的收购。

小鲸鱼大事记

docker

  • 容器运行时:Libcontainer
  • CoreOS、RedHat、微软与Google利益
  • OCI(Open Container Initiative),容器运行时和镜像实现从Docker项目剥离出来,作为标准容器与镜像的标准与规范
  • CNCF(云原生基金会)
    • Swarm :与Docker无缝集成
    • Mesos: 大规模集群调度与管理
  • Kubernets:
    • Pod、Sidecar功能和设计模式
    • Borg、Omega系统内部特性
  • 三国对立
    • RedHat与Google联盟
    • Docker
    • Mesos借势
  • 容器编排领域优势
  • CNCF
    • Fulentd、OpenTracing、CNI容器生态
    • 知名工具与项目
    • Istio
    • Operator
    • Rook,Kubernets扩展接口,把Ceph重量级产品封装入简单易用的容器存储插件
  • Docker改名Moby,交给社区维护,占有Docker注册商标
  • 2018/1/30 RedHat收购CoreOS

关键概念

Namespace

  1. 二进制文件,可执行文件
  2. OS读取执行文件,加载进内存。执行CPU相关指令,CPU与内存协作执,同时使用寄存器存放数值、内存堆栈保存执行命令和变量。打开文件、I/O设备不断变化状态,集成在一起,就是进程
  3. 容器核心技术就是,通过约束和修改进程动态表现,从而为其创造一个边界
  4. Cgroups技术制造约束的主要手段,Namespace修改进程视图主要方法
  5. NameSpace
    1. PID NameSpace
    2. Mount
    3. UTS
    4. IPC
    5. Network
    6. User
  6. Docker容器,创建容器进程,指定需要启动Namespace,容器仅看到当前Namespace所限定资源、文件、设备、状态、配置

CGroup

  • Linux Control Group,限制进程组能够使用资源的上限,CPU、内存、磁盘、网络带宽
  • /sys/fs/cgroup/cpu,cfs_period_us、cfs_quota_us限制CPU的时间
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
○ → ls -l /sys/fs/cgroup/cpu/
总用量 0
-rw-r--r--  1 root root 0 7月  15 17:42 cgroup.clone_children
--w--w--w-  1 root root 0 7月  15 17:42 cgroup.event_control
-rw-r--r--  1 root root 0 7月  15 17:42 cgroup.procs
-r--r--r--  1 root root 0 7月  15 17:42 cgroup.sane_behavior
-r--r--r--  1 root root 0 7月  15 17:42 cpuacct.stat
-r--r--r--  1 root root 0 7月  15 17:42 cpuacct.uptime
-rw-r--r--  1 root root 0 7月  15 17:42 cpuacct.usage
-r--r--r--  1 root root 0 7月  15 17:42 cpuacct.usage_percpu
-rw-r--r--  1 root root 0 7月  15 17:42 cpu.cfs_period_us
-rw-r--r--  1 root root 0 7月  15 17:42 cpu.cfs_quota_us
-rw-r--r--  1 root root 0 7月  15 17:42 cpu.cfs_relax_thresh_sec
-rw-r--r--  1 root root 0 7月  15 17:42 cpu.rt_period_us
-rw-r--r--  1 root root 0 7月  15 17:42 cpu.rt_runtime_us
-rw-r--r--  1 root root 0 7月  15 17:42 cpu.shares
-r--r--r--  1 root root 0 7月  15 17:42 cpu.stat
drwxr-xr-x  3 root root 0 7月  24 01:23 docker
-rw-r--r--  1 root root 0 7月  15 17:42 notify_on_release
drwxr-xr-x 19 root root 0 9月  15 14:24 onion
-rw-r--r--  1 root root 0 7月  15 17:42 release_agent
drwxr-xr-x 58 root root 0 10月  9 17:58 system.slice
-rw-r--r--  1 root root 0 7月  15 17:42 tasks
drwxr-xr-x  2 root root 0 7月  15 17:42 user.slice
  • blkio:块设备I/O限制
  • cpuset,进程单独的CPU核和对应的内存节点
  • memory,内存使用的限制