kubernates 的起源

  • kubernates 最初起源于谷歌的 borg, kubernates 最初目标是为应用的容器化编排部署提供一个最小化的平台,包含几个基本功能:
  1. 将应用水平扩容到多个集群
  2. 为扩容的实例提供福贼均衡的策略

Brog调度原理

安全性隔离: • 早期采用 Chroot jail,后期版本基于 Namespace。 性能隔离: • 采用基于 Cgroup 的容器技术实现。 • 在线任务(prod)是延时敏感(latency-sensitive)型的,优先级高,而离线任务(non-prod, Batch)优先级低。 • Borg 通过不同优先级之间的抢占式调度来优先保障在线任务的性能,牺牲离线任务。 • Borg 将资源类型分成两类: • 可压榨的(compressible),CPU 是可压榨资源,资源耗尽不会终止进程; • 不可压榨的(non-compressible),内存是不可压榨资源,资源耗尽进程会被终止。

chroot解释

为了进一步提高系统安全性,Linux内核引入了chroot机制。chroot是内核中的一个系统调用,软件能够通过调用库函数chroot,来更改某个进程所能见到的根文件夹。比方,Apache软件安装在/usr/local/httpd/文件夹下,以root用户(或具有同样权限的其他账号)启动Apache,这个root权限的父进程会派生数个以nobody权限执行的子进程,详细情况取决于个人设置。父进程监听请求自80port的tcp数据流,然后依据内部算法将这个请求分配给某个子进程来处理。这时Apache子进程所处的文件夹继承自父进程,即/usr/local/httpd/。