OpenResty
OpenResty简介OpenResty是一个基于Nginx与Lua(LuaJIT)的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web访问和动态网关
OpenResty通过汇聚各种设计精良的Nginx模块(例如Nginx C Module),从而将Nginx有效变成一个强大的通用Web应用平台。这样Web开发人员和工程师可以使用Lua语言调动Nginx支持各种C以及Lua模块,快速构造出足以胜任10k乃至1000k以上单机并发连接的高性能web应用程序
高性能服务端的要素:
缓存
异步非阻塞
互联网公司内部的技术架构基本相似,主要体现在如下几个方面:
数据量过大,如何定制存储
访问量过高,如何集群化部署,流量负载均衡
响应速度过慢,如何提高处理速度,引入多级缓存
如果机器过多,如何保证某服务器宕机,不影响业务的稳定
OpenResty通用可以充当网关,作为客户端与服务段之间的桥梁,将通用的、非业务逻辑抽离、前置到网关系统,减少重复性开发工作,是整个网站的唯一流量入口;为了提高系统的 ...
yaml语法
概念YAML(YAML Ain’t Markup Language),是一种可读性非常高的数据格式。YAML不再以标记为重点语言,而是围绕数据来组织结构化格式。常见YAML用于Playbook、K8S资源文件的书写标准
YAML文件后缀为yml、yaml
YAML语法规则
使用缩进表示层级关系、缩进的空格数不重要,只要相同的元素左对齐即可
YAML支持字典、数组、纯量(字符串、布尔值、整数、浮点数、Null、时间、日期)
YAML以#表示注释
区分大小写
纯量123456789101112131415161718192021222324252627name: xiaowangc # 字符串age: 18 # 整数number: 18.1 # 浮点数one: true # 布尔值two: null # nulltwo: ~ # nulldate: 2022-07-09 # 时间time: 2022-07-09T20:30+08:00 # 日期 年月日 小时分钟 时区# 多行表示str: > This is a long string written by ...
Jenkins-安装
概述Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
系统要求最低推荐配置:
256MB可用内存
1GB可用磁盘空间
小团队推荐配置:
1GB+可用内存
50GB+可用磁盘空间
软件配置:
Java8
安装JenkinsJenkins通常作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet 容器/应用程序服务器(Jetty)
Jenkins也可以运行在不同的Java servlet容器((如Apache Tomcat 或 GlassFish))中作为servlet运行
安装环境
软件包方式安装
1dnf -y install java
二进制方式安装
官网:https://www.oracle.com/java/technologies/downloads/,需要oracle账号
Jre和jdk环境都可,这里我们使用jdk的二进制包进行安装
下载好之后将压缩包上传至服务器
123456789 ...
Git分布式版本控制
Git概述官网:https://git-scm.com/
Git 是一个免费和开源的 分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。
Git易于学习, 占用空间小,性能快如闪电。它优于 SCM 工具,如 Subversion、CVS、Perforce 和 ClearCase,具有廉价的本地分支、方便的暂存区域和 多个工作流等功能。
其功能:
记录代码的变更(记录开发过程的变更和进程)
实现多人协作(多人的代码进行合并)
版本控制版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
可以将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微
从个人开发过渡到团队协作的
本地版本控制复制整个项目目录的方式来保存不同的版本,并改名加上备份时间以示区别,有时候会混淆 ...
Prometheus-Alertmanager
AlertmanagerPrometheus发出告警时分为两部分。首先,Prometheus按告警规则(rule_files配置块)向alertmanager发送告警(即告警规则是在Prometheus上定义的)。然后由Alertmanager来管理这些告警,包括去重(Deduplicating)、分组(Grouping)、静音(Silencing)、抑制(Inhibition)、聚合(Aggregation),最终通过电子邮件、WebHook等方式告警通知对应的联系人
安装Alertmanager12tar xf alertmanager-0.24.0.linux-amd64.tar.gzmv alertmanager-0.24.0.linux-amd64 /usr/local/
1234567891011121314151617[root@localhost alertmanager]# cat alertmanager.ymlroute: # 路由 group_by: ['alertname'] # 分组聚合 group_wait: 30s # 当新 ...
Prometheus-查询
度量类型Prometheus 支持四种类型的指标,它们是 - Counter - Gauge - Histogram - Summary
Counter(计数器类型)
计数器是一个只能增加或重置的度量值,即该值不能比之前的值减少。它可用于请求数量、错误数量等指标。
不是Counter类型的度量却当作Counter类型计算,会得到一个错误的结果。例如,使用计数器来计算当前正在运行的进程的数量;应该使用Gauge
Gauge(仪表测量类型)
Gauge是一个可以上升或下降的数字。它可用于衡量指标,例如集群中的 pod 数量、队列中的事件数量等。
Histogram(直方图类型)
Histogram是对数据进行采样的指标类型,用来展示数据集的频率分布。Histogram是表示数值分布的图形,它将数值分组到一个一个的bucket当中,然后计算每个bucket中值出现的次数。在Histogram上,X轴表示数值的范围,Y轴表示该对应数值出现的频次
Summary(摘要类型)
Summary和Histogram类似,主要也是用于表示一段时间内数据采样结果,它直接存储了quantile( ...
Prometheus-NodeExport
node_exporter安装node_exporter安装非常简单,只需要解压后台运行即可,默认端口:9100
官方下载地址:https://prometheus.io/download/
123456789101112131415161718192021wget https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gztar xf prometheus-2.36.1.linux-amd64.tar.gzmv prometheus-2.36.1.linux-amd64 /usr/loca/noderestorecon -Rv /usr/loca/nodetee > /usr/lib/systemd/system/node.service << EOF[Unit]Description=node_exporter[Service]Type=simpleExecStart=/usr/loca/node/node_expor ...
Prometheus-基础
PrometheusPrometheus是一个开源系统监控和警报工具包,最初在 SoundCloud构建。自 2012 年成立以来,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入 云原生计算基金会,成为继Kubernetes之后的第二个托管项目。
Prometheus主要特点
Prometheus使用的是度量(metric)名称和键/值对标签(label)的时间序列数据,是一种多维的数据模型
PromQL是一种灵活的查询语言,可以利用度量(metric)名称和标签进行查询、聚合
不依赖于分布式存储,单个Prometheus服务也是自治理的
使用基于HTTP的拉(pull)模型进行时间序列的数据收集
同时也支持通过一个中间网关(pushgateway)来推送时间序列
目标对象(主机)是通过静态配置或者服务发现来添加的
支持多种图形模式和仪表盘
Prometheus组件Prometheus目前已经是一个生态系统,具 ...
k8s安装1.23.6脚本
脚本适用于1.23.6版本
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154#!/bin/bashfunction set_repo() {echo "开始配置存储库..."echo "清空默认存储库..."sleep 2rm -rf /etc/yum.repos.d/*.repoecho ...
keepalived
Keepalived概念
前置知识LVS,点我转到LVS
Keepalived最初是为LVS而设计,用于避免LVS的单点故障(只有一台LVS服务器,当它Down之后整个集群就崩溃了)。该项目主要是为了Linux系统和基础设施提供简单而强大的负载均衡和高可用性,Keepalived中的负载均衡框架依赖与LVS(IPVS)内核模块,提供4层(OSI七层模型中的第四层)负载均衡。
简单来说,Keepalived是LVS的升级版,在此基础上增加了故障检测和**高可用(VRRP)**功能,之前我们配置LVS的时候是使用ipvsadm软件包来进行设置的,但使用keepalived之后就无需通过ipvsadm进行配置管理,更多的是用来查看LVS的配置。
如上图所示:
传统LVS实现Web应用的高可用,但是LVS存在单点故障。当LVS服务器Down掉之后,整个集群将瘫痪无法对外提供服务。
Keepalived+LVS架构解决了LVS存在的单点故障并提供负载均衡、高可用性。当Master节点Down掉之后,Backup发现之后就会代替Master接管VIP的工作
Keepalived节点可以任意台 ...