云原生实战课大纲<2>

我们pod的数据挂载文件可以使用 pv-pvc的方式
1. 创建pv池 
2. 在pv池中创建pv,并且设置pv的模式
3. 编写pod 写对应的pvc 申请书 就可以了

这就是我们k8s中的pv和pvc
基于pv池创建pv的时候会有容量限制

呢么关于配置呢,我们以前会有这种场景 比如说在docker中我们会把配置文件-v的形式挂载出来,比如说nginx的conf文件,这样我修改了nginx的配置文件,我就nginx就可以拿到最新的数据
在k8s中怎么把配置文件挂载出来,挂载目录我们可以使用pv=pvc的方式,但是我们现在要挂载配置文件 我们可以使用configMap的方式
k8s 中专门有一个东西 configmap ,比如说redis吧

在这里插入图片描述

我编写一个redis.conf文件,基于redis.conf 创建配置集 configMap  存储在k8s中的etcd
k8s中所有数据都保存在etcd中 

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

这样就可以看到这个configmap的配置了,创建pod 的时候挂载这个configmap就可以了

在这里插入图片描述

我们启动redis的时候会挂载2个 一个configMap挂载他的配置文件 一个 pv-pvc的方式
会挂载他的数据文件

在这里插入图片描述

我以后启动redis mysql mq 这些 我启动任何的中间件 我把他的配置文件,我在k8s 的配置集合,我以后在pod中引用配置集合
我们使用k8s 的配置集还有一个优点就是 如果我k8s  在外面把配置文件改了 
他在内部依然生效

secret是k8s中用来保存敏感信息的 比如说 密码 令牌 密钥.和configmap差不多,只不过configmap用来保存配置文件  等等这些明文信息
secret的典型场景,我们现在要启动一个pod,pod启动要下载镜像,我们以前下载从docker hub 下的, 如果从私有镜像下载
当我想要部署的时候,我从私有镜像仓库拉取镜像,我就的要有个账号和密码,这些账号和密码如果写在pod中就会不安全
也容易泄露
k8s 可以使用secret的方式 把docker登录的信息保存起来,我以后下载镜像的时候直接用就可以了
当然 我们可以看到这个是密文的
 如果是confifMap  data:value 此时是明文的的 ,secret类似于configmap的使用方法差不多
 如果想要使用secret的话,我们只需要引用一下就可以了
 

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

我可以使用这个密钥来下载镜像

在这里插入图片描述

我pod 只需要下载镜像的时候引用这个secret就可以了,因为这个密钥信息 之前已经创建好了
然后再create -f pod.yaml  就可以下载到了
这是我们secret的核心实战场景
kusphere kubeshere是k8s的可视化界面
kusphere 的安装步骤
安装docker 
安装k8s
kubesphere前置环境
安装kubesphere
kubesphere是个多租户用户的系统,使用命名空间来做区分
如何在kubesphere平台中部署一些应用  比如说我们先部署一个中间件
我们在云上想要部署应用  我的这个应用将会以什么样的方式部署
其实Kubesphere就是k8s的可视化页面  包括创建deploy pod 以及service这些
我们可以先部署mysql ,这是我们以docker的形式部署的mysql
中间件的配置文件可以以配置集configMap的形式做出来

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

先创建mysql-conf,mysql的配置文件mysql-conf 挂载出去,key为my.conf 例如

在这里插入图片描述

我在部署之前先把Mysql的配置文件提取成configmap,准备一个pvc  我mysql的券挂载  数据的挂载
his-mysql(尚依通的mysql)

在这里插入图片描述

选中一个mysql镜像 创建几份, 资源限额,账号密码(环境变量)挂载pvc 和configmap
类似于nacos一样可以随时修改,当配置修改了之后 我pod就会进行同步
使用kubesphere部署redis

在这里插入图片描述

一样我们启动的时候 可以看看redis在docker中怎么做的部署
数据目录放在/data 
配置文件映射在/etc/redis
如果我们用docker启动的话
-v date 外部进行挂在数据目录 
-v 挂载配置conf

在这里插入图片描述

redis的部署  就已经结束了

es也一样	启动 会有-e的环境变量和-v的数据挂载


在这里插入图片描述

我们之前手动部署mysql  es redis
 对于常见的中间件 kubesphere可以达到一键部署,基于应用商店部署rabbitmq
 类似于dockerhub一样我们可以在镜像仓库中找到对应的镜像 达到一键部署的功能

在这里插入图片描述

RUO-YICLoud 部署实战

在这里插入图片描述

我们部署ruoyi-cloud,前端访问网关  网关的所有配置,包括网关发现其他的服务,都是基于nacos做的服务发现
和配置中心

在这里插入图片描述

前端发送请求到gateway,gateway先经过令牌校验是否正常
如果令牌校验正常的话 就会将流量放行,各个微服务之间就会基于feign发起调用
如果微服务操作我们db的话,自然就会有db系统,如果操作Oss的话 自然就会有oss系统(文件存储)
包括微服务的监控,这就是整个ruoyi-cloud的架构 
接下来我们部署的时候就会涉及到网关,缓存,数据库,配置中心nacos,以及我们的服务监控
我们可以先手动部署一遍,手动部署会有很多问题以及麻烦的
接下来我们使用devops 自动化流水线部署

在这里插入图片描述

每一个带端口的都是将来我们要启动的服务
先启动nacos  因为很多配置在nacos的配置中心中配置
先保证我们的每一个微服务都能正常启动,并且保证我们的项目在本地是可以使用的

先用kubesphere启动一个redis和mysql  然后各个微服务去连接
本地跑起来,只需要吧ruoyi要用的数据库文件导入进去,准备好db和redis

因为mysql和redis我们用Kubesphere部署的 ,最大的效果 就是云上的如果崩了  数据还是在的 因为我已经吧data文件挂载出来了

nacos作为配置和注册中心,我们可以在naocs的官网看到nacos怎么上云,3个pod的nacos 
整个nacos集群对外暴露一个service,我就可以做一个service,让这个service选中3个pod
service 统一暴露自己域名或者ip,  
集群中 其他服务比如说pod  想要访问nacos 就可以基于(service)域名来访问

在这里插入图片描述

上云之后基于nacos 部署了3个pod ,k8s的最大的优点就是拥有
pod的故障转移能力  一旦发生故障转移pod 的ip就变化了
所以我们这里写每个pod 有一个固定的域名  
nacos的配置文件进行挂载

在这里插入图片描述

3个nacos的固定访问地址
 nacos

在这里插入图片描述

我们启动 部署 redis mysql nacos(3个副本) 接下来我们部署我们的微服务层
我们一个项目分为服务治理层,数据层,ruoyi的微服务层

当我们把服务治理层,数据层都部署好了,我们就可以部署我们的微服务,我们的微服务采取的是从下到上的方式部署。

在这里插入图片描述

微服务层的部署
 基于dockerFile 构建镜像  编写dockerFile文件

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

默认找文件 找到prod上  应用已启动 也可以加载prod的启动配置,项目一启动就会在 prod的名称空间下找配置  
我们在nacos中配置一个prod的配置

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

基于dockerFile 尝试给每一个应用打包成镜像,微服务打包用的镜像文件.我们微服务想上云 
1.利用maven 打成可执行的jar
2.上传给服务器
3.根据jar 利用dockerFile打成镜像
4.我们K8s 想部署
给k8s 进行部署

在这里插入图片描述

我们一个应用想要上云的过程
我们接下来做的事情就是 根据dockerFile文件  基于jar生成docker镜像

在这里插入图片描述

将每一个微服务构建成docker镜像

在这里插入图片描述

镜像有了,现在我们要做的一个事情就是镜像不能只呆在master节点
因为我们k8s集群,部署pod应用的时候要能找到镜像,比如说在node1上部署这个pod
所以这个镜像要推送到镜像仓库 (我们使用阿里云镜像仓库或者docker hub)
推送镜像给阿里云

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio导入项目一直显示正在下载Gradle项目

如题,问题图类似如下: (此图是解决以后截的,之前遇到问题没截图) 解决方法 先找到你正在下载的gradle的版本是哪个 然后在链接中 ​​​​​​Gradle Distributions 找到你所对于gradle的版本,下载对应…

Centos7安装配置nginx

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,小编会及时修改) Centos7安装配置nginx Nginx介绍 Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 服务,也…

Spring Security 6.x 系列(6)—— 显式设置和修改登录态信息

一、前言 此篇是对上篇 Spring Security 6.x 系列(5)—— Servlet 认证体系结构介绍 中4.9章节显式调用SecurityContextRepository#saveContext进行详解分析。 二、设置和修改登录态 2.1 登录态存储形式 使用Spring Security框架,认证成功…

34 - 记一次线上SQL死锁事故:如何避免死锁?

之前我参与过一个项目,在项目初期,我们是没有将读写表分离的,而是基于一个主库完成读写操作。在业务量逐渐增大的时候,我们偶尔会收到系统的异常报警信息,DBA 通知我们数据库出现了死锁异常。 按理说业务开始是比较简…

业务逻辑漏洞

业务逻辑漏洞 扫描器扫不出来 漏洞包括 暴力破解任意用户/密码登陆短信/邮箱轰炸验证码绕过/爆破/重放/回传用户名/手机号枚举(用户名枚举:当用户登录时,显示用户名不存在,或密码不正确,两个其中一个不正确就称为用户名枚举)越…

MySQL系列 - 数据类型

MySQL是一种常用的关系型数据库管理系统,它支持多种数据类型,包括整数、浮点数、字符串、日期和时间等。在本文中,我们将介绍MySQL中常用的数据类型及其用法。 MySQL数据类型介绍: 1、整数类型: MySQL提供了多种整数…

微信小程序 老年人心血管健康知识科普系统

本系统的功能有管理员:个人中心,用户管理,热点信息管理,疾病管理,疾病类型管理,治疗管理,治疗类型管理,护理管理,护理类型管理,科普管理,科普类型…

Elasticsearch 线上实战问题及解决方案探讨

1、reindex相关问题 1.1 问题描述 我有 1tb 的一个大索引若干,要迁移到另外一个新集群去,有没有好办法?reindex好像会中断...... reindex 是不是就算设置了频率也会莫名的中断,而且没地方查到错误?1000多万的数据&…

『 Linux 』进程优先级

文章目录 什么是优先级Linux下的进程优先级PRI与NI使用top查看进程以及对进程的优先级的修改 进程优先级的其他概念竞争性与独立性并发与并行 什么是优先级 优先级,顾名思义,即在同一环境下不同单位对同一个资源的享有顺序; 一般优先级高的单位将优先占有该资源; 在进程当中进…

海翔云平台 getylist_login.do SQL 注入漏洞复现

0x01 产品简介 海翔云平台一站式整体解决方案提供商,业务涵盖 批发、连锁、零售行业ERP解决方案、wms仓储解决方案、电商、外勤、移动终端(PDA、APP、小程序)解决方案。 0x02 漏洞概述 海翔云平台getylist_login.do接口处存在SQL注入漏洞&am…

wmvcore.dll丢失怎么办?解决电脑出现wmvcore.dll丢失问题5个方法

wmvcore.dll缺失5个解决方法与wmvcore.dll丢失原因及文件介绍 引言: 在日常使用电脑的过程中,我们可能会遇到一些错误提示,其中之一就是wmvcore.dll缺失。wmvcore.dll是Windows Media Video编码解码相关动态链接库文件之一,它对…

vue3 element plus 表单验证 数组嵌套对象格式验证 动态验证等

基本结构 model 表单数据对象 rules 验证对象 prop model 的键名 <template><el-form ref"ruleFormRef" :model"ruleForm" :rules"rules"><el-form-item label"手机号" prop"mobile"><el-input v-mod…

使用opencv实现更换证件照背景颜色

1 概述 生活中经常要用到各种要求的证件照电子版&#xff0c;红底&#xff0c;蓝底&#xff0c;白底等&#xff0c;大部分情况我们只有其中一种&#xff0c;本文通过opencv实现证件照背景的颜色替换。 1.1 opencv介绍 OpenCV&#xff08;Open Source Computer Vision Librar…

Java第十二篇:连接安全版kafka(Kerberos认证)出现的问题解答

Could not find a ‘KafkaClient’ entry in the JAAS configuration 问题现象 问题原因 原因没有找到&#xff0c;怎么引起的倒是很清楚。原因就是找到不到指定路径下的kafka_client_jaas.conf文件&#xff0c;别看我的路径带了两个//&#xff0c;但没问题的&#xff0c;等同…

Semaphore源码解析

Semaphore源码解析 文章目录 Semaphore源码解析一、Semaphore二、Semaphore 中 Sync、FairSync、NonfairSync2.1 Sync、FairSync、NonfairSync2.2 NonfairSync 下的 tryAcquireShared()2.3 FairSync下的 tryAcquireShared()2.4 tryReleaseShared() 三、semaphore.acquire()四、…

0 NLP: 数据获取与EDA

0数据准备与分析 二分类任务&#xff0c;正负样本共计6W&#xff1b; 数据集下载 https://github.com/SophonPlus/ChineseNlpCorpus/raw/master/datasets/online_shopping_10_cats/online_shopping_10_cats.zip 样本的分布 正负样本中评论字段的长度 &#xff0c;超过500的都…

工具及方法 - 如何阅读epub文件:使用Adobe Digital Editions

EPUB&#xff08;Electronic Publication的缩写&#xff0c;电子出版&#xff09;是一种电子图书标准&#xff0c;由国际数字出版论坛&#xff08;IDPF&#xff09;提出&#xff1b;其中包括3种文件格式标准&#xff08;文件的扩展名为.epub&#xff09;&#xff0c;这个格式已…

哈希和unordered系列封装(C++)

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数&#xff0c;哈希碰撞哈希函数&#xff08;常用的两个&#xff09;哈希冲突&#xff08;碰撞&#xff09;小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子&#xff08;扩容&#xff09; 开散列哈希桶代码实现扩…

订单管理系统怎么用?有哪些好用的订单管理系统?

订单管理系统怎么用&#xff1f;有哪些好用的订单管理系统&#xff1f;阅读本文你将了解&#xff1a;1、订单管理系统的核心功能&#xff1b;2、订单管理系统的拓展功能&#xff1b;3、订单管理系统推荐。 订单管理系统在当今商业环境中扮演着至关重要的角色。它是企业内部运营…

UE4 UE5 使用SVN控制

关键概念&#xff1a;虚幻引擎中使用SVN&#xff0c;帮助团队成员共享资源。 1. UE4/UE5项目文件 如果不需要编译的中间缓存&#xff0c;则删除&#xff1a; DerivedDataCache、Intermediate、Saved 三个文件夹 2.更新、上传