云原生实战课大纲

1. 云原生是什么 原生应用(java,pyrhon) 上云的过程应用上云遇到的问题1.微服务的拆分  微服务的访问关系应用的架构云原生适合什么样的人去学具备什么样的前提条件云原生要学习什么docker  k8s  devlops  server mesh  jks  k8s监控吧自己的微服务部署上云另外一种微服务架构  server mesh监控k8s平台  比如说告警日志信息

在这里插入图片描述

#拉取镜像
docker pull nginx 
#查看镜像
docker images 

在这里插入图片描述
在这里插入图片描述

docker rmi  删除镜像 基于镜像做的crud
下载镜像后,让镜像启动起来
启动容器  docker run 启动容器
docker ps 查看正在运行的容器
docker  stop  停止应用

在这里插入图片描述
在这里插入图片描述

--restart=always  容器开启自启动  -p端口映射

在这里插入图片描述

 docker ps 就可以查看状态 完成nginx的启动

在这里插入图片描述

我现在启动一个nginx 应用并且可以访问到
接下来 如果我想修改nginx的内容该怎么做
修改nginx的页面1. exec 进入容器 进行修改2. -v挂载出来

在这里插入图片描述

echo

在这里插入图片描述

 我此时再来访问nginx 的时候首页就会发生变化  我修改完毕之后 我把我修改过后的nginx 提交至本地改名为 guigu的的 v1版本
我可以指定一个镜像之后 docker commit 保存在本地

在这里插入图片描述
在这里插入图片描述

相当于linux 的快照 
git的本地commit 
假设我有一天我容器宕机了 我直接rm删除  然后再启动shangguigu 的v1版本
相当于此时生成一个快照机制  此时我基于本地构建一个docker的镜像
我就用我之前的nginx 镜像 我相当于对nginx 镜像做了一个定制化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相当于在本地构建一个镜像,我修改了原来的镜像可以commit 提交至本地镜像的共享  >1  save load我可以把我的镜像通过docker save 命令保存为tar 包
然后 scp (文件传输)进行复制到另外一个主机上  之后 docker load执行
docker load 之后  docker run 执行
这种适合于离线场景 比如说我此时不便于对接公网

在这里插入图片描述
在这里插入图片描述

>我可以把我的镜像进行推送 比如说推送到docker hub仓库  docker push
>共享dockerhub  规避了底层的复杂度
也就是说我不必知道你是怎么改的 我只需要 docker run 启动起来就可以了

在这里插入图片描述

我们能登录到仓库的话 我们就需要 docke push  将我们的镜像push到远程

在这里插入图片描述

docker -v 挂载
docker -v  将配置文件 以及数据文件挂载到外面
我们以前改nginx 的内容,需要docker exec 进入之后进行修改
每次都要进去改 有些麻烦 
将容器中的文件 挂载出来
ro 是只读模式  代表容器内部的文件是不允许修改的 是只读模式

在这里插入图片描述

docker ps   -v 将nginx中的配置文件挂载出来

在这里插入图片描述

保证主机目录下有页面index.html
包括nginx 的配置文件 也可以挂载出来   卷挂载
docker 命令 有了挂载之后 修改东西就很方便了
docker logs   可以看到这个容器的运行日志(启动日志)  我们可以排错用

在这里插入图片描述

 nginx 的页面挂载出来  还有nginx的config 也挂载出来

在这里插入图片描述

docker cp 可以把容器的文件复制到本机  复制出来

在这里插入图片描述

然后docker -v 再进行挂载

在这里插入图片描述

 反向写 可以把容器外面复制到我docker容器中
docker 命令
如果我们要安装nginx 并且修改 之后上传至docker hub
docker search 
docker pull 
ducker run 
docker commit  {将本地修改后的 打包成一个镜像}
docker tag  {按照远程仓库的命名规则}
docker push ----------------<<<<<<<<<<<<,,
docker search 
docker pull 
ducker run 
docker commit  {将本地修改后的 打包成一个镜像}
docker save 
docker load 
我们java+redis 使用docker怎么部署
我们Springboot项目+redis 部署在docker中
1.  使用docker 部署redis
启动redis
docker run redis  先用docker 部署redis  先部署redis  redis的配置文件和数据文件
可以docke -v 挂载出去
docker run redis -v挂载, 启动redis 让redis产生数据之后
部署redis结束
2.
springboot项目 redis的incr命令

在这里插入图片描述

springboot+redis 应用 基于dockerfile文件打包为镜像,部署在docker上运行
以前如果没有docker上 我们的SpringBoot项目是怎么部署在服务器上的
我们的项目通过maven打包成jar包,然后上传至服务器之后 java -jar执行

在这里插入图片描述

我服务器还要装java 环境  如果有新的服务器我还得搞java 环境
如果我是python应用的化,我还得安装python环境
如果我是一个前端应用的化,我还得安装前端

在这里插入图片描述

我可以把我服务器装docker,我任何应用都是以docker的镜像运行的
这样屏蔽了底层
我不管是运行 前端。java应用,python应用我都可以
docker run 来运行镜像就可以了基于docker的方式将jar包打包成镜像

在这里插入图片描述

docker file 执行怎么打包,每一个应用都要有一个dockerFile文件 ,编写dockerFile文件

在这里插入图片描述

jar包以及dockerfile文件   依照jar--->构建镜像
docker build -t .
jar 如果在服务器上运行 还得装java环境  太麻烦了
有了dockerFile  怎么吧jar 制作成镜像 

在这里插入图片描述

docker build -t 构建镜像 基于 java项目(dockerFile文件) 构建镜像
然后我们docker images 就可以看到我们构建的镜像了

在这里插入图片描述

315mb  因为jdk 既有288mb
docker run 构建镜像

在这里插入图片描述

docker ps 查看进程
docker logs我们启动以及排错日志

在这里插入图片描述

我们之前自己把我们的镜像打包在我们的机器上了
如果我新的机器想要跑我们的应用  我可以吧这个镜像第一步推送到我镜像仓库
docker tag 
docker push 
吧我们的新镜像推送上去

在这里插入图片描述

k8s  
1。什么是k8s 他的出现是为了解决什么问题的 
2.应用完成开发后想要部署的三个时期3.我们k8s能帮助我们实现什么  k8s 的功能k8s 架构
master node
worker node(1)
worker node(2) 
工作模式

在这里插入图片描述
在这里插入图片描述

k8s的架构,以及k8s中每个节点 是干嘛的 各个组件的作用

在这里插入图片描述
在这里插入图片描述

k8s 是怎么工作的  以及k8s架构
都是基于apiService 访问呢
apiService 进行隐藏
将我们的项目部署在k8s上,可以部署多个节点. 以达到高负载

在这里插入图片描述

安装k8s
kubeadm  init 
kubeadm  join 
主节点中的 工作进程
工作节点中的 工作进程
k8s的集群规划
################
docker  容器的运行环境
docker安装完毕后 让每一台机器都 启动docker
k8s 安装集群的第一步  docker(容器运行环境)设置hostname
k8s-master_(主机)
k8s-node1_(节点1)
k8s-node2_(节点2)k8s 查看内存 

在这里插入图片描述

建立1个node 2个work的集群.可以在集群中加入主节点和work节点
kubectl get nodes //获取节点

在这里插入图片描述

pod 是k8s中的最小单元  
kubectl  get  pods  -A  //查看k8s中部署的Pod

在这里插入图片描述

运行中的应用在docker中叫容器, 在k8s中叫做pod
docker ps  kubectl get pods  ..可以看到我正在运行的容器
kubectl  get pods- A 可以看到我集群中的每一个应用的名字
k8s 拉的pod 如果挂了 会自动拉的  重新部署1. 基于kubectl -f  执行文件 
2. kubectl create 执行命令

在这里插入图片描述

namespace 做资源隔离的 类似于nacos 是做资源隔离的
prod 的namespace  //生产
dev  的namespace  //dev

在这里插入图片描述

基于名称空间ns 创建资源 pod, 基于ns 下对pod 的crud
docker ps 查看应用
kubectl get pods 

在这里插入图片描述
在这里插入图片描述

pod是k8s中最小的运行单位,k8s 启动pod就可以,pod可以启动多个容器,一个pod中可以有多个容器

在这里插入图片描述

kubectl run mynginx --image=nginx 
// 我启动了一个nginx 的pod
给pod 起一个名字  依据于nginx的镜像启动pod

在这里插入图片描述

pod  启动容器 pod 底层是依靠于 docker拉取的可以基于kubectl describe pod mynginx 来查看pod的信息 以及pod的调度

在这里插入图片描述

 可以查看调度到那个机子上

在这里插入图片描述

我们使用了一个命令创建了k8s 的一个pod
查看pod 
kubectl get pod 

在这里插入图片描述

k8s 描述pod  kubectl describe pod //描述pod的信息
pod 在前面创建好了  kubectl  delete pod //删除pod

在这里插入图片描述

kubectl  describe pod 描述pod

在这里插入图片描述

我们基于配置文件创建的pod

在这里插入图片描述

pod 的命令  

在这里插入图片描述

我们使用docker 部署的nignx 我们更改他的首页 还可以访问
我们现在用k8s 的pod 部署的nginx 怎么访问  
pod 是有ip的

在这里插入图片描述

pod 就可以访问我们nignx的首页 因为默认是 80的port,我们基于docker 部署的nignx 我们可以exec it 进入容器中去改.现在我们可以

在这里插入图片描述

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

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

相关文章

Mac M2/M3 芯片环境配置以及常用软件安装-前端

最近换了台新 Mac&#xff0c;所有的配置和软件就重新安装下&#xff0c;顺便写个文章。 一、环境配置 1. 安装 Homebrew 安装 Homebrew【Mac 安装 Homebrew】 通过国内镜像安装会比较快 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Ho…

磁带标签设计:Tape Label Studio 2023.11.0.7 Crack

Tape Label Studio&#xff08;磁带标签设计&#xff09; 为标签创建颜色样式。修改标签中使用的每种颜色&#xff0c;包括背景、条形码、边框、文本和字符颜色。自定义边框样式以适合您正在使用的标签。从实心、虚线或虚线边框中进行选择。轻松调整宽度和宽度。Tape Label St…

实现Vue3源码 isReactive 和 isReadonly

本文是 Vue3 源码实战专栏的第 5 篇。 isReactive isReactive()检查一个对象是否是由 reactive() 或 shallowReactive() 创建的代理。 使用 <script setup> import { isReactive, reactive } from "vue"; const user1 reactive({ name: "wendZzoo&qu…

vscode使用flake8设置单行最长字符限制设置失败的问题

vscode使用flake8设置单行最长字符限制设置失败的问题 问题描述解决方案 问题描述 如图所示&#xff0c;使用flake8单行字数过长&#xff0c;就会有有红色底的波浪线 一般情况下很多教程都会让你在setting.json里面设置 但是我打开我的setting.json&#xff0c;发现我已经进…

【Python】上市公司数据进行经典OLS回归实操

一、题目二、数据合并、清洗、描述性统计1、数据获取2、数据合并3、选择董监高薪酬作为解释变量的理论逻辑分析 三、多元回归模型的参数估计、结果展示与分析1、描述性统计分析2、剔除金融类上市公司3、对所有变量进行1%缩尾处理4、0-1标准化&#xff0c;所有解释变量5、绘制热…

【CASS精品教程】打开cass提示base.dcl未找到文件的解决办法

打开cass 7.1时提示base.dcl未找到文件的解决办法。 文章目录 一、问题描述二、解决办法 一、问题描述 系统上安装了cad2006cass7.1&#xff0c;cass软件可以正常打开&#xff0c;但是在使用屏幕菜单绘制地图时&#xff0c;选择一个工具&#xff0c;提示base.dcl未找到文件&am…

Databend 与海外某电信签约:共创海外电信数据仓库新纪元

为什么选择 Databend 海外某电信面临的主要挑战是随着业务量的增加&#xff0c;传统的 Clickhouse Hive 方案在数据存储和处理上开始显露不足。 原来的大数据分析采用的 Clickhouse Hive 方案进行离线的实时报表。但随着业务量的上升后&#xff0c;Hive的数据存储压力变大&…

正点原子嵌入式linux驱动开发——Linux IIO驱动

工业场合里面也有大量的模拟量和数字量之间的转换&#xff0c;也就是常说的ADC和DAC。而且随着手机、物联网、工业物联网和可穿戴设备的爆发&#xff0c;传感器的需求只持续增强。比如手机或者手环里面的加速度计、光传感器、陀螺仪、气压计、磁力计等&#xff0c;这些传感器本…

Hadoop3.3.4分布式安装

安装前提&#xff1a;已经配置好java环境&#xff0c;所有机器之间ssh的免密登录。 注意&#xff1a;下文中的flinkv1、flinkv2、flinkv3是三台服务器的别名 1.集群部署规划 注意&#xff1a;NameNode和SecondaryNameNode不要安装在同一台服务器 注意&#xff1a;ResourceMan…

openssl+AES开发实例(linux)

文章目录 一、AES介绍二、AES原理三、AES开发实例 一、AES介绍 AES&#xff08;Advanced Encryption Standard&#xff09;是一种对称密钥加密标准&#xff0c;它是一种对称加密算法&#xff0c;意味着相同的密钥用于加密和解密数据。AES 是 NIST&#xff08;美国国家标准与技…

pg运维之REDUCE WAL BY INCREASING CHECKPOINT DISTANCE

如果你在生产中运行PostgreSQL&#xff0c;你可能已经注意到&#xff0c;调整检查点对调整服务器和提高数据库整体性能是一件非常有益的事情。然而&#xff0c;这里面还有更多的内容。增加检查点的距离也可以帮助实际减少首先创建的WAL的数量。这是对的。这不仅仅是一个性能问题…

nginx四层tcp负载均衡及主备、四层udp负载均衡及主备、7层http负载均衡及主备配置(wndows系统主备、负载均衡)

准备工作 服务器上安装、配置网络负载平衡管理器 windows服务器热备、负载均衡配置-CSDN博客 在windows服务器上安装vmware17 win10 上安装vmware17-CSDN博客 在windows上利用vmware17 搭建centos7 mini版 在windows上利用vmware17 搭建centos7 mini版本服务器-CSDN博客 …

机器学习和深度学习领域的算法和模型

机器学习和深度学习领域有许多算法和模型&#xff0c;以下是一些常见的算法和模型&#xff1a; 线性回归&#xff08;Linear Regression&#xff09;逻辑回归&#xff08;Logistic Regression&#xff09;决策树&#xff08;Decision Tree&#xff09;随机森林&#xff08;Ran…

设计模式-策略模式(Strategy)

设计模式-策略模式&#xff08;Strategy&#xff09; 一、策略模式概述1.1 什么是策略模式1.2 简单实现策略模式1.3 使用策略模式的注意事项 二、策略模式的用途三、策略模式实现方式3.1 简单策略模式3.2 组合策略模式3.3 动态策略模式 一、策略模式概述 1.1 什么是策略模式 …

225.用队列实现栈(LeetCode)

思路 思路&#xff1a;用两个队列实现栈后进先出的特性 &#xff0c;两个队列为空时&#xff0c;先将数据都导向其中一个队列。 当要模拟出栈时&#xff0c;将前面的元素都导入另一个空队列&#xff0c;再将最后一个元素移出队列 实现 实现&#xff1a; 因为C语言没有库可以…

std::map使用自定义的数据结构当做key

一、std::map是按照键的顺序进行排序的&#xff0c;因此需要定义结构类型的比较运算符。通常情况下&#xff0c;你可以通过重载结构类型的小于运算符<来定义比较逻辑。 #include <map>class CKey { public:CKey(int a) { m_a a; }~CKey() default;//也可以在外部(二…

【Linux篇】冯 诺依曼计算机结构体系

详解冯 诺伊曼体系 CPU : 运算器 && 控制器输入设备 : 话筒&#xff0c;摄像头&#xff0c;键盘&#xff0c;鼠标&#xff0c;磁盘&#xff0c;网卡等输出设备 : 显卡&#xff0c;声卡&#xff0c;网卡&#xff0c;磁盘&#xff0c;显示器&#xff0c;打印机等存储器 :…

中睿天下Coremail | 2023年Q3企业邮箱安全态势观察报告

10月25日&#xff0c;北京中睿天下信息技术有限公司联合Coremail邮件安全发布《2023年第三季度企业邮箱安全性研究报告》。2023年第三季度企业邮箱安全呈现出何种态势&#xff1f;作为邮箱管理员&#xff0c;我们又该如何做好防护&#xff1f; 以下为精华版阅读&#xff0c;如需…

景联文科技:驾驭数据浪潮,赋能AI产业——全球领先的数据标注解决方案供应商

根据IDC相关数据统计&#xff0c;全球数据量正在经历爆炸式增长&#xff0c;预计将从2016年的16.1ZB猛增至2025年的163ZB&#xff0c;其中大部分是非结构化数据&#xff0c;被直接利用&#xff0c;必须通过数据标注转化为AI可识别的格式&#xff0c;才能最大限度地发挥其应用价…

arcgis--浮点型栅格数据转整型

利用【Spatial Analyst工具】-【数学】-【转为整型】工具&#xff0c;将浮点型数据转为整型。如下&#xff1a; 【转为整型】对话框参数设计如下&#xff1a; 转换结果如下&#xff1a;