自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx-module-vts监控nginx流量

nginx-module-vts:Nginx virtual host traffic status module,Nginx的监控模块,能够提供JSON格式的数据产出。主要用于收集Nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。Prometheus:监控Nginx-vts-exporter提供的Nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。...

2022-08-29 23:41:21 2149 1

原创 kafka常用命令

脚本相关常用命令,主要操作 Topic。创建名字为 "op_log" 的 Topic。

2022-08-29 23:36:55 3077

原创 WAF简介

所谓WAF,即Web Application Firewall,网络应用防火墙,是通过一系列执行针对HTTP/HTTPS的安全策略来为web应用提供安全防护的产品。有别于传统的防火墙,WAF专门针对应用层web应用而设计,能够起到防止流量攻击、SQL注入、XSS攻击等等。...

2022-08-14 21:44:04 16173

原创 Prometheus(三)——部署、操作及Grafana展示

目录一、部署Prometheus(192.168.223.30)1.1 环境准备工作1.2 普罗米修斯的部署 1.2.1 上传 prometheus-2.37.0.linux-amd64.tar.gz 到 /opt 目录中,并解压 1.2.2 修改配置文件 1.2.3 配置系统启动文件,设置开机自启 1.2.4 开启prometheus,并访问网页验证 二、部署Exporters(192.168.223.11) 2.1 监控远程Linux主机(192.168.223.11)2.1.1 上传 node_

2022-08-14 20:19:22 1514

原创 prometheus(二)——数据模型、数据模块、表达式浏览器

计数器:单调递增仪表盘:起伏特征直方图:平均数或分位值sumamary(统计数据)

2022-08-11 12:28:15 640

原创 Prometheus(一)——概述、监控体系、生态组件、部署

borgmon (监控系统) 对应克隆的版本:prometheus(go语言)所以prometheus 特别适合K8S 的架构上,作为一个数据监控解决方案,它由一个大型社区支持,有来自700多家公司的6300个贡献者,13500个代码提交和7200个拉取请求Exporters(指标暴露器) :收集节点的信息、将数据格式化或转化为promtheus可识别的http这种转化方式/镜像拉取方式Instrumentation (应用内置的指标暴露器): 收集有内置指标暴露器的信息。.................

2022-08-11 12:27:55 2455

原创 CI/CD:持续集成/持续部署

CI/CD是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD的核心概念是持续集成、持续交付和持续部署。指在开发过程中自动执行一系列从开发到部署的过程中,尽量减少人工的介入。具体来说,CI/CD可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务统称为“CI/CD管道”,由开发和运维团队协同支持。CI指的是持续集成,CD指的是持续交付和持续部署。......

2022-08-11 12:27:26 13264

原创 k8s:Helm 工具安装

在中部署容器云的应用也是一项有挑战性的工作,Helm 就是为了简化在 Kubernetes 中安装部署容器云应用的一个客户端工具。通过 helm 能够帮助开发者定义、安装和升级 Kubernetes 中的容器云应用,同时也可以通过 helm 进行容器云应用的分享。在 Kubeapps Hub 中提供了包括 Redis、MySQL 和 Jenkins 等常见的应用,通过 helm 可以使用一条命令就能够将其部署安装在自己的 Kubernetes 集群中。创建新的 charts(图表)......

2022-08-11 12:27:06 1046 1

原创 Kubernetes 的 HPA 原理详解

总的来说,从k8s v1.18开始HPA的机制已经算比较灵活了,在扩缩容识别指标上可以使用Pod的系统cpu、内存指标,也可以Pods自身暴露的自定义metrics指标,还可以支持外部的业务指标;在具体自定义实现上也提供了标准的扩展框架,还有社区其他人贡献的promesheus adapter。在扩缩容速度上也通过相对百分比和绝对 Pods数变化,可以独立控制单位时间内最大的扩容和缩容,此外还通过自定义窗口时间机制保证副本变化的稳定性。...

2022-08-11 12:26:18 2816

原创 Ingress的概念和原理

ingress controller是一个pod服务,封装了一个web前端负载均衡器,同时在其基础上实现了动态感知ingress并根据ingress的定义生成前端web负载均衡器的配置文件,ingress-nginx-controller本质上就是一个nginx,只不过它能根据ingress资源定义的动态生成nginx的配置文件,然后动态reload。个人觉得ingress controller的重大作用是将前端负载均衡器和k8s完美地结合起来,一方面在云、容器平台下方便配置管理,另一方面实现了。...

2022-08-08 16:08:40 1133

原创 nginx中的惊群效应

也就能够减少惊群冲突。这里说一下惊群的概念,惊群是指,当一个连接请求进来,多个进程多来等处理请求信息,就会消耗服务器资源。出于充分发挥多核CPU架构性能的考虑,使用了多个worker子进程监听相同端口的设计,这样多个子进程在accept建立新连接时会有争抢,这会带来著名的“惊群”问题,子进程数量越多越明显,这会造成系统性能的下降。以多进程为例,在主进程创建监听描述符 listenfd 后,fork()多个子进程,多个进程共享listenfd,accept是在每个子进程中,当一个新连接来的时候,会发生惊群。.

2022-08-06 15:00:50 409

原创 Kubernetes——PV与PVC

目录一、PV和PVC详解二、PV和PVC生命周期2.1 Provisioning2.2 Binding2.3 Using2.4 Releasing2.5 Reclaiming2.6 Recycling三、访问模式3.1 PV 的访问模式(accessModes)3.2 PV的回收策略(persistentVolumeReclaimPolicy) 3.3 PV的状态四、实验验证4.1 安装nfs4.2 创建pv.yaml 4.3 PVC 4.4 实验五、关于statefulset 5.1 statefuls

2022-08-06 14:43:13 2381

原创 playbook中template、tags、roles操作示例

ansible的template模块,可以将带有参数的配置文件传递到目标地址,可以对文件进行属组属主的修改以及备份。

2022-08-06 14:03:22 150

原创 ansible——playbook剧本概念及示例

cd /optvim 1.yamltasks:ping:123123Handlers也是一些task的列表, 和一般的task并没有什么区别。

2022-08-06 14:02:32 222

原创 k8s安全机制

kind: Podmetadata:spec:ports:serviceAccountName: daniel # 指定sa为daniel。

2022-08-06 14:00:46 1840

原创 k8s配置管理——secret与configmap

Secret 解决了密码、token、秘钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec 中。Secret 可以以 Volume 或者环境变量的方式使用。secret 可选参数有三种:Secret 类型:Pod 需要先引用才能使用某个 secret,Pod 有 3 种方式来使用 secret://get或describe指令都不会展示secret的实际内容,这是出于对数据的保护的考虑 1.2.3 将 Secret 挂载到 Volume 中,以 Volu

2022-08-06 13:43:27 647

原创 KubeSphere简介,功能介绍,优势,架构说明及应用场景

KubeSphere 是在目前主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。......

2022-08-04 12:20:11 3502

原创 KubeSphere介绍和基于K8S的安装

官网地址:https://kubesphere.com.cn/KubeSphere是打造一个以Kubernetes为内核的云原生分布式操作系统。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。KubeSphere是个全栈的Kubernetes容器云PasS解决方案。......

2022-08-04 10:16:45 2137

原创 k8s pod控制器详解

Pod是kubernetes自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建控制器创建的pod:kubernetes通过控制器创建的pod,这种pod删除了之后还会自动重建Pod控制器是管理pod的中间层,使用Pod控制器之后,只需要告诉Pod控制器,想要多少个什么样的Pod就可以了,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目标状态。如果Pod资源在运行中出现故障,它会基于指定策略重新编排Pod。......

2022-08-03 18:46:24 1404

原创 k8s资源限制以及探针检查

健康检查又称为探针(Probe),是由kubelet对容器执行的定期诊断。以上三种规则可同时定义。在readinessProbe检测成功之前,Pod的running状态是不会变成ready状态的。探针分为3种livenessProbe(存活探针)∶判断容器是否正常运行,如果失败则杀掉容器(不是pod),再根据重启策略是否重启容器readinessProbe(就绪探针)∶判断容器是否能够进入ready状态,探针失败则进入noready状态,并从service的endpoints中剔除此容器。...

2022-08-02 19:22:39 382

原创 K8S之调度约束+故障排查

Kubernetes通过watch的机制进行每个组件的协作,每个组件之间的设计实现了解耦。

2022-08-02 15:47:02 239

原创 k8s:Pod 基础概念

运行于各自容器内的进程无法直接完成网络通信,这是由于容器间的隔离机制导致,k8s中的Pod资源抽象正是解决此类问题,Pod对象是一组容器的集合,这些容器共享Network、UTS及IPC命令空间,因此具有相同的域名、主机名和网络接口,并可通过IPC直接通信。,基础容器(也可称为父容器)pause就是为了管理Pod容器间的共享操作,这个父容器需要能够准确地知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。Pod中的所有容器都可以访问共享的Volume。......

2022-08-02 14:54:55 628

原创 自动化运维工具——ansible、概述、安装、模块介绍

Ansible分为控制端和被控端,主要是基于SSH协议去管理客户端,被控端是无需安装Agent插件的,Ansible会读取控制端hosts文件,根据文件中定义IP列表信息,调取本地的各个模块对被控端机器实现批量、并发的配置管理和维护,如果任务比较复杂可以写成PlayBook剧本进行分发管理;Ansiblefacts是远程系统的信息,主要包含IP地址,操作系统,以太网设备,mac地址,时间/日期相关数据,硬件信息等信息。user模块是请求三条指令,useradd,userdel,usermod。......

2022-08-01 20:59:44 303

原创 coredns介绍

原因是镜像底层库DNS解析行为默认使用UDP在同一个socket并发A和AAAA记录请求,由于UDP无状态,两个请求可能会并发创建conntrack表项,如果最终DNAT成同一个集群DNS的PodIP就会导致conntrack冲突,由于conntrack的创建和插入是不加锁的,最终后面插入的conntrack表项就会被丢弃,从而请求超时,默认5s后重试,造成现象就是DNS5秒延时。coredns部署参考。......

2022-08-01 15:32:01 2080 1

原创 CPU使用率和负载区别及分析

处于D状态的进程通常是在等待IO,通常是IO密集型任务,如果大量请求都集中于相同的IO设备,超出设备的响应能力,会造成任务在运行队列里堆积等待,也就是D状态的进程堆积,那么此时LoadAverage就会飙高。当然,CPU并不会在前三十秒工作,后三十秒歇着,只是说,有的程序涉及到大量的计算,所以CPU利用率就高,而有的程序牵涉到计算的部分很少,CPU利用率自然就低。原因等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低。......

2022-08-01 15:03:01 3032

原创 kubernetes 亲和、反亲和、污点、容忍

在节点故障情况下,为了保持现存的pod驱逐的限速设置,系统将会以限速的模式逐步给node设置Taint,这就能防止在一些特定情况下(比如master暂时失联)造成的大量pod被驱逐的后果。使用kubectltaint命令可以给某个Node节点设置污点,Node被设置上污点之后就和Pod之间存在了一种相斥的关系,可以让Node拒绝Pod的调度执行,甚至将Node已经存在的Pod驱逐出去。NoSchedule表示k8s将不会将Pod调度到具有该污点的Node上。.........

2022-08-01 00:17:47 650

原创 非关系型数据库MongoDB的特点及安装

mongodb不一样,只要,业务上能保证,冷热数据的读写比,使得热数据在物理内存中,mmap的交换较少。集合是无模式的,集合中的文档可以是各式各样的。例如,{“hello,word”“Mike”}和{“foo”3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。例如,对于网站的日志记录,可以根据日志的级别进行存储,Info级别日志存放在Info集合中,Debug级别日志存放在Debug集合中,这样既方便了管理,也提供了查询性能。......

2022-08-01 00:02:11 430

原创 nacos注册中心

Nacos的全称是DynamicNamingandConfigurationService,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。Nacos是阿里旗下的一款开源产品,它主要是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案;简单来说Nacos是阿里巴巴开源的一款中间件,常用于分布式微服务场景,主要功能包括两大块服务注册发现、服务配置。httpshttpshttps。..........

2022-07-31 21:48:52 668

原创 Kubernetes常用命令

YAML,即YAMLAin’taMarkupLanguage(YAML不是一种标记语言)的递归缩写。YAML其实意思是YetAnotherMarkupLanguage(仍是一种标记语言)。它主要强度这种语言是以数据为中心,而不是以标记为中心,而像XML语言就使用了大量的标记。YAML可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,还可以简单表达数组、散列表,标量等数据形态。YAML使用空格缩进,这是Python开发人员熟悉的领域。.........

2022-07-31 02:39:53 1884

原创 Kubernetes:k8s组件

访问的方式是通过kube-proxy匹配iptables功能进行转发的(四层)k8s官方默认提供了四层的代理/负载均衡方式,而我们可以借助于官方后续支持的ingres-nginx提供七层转发/负载均衡。

2022-07-28 00:22:56 301

原创 Kubernetes基本概念

Kubernetes(通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写)是一个以容器为中心的基础架构,可以实现在物理集群或虚拟机集群上调度和运行容器,提供容器自动部署、扩展和管理的开源平台。满足了应用程序在生产环境中的一些通用需求应用实例副本、水平自动扩展、命名与发现、负载均衡、滚动升级、资源监控等。Kubernetes是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。作用Docker自我修复组件名称。......

2022-07-28 00:08:53 577

原创 Docker Harbor概述及构建

有可视化的Web管理界面,可以方便管理Docker镜像,又提供了多个项目的镜像权限管理及控制功能Harbor是VMware公司开源的企业级DockerRegistry项目。

2022-07-21 17:26:42 614

原创 Docker-Consul概述以及集群环境搭建

先发现再更新,发现的是后端节点上容器的变化(registrator),更新的是nginx配置文件(agent)是consul安插在docker容器里的眼线,用于监听监控节点上容器的变化(增加或减少,或者宕机),一旦有变化会把这些信息告诉并注册在consulserver端(使用回调和协程的方式,所以它的延迟和资源消耗会很少),consulserver发生一旦发生注册列表的变化后,会把注册的信息告诉agent。...

2022-07-20 20:16:12 167

原创 docker-compose概述与简单编排部署

compose是一个用于定义及允许多个Docker容器的工具,主要是通过一个YAML文件进行服务配置使用DockerCompose不再需要使用Shell脚本来启动容器DockerCompose非常适合组合使用多个容器进行开发的场景YAML(语言)的设计目标,就是方便人类读写,它实质上是一种通用的数据串行化格式大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可#表示注释。...

2022-07-20 01:18:47 376

原创 Docker 搭建 LNMP + Wordpress(详细步骤)

docker1ether024240dce8。

2022-07-20 01:11:55 1113

原创 docker的资源控制管理——Cgroups

CPU—>VCPU–>以进程的方式体现在workstation环境(docker环境中)—》docker表现形式是容器,–>Vcpu以进程的方式控制容器–》容器中的应用需要的是服务进程支持–》宿主机内核中cpu可以被cgroup管理(通过分配资源手段)–》linux内核中的cgroup可以直接控制VCPU的资源分配,而VCPU在workstation中是以进程的方式管理docker容器的,所以,也可以认为Cgroups在直接/间接管理docker容器中的应用。...

2022-07-19 22:59:46 229

原创 dockerfile优化及本地私有仓库搭建

减少不必要的缓存(丢到黑洞)删除不必要的缓存文件/磁盘文件。

2022-07-18 19:29:47 398

原创 Dockerfile的概述和构建

dockerfile是**自定义镜像**的一套规则dockerfile由多条指令构成,Dockerfile中的每一条指令都会对应于镜像中的每一层。

2022-07-17 15:48:35 481 3

原创 docker的数据管理

目录一、如何管理docker容器中的数据二、数据卷2.1 原理2.2作用2.3实操三、数据卷容器3.1原理3.2作用3.3实操四、总结 管理Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器( DataVolumes Containers) 。将容器内部的配置文件目录,挂载到宿主机指定目录下需求:宿主机目录/var/www挂载到容器中的/data11.#把宿主机挂载到容器内部 2、#另外开一个终端在宿主机进行查看 3、#在容器中创建文件 4、#在宿主机查看是否有内容

2022-07-14 17:40:56 141

原创 docker网络模式

2.3 指定分配容器IP地址 可以先自定义网络,再使用指定IP运行docker两个容器如果端口一致的情况下,暴露出去会产生地址冲突,所以需要在docker0上做一个端口映射,通过ens33暴露出去端口不同就可以了-p 自定义端口 ( 宿主机端口:容器内端口 )-P 随机端口 (-P 49153起始 49153到65535)#自定义端口#需要在容器中开启nginx#在网页测试 我这边了解到的有四种,Host container none bridge#使用cp命令复制进去容器#

2022-07-14 17:31:32 1292

空空如也

空空如也

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

TA关注的人

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