全网最系统、最清晰!深入微服务架构——Docker和K8s详解,助你大厂无忧

本文深入探讨Docker的原理,如命名空间、控制组和轻量级虚拟化特性,以及Docker与虚拟机的区别。此外,介绍了Docker的网络模式、数据卷和容器间通信。进一步讨论了Kubernetes,解释了为何Docker官方开始支持K8s,以及K8s的核心组件和概念,如Pods、Services和Replication Controllers。
摘要由CSDN通过智能技术生成
  • 快速高效的开发生命周期;

  • 鼓励使用面向服务的架构,即单个容器运行单个应用。

Docker原理

========

Docker是一个客户端一服务器(C/S)架构的程序。Docker 客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker及一整套RESTful API,可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。

全网最系统、最清晰!深入微服务架构——Docker和K8s详解

Docker依赖的Linux的内核特性包括Namespaces命名空间和Control groups(c groups)控制组。

Namespaces命名空间:

  • PID (process ID),进程ID隔离;

  • NET (network),管理网络端口;

  • IPC ( InterProcess Communication),进程间通信;

  • 管理跨进程通信的访问;

  • MNT (Mount),管理挂载点;

  • UTS (UNIX Timesharing System),隔离内核和版本标识;

  • Control groups(c groups),控制组。

Control groups(c groups)控制组:

  • 资源限制;

  • 优先级设定;

  • 资源度量;

  • 资源控制及资源分配;

Docker容器的能力包括:

  • 文件系统隔离——每个容器都有自己的root文件系统,可以独立挂载外部文件系统。

  • 进程隔离——每个容器都运行在自己的进程环境中,相互之间互不干扰。

  • 网络隔离——容器间的虚拟网络接口和IP地址都是分开的。

  • 资源隔离和分组——使用cgroup将CPU和内存等资源独立分配给每个Docker容器。

更轻量级的虚拟化

========

Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。我们先来看一下虚拟机与Docker的架构对比,

全网最系统、最清晰!深入微服务架构——Docker和K8s详解

从下到上理解上图

  • 基础设施(Infrastructure):一般是服务器或者云主机。

  • 虚拟机管理系统(Hypervisor):利用Hypervisor, 可以在主操作系统之上运行多个不同的从操作系统,可以构建在基础设施上,也可以构建在操作系统上。

  • 客户机操作系统(Guest Operating System):假设运行3个相互隔离的应用,则需要使用Hypervisor启动3个客户机操作系统,也就是3个虚拟机。这些虚拟机都非常大,也许有900MB,这就意味着它们将占用2.7GB的磁盘空间。更糟糕的是,它们还会消耗很多CPU和内存资源。

  • 各种依赖:每一个客户机操作系统都需要安装许多依赖。

  • 应用:安装依赖之后,就可以在各个客户机操作系统分别运行应用了,这样各个应用就是相互隔离的。

再来看一下Docker的架构,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值