小说馆-架构说明
小说馆项目一些架构的考虑
k8s集群架构
数据库架构
nginx集群架构
k8s的高可用方案首先考虑k8s的高可用方案
https://zhuanlan.zhihu.com/p/106531282
按功能组划分
SLB
LVS
HAProxy
etcd
K8S Node (Master / Worker)
本次项目使用的方案为keepalived+haproxy架构图来自于kubesphere官方文档Chttps://www.kubesphere.io/zh/docs/v3.3/installing-on-linux/on-premises/install-kubesphere-on-vmware-vsphere/
数据库方案本次项目采用两个集中式数据库Mariadb10.6,虽然本次只部署静态网页,kubesphere数据也没有存储到数据库……说不定过一段时间心血来潮就实现了呢?嗯,大概……
本次部署,架构方面采取一主一从,主从复制,为后端读写分离做准备。
数据库主从复制原理图
一主两从示例图(本次项目一主一从)
读写分离技术博客参考:https://zhu ...
小说馆-需求以及思路想法环境配置
学校小组作业 小说馆项目 部署项目源码地址
https://github.com/NaZawsze/bookweb
https://github.com/NaZawsze/storyweb
其他项目源码地址
https://github.com/kubesphere/kubesphere
这也是我第一次试验,个人能力有限,可能有很多漏洞和问题。
起因老师布置的小组作业,我的任务只是负责部署服务。
规划只部署静态网页,前端涉及html,css,js。项目分为两个站点,一个引导界面,一个小说馆主界面。引导界面使用cloudflare pages部署,小说馆主站点使用k8s集群+nginx部署实现高可用。另外为以后可能部署后端,提前部署数据库。暂时使用NodePort访问,这次部署没能实现nginx ingress。本次部署是一个非常简单的试验,kubesphere多集群容器管理平台一键部署,并且自带多个关键服务: Prometheus,Grafana,各类探针等
k8s高可用架构: keepalived+haproxy数据库架构: 一主一从,暂时没做服务端的读写分离
结论book页面,即 ...
Mariadb主从复制
mariadb主从复制采用一主一从,读写分离结构Master: 172.16.11.31/16Slave: 172.16.11.32/16
服务器配置Master服务器配置修改数据库配置文件
12345678910vim /etc/my.conf#添加配置[mysqld]log-bin=mysql-bin #[必须]启用二进制日志server-id=31 #[必须]服务器唯一ID,默认是1(从数据库ID要比主数据库ID大)#read-only=0 #是否只读,1代表只读,0代表读写#忽略的数据,指不需要同步的数据库#binlog-ignore-db=mysql#指定同步的数据库#binlog-do-db=db01
配置完成重启数据库以使更改生效。
主库配置登陆mysql,创建远程连接账号,并授予主从复制权限。
12345678910#创建同步用户,设置密码#CREATE USER 'replication_user'@'slave_ip_address' IDENTIFIED BY 'pas ...
部署prometheus监控k8s
在部署prometheus监控k8s状态教程来源于神州数码企业服务集团,本文章在实践中整理代码和说明
https://zhuanlan.zhihu.com/p/456205833
参考资料
https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/
Prometheus Kubernetes 清单文件
https://github.com/bibinwilson/kubernetes-prometheus
一、关于 PrometheusPrometheus 是一个开源的监控框架。它为 Kubernetes 容器编排平台提供了开箱即用的监控功能。
12以下是 Prometheus 中重要的一些概念:指标收集: Prometheus 使用拉取模型,通过 HTTP来实现检索指标。而对于那些 Prometheus 无法抓取指标的用例,可以选择使用 Pushgateway 将指标推送到 Prometheus 。例如,从 kubernetes jobs & Cronjobs 中收集自定义指标。指标端点:如果想要使用 P ...
Ubuntu更换旧版本内核保持并删除新内核
Ubuntu更换旧版本内核参考博客RayChiu_Labloyhttps://blog.csdn.net/RayChiu757374816/article/details/122043270AryShawhttps://blog.csdn.net/u010608421/article/details/115658479mixboothttps://blog.csdn.net/u010953692/article/details/115347414Hectorhttps://zhuanlan.zhihu.com/p/413655133
起因执行apt upgrade后Ubuntu内核更新到5.19导致CUDA失效笔记后期归纳
设置内核1.查看内核查询当前当前已安装的内核
1sudo dpkg -l |grep linux-image
2.安装需要版本内核先查询可安装的内核列表
1sudo apt-cache search linux-image
安装指定内核
1sudo apt install linux-image-5.15.0-46-generic
3.切换内核版本1 ...
k8s Dashboard部署学习
k8s Dashboard部署环境Rocky9.1,k8s 1.26.0
12#删除现有的dashboard服务kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard
1.根据官网教程下载部署配置文件部署Dashboard配置官网地址: https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/web-ui-dashboard/Dashboard手动生成证书官网地址: https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/certificates/
2.创建自签名证书1.生成一个 2048 位的 dashboard.key 文件12mkdir dashboardcrt && cd dashboardcrtopenssl genrsa -out dashboard.key 2048
2.根据 dashboard.key 文件,生成 dash ...
k8s介绍和部署
k8s部署https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/教程来源于武汉誉天,本文章在实践中整理代码和说明
其他教程
https://juejin.cn/post/7107954026875977764
01 Docker和Containerd关系Docker Engine核心组件Container,后将其开源并捐赠给CNCF(云原生计算基金会),作为独立的项目运营。也就是说Docker Engine里面是包含Containerd的,安装Docker后,就会有Containerd,Containerd也可以单独安装,无需安装Docker。
02 为什么要说明他们的关系——引入dockershim早期,Kubernetes集成了Docker Engine这个容器启动时,之后k8s为了兼容更多容器运行时(比如containerd/CRI-O),创建了一个CRI(Container Runtime Interface)容器运行时接口标准,指定标准的目的是为了实现编排器( ...
Esxi7.0同时支持硬件直通和CPU嵌套虚拟化的方法
Esxi7.0同时支持硬件直通和CPU嵌套虚拟化的方法环境系统:Esxi 7.0 u2 直通硬件:Nvidia Tesla M40 24GB
实现注: 直通显卡和设置嵌套虚拟化顺序没有要求,宿主机修改config只需要修改一次。虚拟机的配置则需要每个需要硬件直通和CPU嵌套虚拟化的虚拟机都要做。
1.先Esxi直通显卡到虚拟机,打开电源可能显示DevicePowerOn错误解决方法虚拟机配置-高级-配置参数添加
12pciPassthru.use64bitMMIO=TRUEpciPassthru.64bitMMIOSizeGB=64
注意: MMIOSize设置的数值要>=虚拟机分配的所有GPU显存大小的两倍,并且为2的整数次幂。例: 2^4=16 < 2 * 24,2^5=32 < 2 * 24,而 2^6=64 > 2 * 24.
2.设置强制开启CPU嵌套虚拟化1.SSH进入宿主机,打开编辑
123vi /etc/vmawe/config#最后一行添加vhv.enable="TRUE"
完成 ...
Openwrt使用mutt和msmtp实现发送邮件功能
Openwrt使用mutt和msmtp实现发送邮件功能环境OpenWrt R22.6.16 / LuCI Master (git-22.180.58246-fb20b65)使用lean源码编译
功能实现1.安装软件包mutt和msmtp如果在编译时没有选择mutt和msmtp,需要使用opkg安装
123opkg updateopkg install msmtpopkg install mutt
2.编辑/etc/msmtprc123456789101112131415161718192021222324# Example for a system wide configuration file # A system wide configuration file is optional. ...
在vscode中配置dotnet
在vscode中配置dotnet起因需要在vscode中连接oracle数据库,因此部署了Oracle Developer Tools for VS Code (SQL and PLSQL)插件。同时需要安装.NET Install Tool for Extension Authors,但每次加载都是从网络下载并且有时下载失败导致无法运行。
环境使用docker部署code-server: v4.8.3
解决办法https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0选择ASP.NET Core 6.0 Runtime,选择对应架构获取下载链接,使用wget下载到本地。进行解压后放到相应目录中,并在插件中设置dotnet的位置。
12345wget https://download.visualstudio.microsoft.com/download/pr/a2234b85-9050-4f90-9fc1-695a428167ee/8d5c3cf8f557e14c7c43965b7cef9c41/aspnetcore-runtime- ...