云原生介绍与容器的基本概念

云原生介绍

1、云原生的定义

云原生为用户指定了一条低心智负担的、敏捷的、能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。

2、云原生思想两个理论

第一个理论基础是:不可变基础设施。

第二个理论基础是:云应用编排理论。

3、基础设施向云演进

(1) 过程:

传统的应用基础设施是可变的:需要发布或者更新一个软件,流程大致是这样的,先通过 SSH 连到服务器,然后手动升级或者降级软件包,逐个调整服务器上的配置文件,并且将新代码直接都部署到现有服务器上。因此,这套基础设施会不断地被调整和修改。

在云上,应用基础设施是不可变的。一旦应用部署完成之后,那么这套应用基础设施就不会再修改了。如果需要更新,那么需要现更改公共镜像来构建新服务直接替换旧服务。

(2) 意义:

基础设施保持一致性和可靠性;

镜像本身是自包含的,其包含了应用运行所需要的所有依赖;

云原生的基础设施还提供了简单、可预测的部署和运维能力;

应用本身也可以更好地扩容。

容器的基本概念

一、容器与镜像:

1、容器

(1) 操作系统中进程的特点:

第一,这些进程可以相互看到、相互通信;

第二,它们使用的是同一个文件系统,可以对同一个文件进行读写操作;

第三,这些进程会使用相同的系统资源。

这三个特点带来的问题:

具有高级权限的进程可能会将其他进程的数据进行增删改查;进程与进程之间的依赖可能会存在冲突;这些进程使用的是同一个宿主机的资源,存在资源抢占的问题。

(2) 什么是容器:

容器就是一个视图隔离、资源可限制、独立文件系统的进程集合。

视图隔离:就是能够看到部分进程以及具有独立的主机名等;

控制资源使用率:对于内存大小以及 CPU 使用个数等进行限制;

③ 独立文件系统:容器将系统的其他资源隔离开来,具有自己独立的资源视图。

2、镜像

(1) 什么是镜像

容器运行时所需要的所有的文件集合称之为容器镜像。

通常采用 Dockerfile 来构建镜像。描述构建的每个步骤,每个构建步骤都会对已有的文件系统进行操作,带来文件系统内容的变化,这些变化称之为 changeset。当我们把构建步骤所产生的变化依次作用到一个空文件夹上,就能够得到一个完整的镜像。

changeset 的分层以及复用特点带来的优势:

提高分发效率:对于大的镜像而言,将其拆分成各个小块能够并行下载这些数据,提高镜像的分发效率;

具有了复用能力之后,可以节约大量的磁盘空间。

(2) 如何构建镜像

① FROM 行表示以下的构建步骤基于什么镜像进行构建;

② WORKDIR 行表示会把接下来的构建步骤都在哪一个相应的具体目录下进行,类似于 Shell 里面的 cd;

③ COPY 行表示的是可以将宿主机上的文件拷贝到容器镜像内;

④ RUN 行表示在具体的文件系统内执行相应的动作,运行完毕后就得到一个应用了;

⑤ CMD 行表示使用镜像时的默认程序名字。

当有了 Dockerfile 之后,就可以通过 docker build 命令构建出所需要的应用。

docker registry 镜像仓库,负责存储所有产生的镜像数据。只需要通过 docker push 就能够将本地镜像推动到镜像仓库中,就能够在生产环境上或者测试环境上将相应的数据下载下来并运行了。

(3) 如何运行容器:

从镜像仓库中将相应的镜像下载下来;

通过 docker images 来查看本地镜像,在列表中选中想要的镜像;

当选中镜像之后,通过 docker run 来运行这个镜像得到想要的容器,可以通过多次运行得到多个容器。

一个镜像就相当于是一个模板,一个容器就像是一个具体的运行实例,因此镜像就具有了一次构建、到处运行的特点。

二、容器生命周期:

1、容器运行时的生命周期

在使用 docker run 的时候会选择一个镜像来提供独立的文件系统并指定相应的运行程序。这里指定的运行程序称之为 initial 进程。这个 initial 进程启动的时候,容器也会随之启动,当 initial 进程退出的时候,容器也会随之退出。可以认为容器的生命周期和 initial 进程的生命周期是一致的。

容器内不只有这样的一个 initial 进程,initial 进程本身也可以产生其他的子进程或者通过 docker exec 产生出来的操作,也属于 initial 进程管理的范围内。当 initial 进程退出的时候,所有的子进程也会随之退出。

2、数据卷

当一个容器退出被删除之后,数据也就会丢失了。所以需要将容器所产生出来的重要数据持久化到指定的目录上,这个目录就称之为数据卷。

(1) 数据卷特点:

数据卷的生命周期是独立于容器的生命周期的,也就是说容器的创建、运行、停止、删除等操作都和数据卷没有任何关系。将数据卷挂载到容器内,容器就能够将数据写入到相应的目录里面了,而且容器的退出并不会导致数据的丢失。

(2) 数据卷管理的方式:

通过 bind 的方式,直接将宿主机的目录直接挂载到容器内。

将目录管理交给运行引擎。

三、容器和 VM 之间的差异

① VM 利用 Hypervisor 虚拟化技术来模拟 CPU、内存等硬件资源,这样就可以在宿主机上建立一个 Guest OS,每一个 Guest OS 都有一个独立的内核,比如 Ubuntu、CentOS 甚至是 Windows 等,在这样的 Guest OS 之下,每个应用都是相互独立的,VM 可以提供一个更好的隔离效果。但是需要把一部分的计算资源交给虚拟化,很难充分利用现有的计算资源,并且每个 Guest OS 都需要占用大量的磁盘空间。

容器是针对于进程而言的,因此无需 Guest OS,只需要一个独立的文件系统提供其所需要文件集合即可。所有的文件隔离都是进程级别的,因此启动时间快于 VM,并且所需的磁盘空间也小于 VM。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/256686.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python算法之 Dijkstra 算法

文章目录 基本思想:步骤:复杂度:注意事项:代码实现K 站中转内最便宜的航班 Dijkstra 算法是一种用于解决单源最短路径问题的经典算法。该问题的目标是找到从图中的一个固定顶点(称为源点)到图中所有其他顶点…

[1-docker-01]centos环境安装docker

官方参考文档 可以在官方docker桌面版本指导文档里找到适合自己的电脑平台进行参考,或者你是老司机的话直接自己上车。 如果不需要桌面版,也可以在官方docker engine版本指导文档里找到适合自己的平台进行参考,同样,老司机可以自…

npm config set registry https://registry.npm.taobao.org 这个设置了默认的镜像源之后如何恢复默认的镜像源

要恢复npm默认的镜像源,你可以使用以下命令将registry设置回npm的官方源: npm config set registry https://registry.npmjs.org/这个命令会修改你的全局npm配置,将包的下载源改回npm官方的源。这样做之后,任何后续的npm install…

C++ bfs再探迷宫游戏(五十五)【第二篇】

今天我们用bfs解决迷宫游戏。 1.再探迷宫游戏 前面我们已经接触过了迷宫游戏,并且学会了如何使用 DFS 来解决迷宫最短路问题。用 DFS 求解迷宫最短路有一个很大的缺点,需要枚举所有可能的路径,读入的地图一旦很大,可能的搜索方案…

安全之护网(HVV)、红蓝对抗

文章目录 红蓝对抗什么是护网行动?护网分类护网的时间 什么是红蓝对抗红蓝对抗演练的目的什么是企业红蓝对抗红蓝对抗价值参考 红蓝对抗 什么是护网行动? 护网的定义是以国家组织组织事业单位、国企单位、名企单位等开展攻防两方的网络安全演习。进攻方…

Vue--》深入学习Tailwind CSS掌握优雅而高效的前端样式开发

Tailwind CSS是一个非常强大且灵活的CSS框架,适用于开发者希望高度定制化界面样式的项目。今天博主就 Tailwind CSS 做一个简单介绍以及案例讲解,争取读者阅读文章后入门。 仅靠一篇文章博主也不可能将Tailwind CSS所有内容讲解的面面俱到,在…

购物|电商购物小程序|基于微信小程序的购物系统设计与实现(源码+数据库+文档)

电商购物小程序目录 目录 基于微信小程序的购物系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户前台功能实现 2、管理员后台功能实现 四、数据库设计 1、实体ER图 2、具体的表设计如下所示: 五、核心代码 六、论文参考 七、最新计算机毕设…

【力扣】5.最长回文子串

这道题我主要是通过动态规划来进行解题,看了我好久(解析),生疏了呀。 首先就是判断一个字符串是不是回文,我们可以设置两个指针,从前往后进行判断即可,运用暴力解题法,这里运用的动…

react【四】css

文章目录 1、css1.1 react和vue css的对比1.2 内联样式1.3 普通的css1.4 css modules1.5 在react中使用less1.6 CSS in JS1.6.1 模板字符串的基本使用1.6.2 styled-components的基本使用1.6.3 接受传参1.6.4 使用变量1.6.5 继承样式 避免代码冗余1.6.6 设置主题色 1.7 React中添…

Redis篇之redis是单线程

一、redis是单线程 Redis是单线程的,但是为什么还那么快?主要原因有下面3点原因: 1. Redis是纯内存操作,执行速度非常快。 2. 采用单线程,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题。 …

【电路笔记】-串联电感

串联电感 文章目录 串联电感1、概述2、电感串联示例13、互耦串联电感器4、电感串联示例25、电感串联示例36、总结当电感器以菊花链方式连接在一起并共享公共电流时,它们可以串联连接在一起。 1、概述 这些电感器的互连产生了更复杂的网络,其总电感是各个电感器的组合。 然而…

CSS Selector—选择方法,和html自动——异步社区的爬取(动态网页)——爬虫(get和post的区别)

这里先说一下GET请求和POST请求: post我们平时是要加data的也就是信息,你会发现我们平时百度之类的 搜索都是post请求 get我们带的是params,是发送我们指定的内容。 要注意是get和post请求!!! 先说一下异…

Linux_进程概念

硬件系统 软件系统 进程概念 进程状态 孤儿进程 进程优先级 一.硬件系统 1.1 冯诺依曼体系结构 数学家冯诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备&a…

[Doris] Doris的安装和部署 (二)

文章目录 1.安装要求1.1 Linux操作系统要求1.2 软件需求1.3 注意事项1.4 内部端口 2.集群部署2.1 操作系统安装要求2.2 下载安装包2.3 解压2.4 配置FE2.5 配置BE2.6 添加BE2.7 FE 扩容和缩容2.8 Doris 集群群起脚本 3.图形化 1.安装要求 1.1 Linux操作系统要求 1.2 软件需求 1…

用EXCEL从地址(上海)中提取各区(浦东新区等区)信息

背景: 朋友工作需要经常用EXCEL把各上海用户收货地址中的区提取出来,之前一直手动处理,希望我帮忙用EXCEL公式直接提取处理。 数据样式: 中国上海市浦东新区A小区 上海徐汇区B小区 中国,上海,浦东新区&a…

JVM相关-JVM模型、垃圾回收、JVM调优

一、JVM模型 JVM内部体型划分 JVM的内部体系结构分为三部分,分别是:类加载器(ClassLoader)子系统、运行时数据区(内存)和执行引擎 1、类加载器 概念 每个JVM都有一个类加载器子系统(class l…

CSS之盒模型

盒模型概念 浏览器盒模型(Box Model)是CSS中的基本概念,它描述了元素在布局过程中如何占据空间。盒模型由内容(content)、内边距(padding)、边框(border)、和外边距&…

Java实现教学资源共享平台 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…

MATLAB | 情人节画个花瓣venn图?

之前七夕节情人节各种花,相册,爱心啥的都快画够了,今年画个花瓣韦恩图? 花瓣上的数字是仅属于该类的样本数,而中心的数字是属于每一类的样本数 教程部分 0 数据准备 % 给组起名t1 t2 t3...t15 setName compose(t%d,…

交叉熵损失函数(Cross-Entropy Loss)的基本概念与程序代码

交叉熵损失函数(Cross-Entropy Loss)是机器学习和深度学习中常用的损失函数之一,用于分类问题。其基本概念如下: 1. 基本解释: 交叉熵损失函数衡量了模型预测的概率分布与真实概率分布之间的差异。在分类问题中&…