自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 收藏
  • 关注

原创 华为云服务综合实验

(Relational Database Service,简称RDS)、虚拟私有云vpc、安全组、SFS弹性文件服务器以及负载均衡等。弹性文件服务提供按需扩展的高性能文件存储(NAS),可为云上多个弹性云服务器(Elastic Cloud Server,ECS),容器(CCE&CCI),裸金属服务器(BMS)提供共享访问。本次实验内容基于华为云平台模拟企业web集群的构建,其中涉及的知识点包括Linux系统知识、nginx服务的安装及配置应用、云数据库。/usr/share/nginx/html 挂载。

2024-09-20 09:42:51 1076

原创 CICD 持续集成与持续交付

Git 是一个分布式版本控制系统,被广泛用于软件开发中,以管理代码的版本和变更。分布式每个开发者都有完整的代码仓库副本,这使得开发者可以在离线状态下进行工作,并且在网络出现问题时也不会影响开发。即使中央服务器出现故障,开发者仍然可以在本地进行开发和查看项目历史。高效的分支管理Git 中的分支创建和切换非常快速和简单。开发人员可以轻松地创建新的分支来进行新功能的开发或修复 bug,而不会影响主分支。合并分支也相对容易,可以使用多种合并策略来满足不同的需求。快速的版本回退。

2024-09-13 09:22:25 1683

原创 Kubernetes精讲之prometheus

Prometheus是一个开源的服务监控系统和时序数据库其提供了通用的数据模型和快捷数据采集、存储和查询接口它的核心组件Prometheus服务器定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉取数据新拉取到啊的 数据大于配置的内存缓存区时,数据就会持久化到存储设备当中。

2024-09-13 09:21:48 1615

原创 Kubernetes精讲之包管理Helm工具

Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。Helm Chart是用来封装Kubernetes原生应用程序的一系列YAML文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。对于应用发布者而言通过Helm打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。对于使用者而言使用Helm后可以以简单的方式在Kubernetes上查找、安装、升级、回滚、卸载应用程序#拉取项目。

2024-09-13 09:21:04 1150

原创 Kubernetes精讲之认证授权

服务账户管理器管理各命名空间下的服务账户,并且保证每个活跃的命名空间下存在一个名为 “default” 的服务账户。服务账户准入控制器(Service account admission controller)在创建pod时会镜像下载会受阻,因为docker私有仓库下载镜像需要认证。服务账户控制器(Service account controller)建立名字为admin的ServiceAccount。建立私有仓库并且利用pod访问私有仓库。Authorization(授权)将secrets注入到sa中。

2024-09-12 16:17:43 907

原创 Kubernetes精讲之网络通信与调度

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

2024-09-12 16:16:06 1203

原创 Kubernetes精讲之存储

Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key。敏感信息放在 secret 中比放在 Pod 的定义或者容器镜像中来说更加安全和灵活Pod 可以用两种方式使用 secret:作为 volume 中的文件被挂载到 pod 中的一个或者多个容器里。当 kubelet 为 pod 拉取镜像时使用。

2024-09-12 16:12:55 1872

原创 Kubernetes精讲之控制器的使用

工作负载管理 | Kubernetes控制器也是管理pod的一种手段自主式pod:pod退出或意外关闭后不会被重新创建控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。如果Pod资源在运行中出现故障,它会基于指定策略重新编排Pod。

2024-09-12 13:52:27 1196

原创 Kubernetes精讲之pod管理及优化

在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。kubernetes的最小管理单元是pod而不是容器,只能将容器放在 Pod中kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。Pod中服务服务的访问是由kubernetes提供的 service 资源来实现。

2024-09-11 09:38:17 1378

原创 Kubernetes精讲之环境搭建

在部署应用程序的方式上,主要经历了三个阶段:传统部署:互联网早期,会直接将应用程序部署在物理机上优点:简单,不需要其它技术的参与缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响虚拟化部署:可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境优点:程序环境不会相互产生影响,提供了一定程度的安全性缺点:增加了操作系统,浪费了部分资源容器化部署:与虚拟化类似,但是共享了操作系统Note一个容器故障停机了,怎么样让另外一个容器立刻启动去替补停机的容器。

2024-09-05 13:58:05 939

原创 Docker容器就这么简单

Docker之父Solomon Hykes:Docker就好比传统的货运集装箱2008 年LXC(LinuX Contiainer)发布,但是没有行业标准,兼容性非常差docker2013年首次发布,由Docker, Inc开发Docker是管理容器的引擎,为应用打包、部署平台,而非单纯的虚拟化技术它具有以下几个重要特点和优势:1.轻量级虚拟化:Docker 容器相较于传统的虚拟机更加轻量和高效,能够快速启动和停止,节省系统资源。

2024-09-02 08:53:38 3178

原创 LVS之DR模式实验

需要5个主机client,router,lvs,webserver1,webserver2。

2024-08-30 08:41:07 479

原创 LVS之net模式实验

配置环境,两个网卡id=eth0[ipv4]id=eth1[ipv4]#打开内核路由功能#添加#查看#安装lvs#查看策略#-A增加 -t tcp -s指定调度算法 rr静态算法(你一个我一个)#查看策略#保存设置。

2024-08-30 08:36:54 703

原创 原来这就是Redis集群

中文官网 https://redis.cn在2009年发布,开发者是意大利的萨尔瓦多·桑菲利波普(Salvatore Sanfilippo),他本想为自己的公司开发一个用于替换MySQL的产品Redis,但是没有想到他把Redis开源后大受欢迎,短短几年,Redis就有了很大的用户群体,目前国内外使用的公司众多,比如:阿里,百度,新浪微博,知乎网,GitHub,Twitter 等。

2024-08-27 10:09:36 875

原创 Mysql 集群就是这么简单

为什么要用MHA?Master的单点故障问题什么是MHA?MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA 的出现就是解决MySQL 单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。MHA的组成MHA由两部分组成:MHAManager (管理节点) MHA Node (数据库节点),

2024-08-27 10:03:31 816

原创 TOMCAT入门到精通

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器起始于SUN 公司的一个Servlet的参考实现项目 Java Web Server,开发者是 James Duncan Davidson,在1999年,将项目贡献给了apache软件基金会(ASF),和ASF现有的项目 JServ 合并,并开源成为顶级项目。

2024-08-21 23:09:38 1470 1

原创 Nginx 从入门到精通

Nginx:engine X ,2002年开发,分为社区版和商业版(nginx plus )2019年3月11日 F5 Networks 6.7亿美元的价格收购Nginx是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服务器解决C10K问题(10K Connections)Nginx官网:http://nginx.orgTengine:由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。

2024-08-20 21:05:55 1706

原创 Web 服务基础介绍

正常情况下的单次web服务访问流程:什么是动态和静态?静态:网页可以看见源码动态:网页看不见源码Apache起初由美国的伊利诺伊大学香槟分校的国家超级计算机应用中心开发目前经历了两大版本分别是1.X和2.X其可以通过编译安装实现特定的功能。

2024-08-16 15:00:48 1173

原创 原来这就是KEEPALIVED(高可用集群大讲解)

vrrp 协议的软件实现,原生设计目的为了高可用 ipvs服务官网:http://keepalived.org/基于vrrp协议完成地址流动 (来回迁移)为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)为ipvs集群的各RS做健康状态检测基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务virtual_server IP port #定义虚拟主机IP地址及其端口。

2024-08-13 21:51:56 1148

原创 全网最全haproxy教学

负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展阿里云SLB介绍:SLB技术原理浅析-阿里云开发者社区HAProxy是法国开发者威利塔罗(Willy Tarreau)在2000年使用C语言开发的一个开源软件是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器。

2024-08-11 16:41:19 931

原创 LVS就应该这样学

Scale UP:向上扩展,增强 (硬件)Scale Out:向外扩展,增加设备,调度分配问题,ClusterLVS:Linux Virtual Server,负载调度器,内核集成,章文嵩,阿里的四层SLB(Server LoadBalance)是基于LVS+keepalived实现四层只能解决到传输层次的LVS 官网: http://www.linuxvirtualserver.org/LVS 相关术语VS: Virtual Server,负责调度RS:RealServer,负责真正提供服务。

2024-08-07 21:38:16 984

原创 kickstart自动安装脚本制作并且实现服务器自动部署

注意:服务器安装好后可以不需要管了,但是vm里面第一次安装好之后需要再换成硬盘模式再次进入。此文件是在系统安装好后自动生成的这个文件记录了系统在安装过程中的所有设定。在后面添加ks=http://172.25.254.35/ks.cfg。在后面添加ks=http://172.25.254.35/ks.cfg。#访问网站:http://172.25.254.35/ks.cfg。安装图形化生成kickstart自动安装脚本的工具。回车(发现无法安装:原因:dhcp关了没有网络)新建一个虚拟机(挂好镜像)

2024-08-06 08:56:22 452

原创 云原生高级必备基础

(1)软链接可以理解成快捷方式。和windows下得快捷方式得作用是一样的。(2)软链接文件的大小、创建时间和源文件不同。(3)软链接文件只是一个指向关系(从链接文件到源文件的指向关系),不是源文件的内容,大小不一样。说明:1.源文件被删除后,并没有影响硬链接文件;软链接文件在centos系统下不断的闪烁,提示源文件已经不存在2.重建源文件后,软链接不在闪烁提示,说明已经链接成功,找到了链接文件系统;

2024-08-05 20:15:30 1163

原创 NFS综合项目

4、该虚拟主机的documentroot目录在 /nfs/rhce 目录。1、在 node01 主机上提供 DNS 和 WEB 服务。3、web服务提供 www.rhce.com 虚拟主机。5、该目录由 node02 主机提供的NFS服务共享。6、该目录可以通过autofs服务实现自动挂载。7、所有服务应该在重启之后依然可以正常使用。2、dns 服务提供本实验所有主机名解析。

2024-07-10 22:14:19 299 1

原创 十四、监控脚本

脚本说明:通过wget(也可以用curl)监控服务器状态,如果不能正常访问,ping检测网。脚本说明:将密码输入错误超过4次的IP地址通过iptables防火墙阻止访问。1)首先,需要知道ssh远程访问记录在哪个文件中/var/log/secure。4)最后,需要明确怎么在脚本中通过iptables策略设置阻止恶意IP访问。有可能是手误输错,所以就需要设定几次错误为恶意试探密码,建议设置为4。络,网络正常通知管理员检查服务,ping不通邮件通知管理员。2)其次,模拟远程访问输错密码,查看日志文件。

2024-05-26 08:43:51 408 1

原创 十三、脚本调试

通常情况下,Shell脚本中的语法错误是非常明显的,并且语法错误一般会导致程序不可执行。但是逻辑错误却比较隐蔽,因为这些错误通常不会引起程序执行失败,但是逻辑错误却会导致程序得到错误的结果。尤其对于初学者来说,由于不熟悉Shell脚本的语法,会经常出现一些意想不到的错误。因为在编写Shell脚本的时候,经常会遇到各种各样的错误,通过调试技术,可以快速地排除错误。在进行Shell程序设计的时候,语法错误经常出现在关键字书写错误,引号错误,漏掉空格符以及变量的大小写问题等。

2024-05-26 08:43:20 350

原创 十二、shell编程之awk

虽然sed编辑器是非常方便自动修改文本文件的工具,但其也有自身的限制。通常你需要一个用来处理文件中的数据的更高级工具,它能提供一个类编程环境来修改和重新组织文件中的数据。这正是awk能够做到的。awk程序是Unix中的原始awk程序的GNU版本。awk程序让流编辑迈上了一个新的台阶,它提供了一种编程语言而不只是编辑器命令。定义变量来保存数据;使用算术和字符串操作符来处理数据;使用结构化编程概念(比如if-then语句和循环)来为数据处理增加处理逻辑;

2024-05-26 08:42:27 504

原创 十一、shell编程之sed

sed编辑器被称作流编辑器( stream editor),和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变。

2024-05-26 08:41:52 318

原创 十、通配符和正则表达式

在Linux命令行操作或者SHELL编程中总是容易混淆一些特殊字符的使用,比如元字符‘*’号,作为通配符匹配文件名时表示0个到无穷多个任意字符。而作为正则表达式匹配字符串时,表示重复0个到无穷多个的前一个字符。对于通配符和正则表达式之间容易理解的方法就是,在文本过滤命令中这些元字符是用做正则表达式,比如像awk,sed,grep等,主要是针对文件内容的。然而通配符多用在文件名上,比如查找find,ls,cp,mv等等。没有特殊说明,正则表达式就是指基础正则表达式。

2024-05-26 08:41:12 744

原创 九、图形化脚本

多年来, shell脚本一直都被认为是枯燥乏味的。但如果你准备在图形化环境中运行脚本时,就未必如此了。有很多与脚本用户交互的方式并不依赖read和echo语句。

2024-05-26 08:40:39 519

原创 八、函数和数组

通俗地讲,所谓函数就是将一组功能相对独立的代码集中起来,形成一个代码块,这个代码可以完成某个具体的功能。从上面的定义可以看出,Shell中的函数的概念与其他语言的函数的概念并没有太大的区别。从本质上讲,函数是一个函数名到某个代码块的映射。也就是说,用户在定义了函数之后,就可以通过函数名来调用其所对应的一组代码。使用shell函数优势1、把相同的程序段定义为函数,可以减少整个程序段代码量,提升开发效率。2、增加程序段可读性、易读性,提升管理效率。

2024-05-26 08:40:04 410

原创 八、函数和数组

通俗地讲,所谓函数就是将一组功能相对独立的代码集中起来,形成一个代码块,这个代码可以完成某个具体的功能。从上面的定义可以看出,Shell中的函数的概念与其他语言的函数的概念并没有太大的区别。从本质上讲,函数是一个函数名到某个代码块的映射。也就是说,用户在定义了函数之后,就可以通过函数名来调用其所对应的一组代码。使用shell函数优势1、把相同的程序段定义为函数,可以减少整个程序段代码量,提升开发效率。2、增加程序段可读性、易读性,提升管理效率。

2024-05-26 08:39:33 481

原创 七.控制脚本

虽然O1算法已经不是当前内核所默认使用的调度算法了,但是由于大量线上的服务器可能使用的Linux版本还是老版本,所以我相信很多服务器还是在使用着O1调度器,那么费一点口舌简单交代一下这个调度器也是有意义的。可以想象,当bash在等待人输入的时候,是不占CPU的,此时CPU消耗的程序会一直运算,假设每次都分到500ms的时间片,此时人在bash上敲入一个字符的时候,那么bash很可能要等个几百ms才能给出响应,因为在人敲入字符的时候,别的进程的时间片很可能并没有耗尽,所以系统不会调度bash程度进行处理。

2024-04-16 09:00:16 1217

原创 六、数据呈现

接下来,它通过分配好的文件描述符,使用read命令读取文件中的第一行,然后将这一行显示在STDOUT上。在echo语句将数据输出到文件时,它会将数据放在文件指针的当前位置,覆盖了该位置的已有数据。第二个exec命令将STDOUT重定向到文件, shell现在会将发送给STDOUT的输出直接重定向到输出文件中。注意,在显示file文件的时候并没有任何错误,因为file文件已经创建成功,只是文件内容是空的。它会将文件的读和写权限分配给文件的属主,并将你设成文件的属主。EOF符号标记了追加到文件中的数据的起止。

2024-04-15 20:46:53 860

原创 五、流程控制之循环

当循环体中的语句执行完毕之后,Shell会将列表中的第2个元素的值赋给变量variable,然后再次执行循环体。当list列表中的所有的元素都被访问后,for循环结构终止,程序将继续执行done语句后面的其他的语句。虽然可以使用任意合法的Shell命令,但是,通常情况下,expression代表一个测试表达式,当expression的值为0时才执行循环体中的语句,每次执行到done时就会重新判断while条件表达式是否成立,当expression的值为非0值时,将退出循环体。),同时等待用户输入数字选择。

2024-04-15 20:44:58 922

原创 四、流程控制之条件判断

条件判断语句是一种最简单的流程控制语句。该语句使得程序根据不同的条件来执行不同的程序分支。

2024-04-15 20:39:15 1027

原创 三.变量的运算

Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。两点注意:1. 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。2. 完整的表达式要被 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

2024-04-15 20:38:26 1064

原创 二、变量和引用

顾名思义,变量就是程序设计语言中的一个可以变化的量,当然,可以变化的是变量的值。几乎所有的程序设计语言中都有定义变量,并且其涵义也大同小异。从本质上讲,变量就是在程序中保存用户数据的一块内存空间,而变量名就是这块内存空间的地址。在程序的执行过程中,保存数据的内存空间的内容可能会不断地发生变化,但是,代表内存地址的变量名却保持不变。在Shell中,通常情况下用户可以直接使用变量,而毋需先进行定义,当用户第一次使用某个变量名时,实际上就同时定义了这个变量,在变量的作用域内,用户都可以使用该变量。

2024-04-15 20:35:15 673

原创 一.shell基本知识

在学习Shell编程之前,必须弄清楚什么是Shell。为了能够使读者在学习具体的Shell编程之前对Shell有个基本的了解,本节将对Shell进行概括性的介绍,包括Shell的起源和功能。

2024-04-15 20:32:28 1058

原创 项目:shell实现多级菜单脚本编写

本脚本主要实现多级菜单效果,并没有安装LAMP、LNMP环境,如果要用在实际生成环境中部署LNMP、LAMP环境,只需要简单修改一下就可以了。

2024-02-25 18:01:38 1208

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除