初学容器化

1.docker

build,ship,run,any app anywhere

docker类似运输中的集装箱,可以装任何应用(镜像文件),运行到各种服务器上。

docker提供的是进程上的隔离,虚拟机提供的是操作系统资源上的隔离。

虚拟机和容器的区别详见这里

1.1原理

docker核心技术是利用Linux kernel中的资源分配机制CGroups,以及核心名字空间namespace来进行进程级别的资源隔离。

对namespace的操作有3个系统函数:clone(),unshare(),setns()

docker采用AUFS联合文件系统(当一个镜像启动的时候,docker会在镜像的最顶层加载一个读写文件系统,只有最顶层的容器部分是可读写的),容器是可写的,镜像是只读的。

镜像(Image)是一堆只读层合成的,除了最底层,每一层都包含一个id、指向父级的指针和当前层的元数据。

容器和镜像最大的区别就是容器最上面有一层读写层。

多个容器可以使用同一个镜像,此时占用空间仅为一个镜像占用的空间。

2.K8s

几种容器编排工具对比:

架构:

 etcd:分布式kv数据库,使用Raft协议,用于保存急群众的相关数据;

API Server:集群统一入口,以Restful风格进行操作,交给etcd存储(是唯一能访问etcd的组件);提供认证、授权、访问控制、API注册和发现等机制,可以通过kubectl命令行工具,dashboard可视化面板,或者sdk访问;

Scheduler:节点的调度,选择node节点应用部署;

Controller Manager:处理集群中常规后台任务,一个资源对应一个控制器,同时监控集群的状态,确保实际状态与最终状态一致。

kubelet:相当于master派到node的代表,管理本机容器,上报数据给API Server;

Container Runtime:容器运行时,k8s支持多个容器运行时环境:Docker、Containerd、CRI-O、Rktlet以及任何实现K8s CRI(容器运行环境接口)的软件;

kube-proxy:实现服务(Service)抽象组件,屏蔽PodIP的变化和负载均衡;

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值