云原生

虚拟化容器

chroot、namespaces、cgroups -> LXC -> Docker -> K8S

三方面的兼容性:

  1. ISA兼容:目标机器指令集兼容性
  2. ABI兼容:目标系统或者依赖库的二进制兼容性
  3. 环境兼容:配置文件 环境变量等

几种虚拟化技术:

  • 指令集虚拟化:通过软件来模拟不同ISA架构的处理器工作过程,将虚拟机发出的指令转换为符合本机ISA的指令
  • 硬件抽象层虚拟化:使用软件来模拟硬件,或者直接将硬件直通到虚拟机使用
  • 操作系统层虚拟化:采用隔离手段,使得不同进程拥有独立的系统资源和资源配额 也就是容器化
  • 运行库虚拟化:使用软件翻译的方法来模拟系统,它以一个独立进程来代替操作系统内核来提供目标软件运行所需的全部能力 如WINE
  • 语言层虚拟化:由虚拟机将高级语言生成的中间代码转换为目标机器可以直接执行的指令

容器隔离

  • 隔离文件:chroot
    • 当某个进程经过chroot操作之后,它的根目录就会被锁定在命令参数所指定的位置,以后它或者它的子进程将不能再访问和操作该目录之外的其他文件
  • 隔离访问:namespaces
    • 由内核直接提供的全局资源封装如文件 进程 用户 网络等信息,是内核针对进程设计的访问隔离机制
  • 隔离资源:cgroups
    • 控制进程对资源的使用

容器封装

  • 封装系统:LinuxX Containers
  • 封装应用:Docker
  • 封装集群:Kubernetes

基于容器构建系统

  • 隔离:名称空间
  • 协作:基于同一个pod

这里在K8S中 相互协作的容器运行在同一个pod中 这个pod就是被调度的基本单位

K8S的协作 如果运行单个pod 那么系统是十分脆弱的 使用ReplicaSet等手段来保持住系统的状态

这种组件被称为控制回路:

20201126163527

应用为中心的封装

  • Kustomize:使用一个配置文件描述配置文件
  • Helm与Chart:模仿Linux包管理器的思路去管理Kubernetes应用
  • Operator与CRD:把应用封装为另一种更高层次的资源,再把Kubernetes的控制器模式从面向于内置资源,扩展到了面向所有自定义资源
  • 开放应用模型
MY all right reserved,powered by Gitbook该页面最后修改于: 2020-11-26 16:56:59

results matching ""

    No results matching ""

    results matching ""

      No results matching ""