容器相关
Hosea91
这个作者很懒,什么都没留下…
展开
-
K8S理解之Pod
Pod是 Kubernetes 项目中最小的 API 对象。 为什么需要Pod? 在 Borg 项目的开发和实践过程中,Google 公司的工程师们发现,他们部署的应用,往往都存在着类似于“进程和进程组”的关系。更具体地说,就是这些应用之间有着密切的协作关系,使得它们必须部署在同一台机器上。 容器间的紧密协作,我们可以称为“超亲密关系”。这些具有“超亲密关系”容器的典型特征包括但不限于:互相之间会发生直接的文件交换、使用 localhost 或者 Socket 文件进行本地通信、会发生非常频繁的远程调用、需原创 2020-12-25 20:12:49 · 170 阅读 · 0 评论 -
K8S核心功能
Kubernetes 项目最主要的设计思想是,从宏观的角度,以统一的方式来定义任务之间的各 种关系,并且为将来支持更多种类的关系留有余地。 在 Kubernetes 项目中所推崇的使用方法是: 首先,通过一个“编排对象”,比如 Pod、Job、CronJob 等,来描述你试图管理的应用; 然后,再为它定义一些“服务对象”,比如 Service、Secret、Horizontal Pod Autoscaler(自 动水平扩展器)等。这些对象,会负责具体的平台级功能。 这种使用方法,就是所谓的“声明式 API”原创 2020-11-19 20:52:14 · 337 阅读 · 0 评论 -
容器编排
容器编排 “编排”主要是指用户如何通过某些工具或者配置来完成一组虚拟机以及关联资源的定义、配置、创建、删除等工作,然后由云计算平台按照这些指定的逻辑来完成的过程。 容器编排指的就是够定义容器组织和管理规范的工具,典型的是 Docker 公司的 Compose+Swarm 组合,以及 Google 与 RedHat 公司共同主导的 Kubernetes 项目。 Docker 公司最后选择将开源项目与商业产品紧密绑定,打造了一个极 端封闭的技术生态。违背了 Docker 项目与开发者保持亲密关系的初衷。相比之下原创 2020-11-15 16:41:19 · 3534 阅读 · 0 评论 -
容器的存储
挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”,它有一个更专业的名字:rootfs(根文件系统),是一个操作系统的所有文件和目录,并不包含内核。 由于 rootfs 里打包的不只是应用,而是整个操作系统的文件和目录,也就意味着,应用以及它 运行所需要的所有依赖,都被封装在了一起。这就赋予了容器所谓的一致性:无论在本地、云端,还是在一台任何地方的机器上,用户只需要解压打包好的容器镜像,那么这个应用运行所需要的完整的执行环境就被重现出来了。 Docker 在镜像的设计中,原创 2020-11-06 22:11:26 · 480 阅读 · 0 评论 -
容器基础——Cgroups
Cgroups 制造约束 Linux Cgroups 的全称是 Linux Control Group。它最主要的作用,就是限制一个进程组能够使用的资源上限,包括 CPU、内存、磁盘、网络带宽等等。 Cgroups 给用户暴露出来的操作接口是文件系统,即它以文件和目录的方式组织 在操作系统的 /sys/fs/cgroup 路径下。在系统中执行mount -t cgroup 可以看到如下结果: 可以看到,在 /sys/fs/cgroup 下面有很多诸如 cpuset、cpu、 memory 这样的子目录,也原创 2020-10-30 20:43:07 · 221 阅读 · 0 评论 -
容器基础——Namespace
什么是容器? 容器其实是一种沙盒 技术。顾名思义,沙盒就是能够像一个集装箱一样,把应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰;而被装进集装箱的应用,也可以被方便地搬来搬去。 理解“边界” 实现边界的手段 1. 隔离—Namespace 修改进程视图 Namespace机制: 拿PID Namespace举个栗子: 操作系统都会给每一个进程分配一个进程编号PID,比如PID=100,可以理解为这个进程是操作系统中的第100个进程,Docker会把这个某个程序运行在一个容器原创 2020-10-21 21:23:02 · 544 阅读 · 0 评论