自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 prometheus之监控告警

alert是一个单独的模块,需要单独配置,需要声明邮箱地址。浏览器输入http://20.0.0.17:30066/#/alerts。5、创建prometheus的deployment文件。3、创建prometheus的configmap文件。告警项已经触发了发送配置(邮件、短信、电话、钉钉)7、创建告警的service文件(暴露端口)2、创建告警configmap配置文件。6、修改kube-proxy的监听地址。告警的阀值已经触发,正在等待发送邮件。1、设置发送告警邮箱授权码。8、触发、监控、恢复告警。

2024-02-01 11:11:53 522

原创 pormetheus之promQL语法

③irate高灵敏度的函数,计算指标的瞬时速率,基于样本范围内的最后两个样本进行计算,irate更适用于短时间内的变化速率分析,rate适用于长时间内的变化速率分析。对一定时间范围内的数据采样,通常是请求持续的时长和响应大小的类型,计入一个可配置的桶中(bucket),通过区间对样本进行筛选,也可以统计求和。le="0.0002"表示观测桶的上边界,样本的统计区间,表示所有的样本值小于等于上边界值的所有样本数量。统计过去2小时样本数据的变化,再根据过去2小时的数据变化预测未来4小时的数据变化。

2024-01-31 11:57:27 1467

原创 pod部署prometheus

通过kube-api的方式自动发现k8s的内部服务,包括node节点、pod、service、ingress信息,,可以访问api-server,表示可以获取集群的所有信息(仅限于pod,二进制部署无效)5、部署prometheus的deployment(实际上是用无时间同步做的。第二个:监控pod(格式:http://svc名称.命名空间.svc:端口)• 测试(浏览器输入http://20.0.0.17:31059/)• 测试(浏览器输入http://20.0.0.17:30346/)

2024-01-30 14:42:47 987

原创 二进制部署promethues

promethues server,定期从静态配置的监控目标或者基于服务发现的自动配置目标中进行数据拉取,拉取的数据会持久化保存到存储设备中(先拉取数据纳入到监控系统中,才能进行时序数据采集、存储、告警和展示),能直接把api server作为服务发现系统使用,动态监控、动态发现。(2)promethues认为只有最近的数据才有查询的需要,保存在本地的数据默认只有15天,不支持大量的历史数据进行存储,也不支持过往的历史数据,若一定要保存,可以基于远端存储,上传到influxDB或openTSDB系统中。

2024-01-29 14:17:59 1009

原创 k8s的安全机制

k8s组件都是通过启动时指定访问不同的kubeconfig文件,可以访问不同的集群,再到api server,再到namespace,再到资源对象,再到pod,再到容器。token是一个很长、很复杂的字符串,字符串是用来表达客户的一种方式,每一个token对应一个用户名,用户名存储在api server能够访问的文件中,客户端发起请求时,http header中包含token,token对应到api server,api server对应到用户名存储文件,解码查看是否对应用户名,验证通过可访问集群。

2024-01-25 14:05:06 1208

原创 k8s图形化工具rancher

rancher不仅能调度,还能管理k8s集群,并自带监控(普罗米修斯)升级过程中最大的能占所有pod的百分比,25%对应的是pod的数量。6、图形化界面创建namespace、pod、service。rancher时一个开源的企业级、多集群的k8s管理平台。④创建Ingress(还要安装ingress控制器)在持久化目录中创建index.html。5、监控集群(开启普罗米修斯监控)1、部署服务端(任选一台服务器)③创建service(暴露端口)2、部署客户端(其他服务器)②创建deployment。

2024-01-24 12:21:57 796

原创 hpa自动伸缩

(2)hpa和replication controller、deployment controller都属于k8s的资源对象,通过跟踪分析副本控制器和deployment的pod的负载变化,针对性的调整目标pod的副本数(针对性:有一个阀值,正常情况下,pod的副本数,以及达到阀值后pod的扩容最大数量)直接声明在命名空间中创建的pod或容器的资源限制(这是一个统一限制,所有在这个命名空间中的pod都受这个条件的限制)replication controller副本控制器,控制pod的副本数。

2024-01-23 15:07:01 876

原创 helm(一键式部署chart资源)

helm的软件包,包括deployment、service、ingress,是一些定义好的yaml资源,类似于yum的rpm包。在没有helm之前,需自定义deployment、service、ingress,helm的作用是通过打包的方式,创建一个自定义的chart模板(其中value.yaml最重要,这里的值会传给templates中的yaml文件)自定义的值,都是通过values.yaml文件,把自定义的数据覆盖到安装的chart。若这个chart依赖其他chart,依赖文件会保存在这个目录中。

2024-01-22 14:27:11 1101

原创 k8s之对外服务ingress

ingress的作用是定义请求如何转发到service的规则,相当于一个配置模板,ingress通过http和https暴露集群内部的service,给service提供一个外部的url、负载均衡、ssl/tls(https)功能,实现一个基于域名的负载均衡。nginx-controller默认配置的一个bachend,反向代理的端口,所有请求中,只要是不符合ingress配置的请求会转发到8181,相当于一个error页面。云平台上的service服务,由云平台提供负载均衡的IP地址。

2024-01-17 17:02:36 1764 1

原创 配置资源管理

configmap是1.2引入的功能,应用程序会从配置文件、命令参数、环境变量中读取配置信息,configmap在创建容器时,注入我们需要的配置信息,既可以是单个属性,也可以是整个容器的配置文件。在pod运行的情况下,对configmap的配置信息进行修改,直接生效(反应到容器当中),configmap的热更新不会触发pod的滚动更新机制(基于deployment创建的pod),通过设置version/config来触发滚动更新机制。保存的是加密的内容,到容器内部后是解密的内容,可以直接引用。

2024-01-16 16:52:41 919

原创 pod控制器

statefulSet是有序的,且pod名称是固定的,重建之后pod的标识符也不变(pod名称是唯一的标识符),系统直接通过pod名称解析pod的IP地址(pod名称不变,类似于访问百度一样,即便有多个IP地址,访问域名即可访问IP地址)pod名称是有序的(0到N),所有pod都是独立的,存储卷也是独立的,删除也不会改变pod的序号,扩缩容也是有序扩缩容。pod名称是有序的(0到N),所有pod都是独立的,存储卷也是独立的,删除也不会改变pod的序号,扩缩容也是有序扩缩容。指定pod副本的数量。

2024-01-15 15:38:47 810

原创 动态pv(nfs方式挂载)

NFS Provisione(即 nfs-client),有两个功能:一个是在 NFS 共享目录下创建挂载点(volume),另一个则是将 PV 与 NFS 的挂载点建立关联。k8s本身支持的动态pv创建不包括nfs,需要声明和安装一个外部插件provisioner(存储分配器),可以动态创建pv,根据pvc请求自动绑定和使用。,根据刚才赋予的权限监听k8s集群中pv请求,动态创建与nfs服务器相关的pv。环境变量:storageclass的名称,nfs服务器的地址,nfs的目录。

2024-01-15 15:32:08 1380

原创 存储卷(数据卷)—主要是nfs方式挂载

一旦回到原始状态,后天编辑的文件都会消失,所以容器和节点之间要创建一个持久化保存容器内文件的存储卷,即使容器被销毁、删除、重启,节点上的存储卷依然存在,后续可以继续将容器内的目录和宿主机挂载,保存的数据可以继续使用。因为两个容器内的目录均和节点上的/opt/test进行挂载,所以这个两个容器之间的目录也能数据同步,形成容器1的/usr/share/nginx/html、容器2的/data、节点上的/opt/test三者数据同步。持久化存储数据,pod销毁数据仍存在,但数据分散存储在各个节点上,不方便管理。

2024-01-11 17:34:41 1543

原创 k8s的集群调度

在k8s集群中,通过list-watch的机制进行每个组件之间的写作,保持数据同步,保证每个组件之间的解耦。

2024-01-08 17:40:01 1224

原创 pod进阶

Always无论状态码如何,均会重启。基于deployment的yaml文件只能是Always,pod的yaml三种模式均可OnFailure状态码非0才会重启,正常退出不重启Never无论状态码如何,均不重启注:这三个状态对应的是容器的状态,容器退出了,pod才会重启。pod有一个或多个容器,只要有一个容器退出,整个pod都会重启neverdocker的默认策略(常用)on-failure非正常退出才会重启容器(特殊情况下使用)always只要容器退出,都会重启(常用)

2024-01-05 15:05:21 843

原创 pod的生命周期

一个pod内的容器必须都运行在同一个节点上,基于现在容器技术的要求,最常见的是一个pod运行一个容器,一个容器只运行一个进程,主要为了横向扩展,方便扩缩容,还为了解耦,一个pod内运行多个容器,耦合度太高,一旦一个进程失败,整个pod将全部失败。每个pod会分配一个集群内部的唯一的IP地址,pod内的容器共享网络(pod在集群内部的IP地址和端口),pod内部的容器可以使用localhost互相通信,pod中的容器与外部通信时,从共享的资源当中进行分配。终止中,pod正在被删除,里面的容器正在终止。

2024-01-03 14:16:21 1182

原创 灰度发布及声明式资源管理(yaml文件)

把应用服务集群标记为两个组,认为分成蓝组和绿组。先升级蓝组,要把蓝组从负载均衡中移除,绿组继续提供服务,蓝组升级完毕,将蓝组加入到负载均衡中。再把绿组从负载均衡中移除,升级绿组,再将绿组加入到负载均衡中,完成对外服务。

2024-01-02 16:17:29 474

原创 k8s陈述式资源管理(命令行)

在每个node节点上都开放一个相同的端口,外部可以通过node的本机IP+端口访问pod资源,这是集群外部访问service资源的一种方式(四层代理),基于deployment创建的pod可以使用这种方式。创建service的默认类型,提供一个集群内部的虚拟IP地址,通过这个虚拟IP可以直接访问pod的资源,仅限于pod内部,无法对外提供访问。--grace-period表示过度的存活期(默认30秒,可以让pod优雅的结束容器内的进程,然后退出pod)kubectl exec -it 容器名称 bash。

2024-01-01 23:12:04 1374 1

原创 k8s的网络类型

有veth pair设备后,容器发出的IP地址通过veth pair设备到宿主机,宿主机根据路由规则的下一跳地址发送到网关(目标节点),数据包到达目标宿主机后,通过veth pair设备,目标宿主机根据路由规则的下一跳地址转发到目标容器。进行转发,flannel提供路由表,内核封装和解封装,但封装和解封装对数据传输的性能会有影响,同时不具备网络策略配置的能力,这个能力基于UDP协议,默认网段是10.244.0.0/16。BGP的客户端,专门负责在集群中分发路由规则的信息,每一个节点都会有一个bird。

2023-12-28 14:48:53 1564

原创 kubeadm搭建k8s单节点集群——适合中小企业的业务集群

1、所有节点上传 flannel 镜像 flannel.tar 和网络插件 cni-plugins-linux-amd64-v0.8.6.tgz 到 /opt 目录,把--bind-address=127.0.0.1变成--bind-address=192.168.233.91 #修改成k8s的控制节点master01的ip。1、上传 harbor-offline-installer-v2.8.1.tgz 和 docker-compose 文件到 /opt 目录。

2023-12-28 14:42:55 1056

原创 k8s的二进制部署(源码包部署)

opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://20.0.0.17:2379,https://20.0.0.37:2379,https://20.0.0.47:2379" member remove 故障节点的id。对于Pod,将输出Pod所在的Node名。

2023-12-27 17:05:08 1163

原创 https密钥认证、上传镜像实验

浏览器访问 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 获取镜像加速器配置。修改镜像标签docker tag httpd:latest hub.test.com/library/httpd:new。上传镜像docker push hub.test.com/library/httpd:new。10、浏览器访问https://20.0.0.17查看证书。9、安装harbor仓库(编译、安装)1、安装docker服务。

2023-12-26 16:14:40 278

原创 K8s简述

在k8s整个集群中,每创建一个pod都会为其中运行的容器分配一个集群内的IP地址,由于业务变更,容器数量可能会发生变化,容器的IP地址也会随之变化,不便于管理,service提供整个pod对外统一的IP地址。在k8s中,部署服务实际上就是pod,deployment部署的服务就是pod,replicaset就是定义pod的容器数量,可以保证pod在当前命名空间中不可重复,不同命名空间可以重复,官方推荐使用deployment进行服务部署。和内部的DNS名称),自动负载均衡关联的所有容器。

2023-12-26 16:08:17 240

原创 ansible的playbook

一个比较常见的应用场景,实现满足条件即执行,不满足条件即跳过任务(满足条件即执行,不满足条件不执行):组织和封装playbook,允许把相关的任务、变量、模板以及处理器组织成一个可复用的单元。存储和传递数据(变量可以自定义,①在playbook中定义为全局变量②可以外部传参)在目标主机上执行的操作,使用模块定义这些操作,每个任务都是一个模块的调用。①用户yst执行此脚本,但yst权限不够,使用root用户权限。相当于echo,用于脚本的调试,在正式脚本中去除。(已在脚本中设置用有权限的用户时用大K)

2023-12-20 16:20:18 169

原创 ansible(不能交互)

基于python开发的一个配置管理和应用部署工具,在自动化运维中异军突起,类似于xshell一键输入的工具,不需要每次都切换主机进行操作,只要有一台ansible的固定主机,就可以实现所有节点的操作。注意:在创建用户时,虽然声明一个程序用户,但默认的登录shell没有额外声明,但还是默认的/bin/bash,uid还是会安装程序用户来指定。注意:多个计划任务,如果不指定名称,一旦删除None,多个None均删除,不建议使用,一定要指定任务名称。#不加-m也就是不声明使用的模块,默认是command模块。

2023-12-18 12:24:47 199

原创 docker consul容器的自动发现与注册

consul是一个中间件,nginx服务通过consul-template获取模板,反向代理,consul-template,consul来获取服务的IP地址和端口,然后nginx调用发现的服务实现负载均衡。微服务1注册到consul时,consul会和这个服务的会话创建一个锁,锁用来表示具体的服务,会话和锁之间进行关联。其他服务需要和这个服务通信时,只需要向注册表查询服务位置信息(IP地址+端口),这样可以直接在服务注册表中直接获取需要的信息,不需要到静态配置查看。

2023-12-15 14:50:23 339

原创 docker-harbor私有仓库

用户进行访问控制,不同用户对docker镜像有不同的操作权限,registry每次都会指向一个不同的token,强制用户每次的pull/push都必须带一个合法的token(公钥对),registry会通过公钥对进行解密验证,身份合法才能做出对应的操作。在harbor中,其他组件(registry仓库,UI图形化界面,token公钥对)都在nginx的反向代理后面。API是程序接口,端口是主机和主机之间的通信,API是应用和应用之间的接口,管理员可以基于API调用接口和更多的其他程序进行集成。

2023-12-14 12:19:06 135

原创 docker-compose容器编排(单机一键拉起所有容器)

一种直观的、以竖列形式展示序列化数据格式的标记语言,可读性高。类似于json格式,但语法简单yaml通过缩进表示数据结构,连续的项目用-减号表示。

2023-12-13 12:29:19 269

原创 dockerfile基于NMP+wordpress创建镜像

浏览器访问http://20.0.0.16/wordpress/index.php。(解析php文件,需要挂载nginx和mysql)/opt/nginxlogs容器的目录。原因:nginx的html没有赋权。/opt/nginx宿主机的目录。解决:创建nginx容器时赋权。①准备好nginx的配置文件。①准备好mysql的配置文件。2、创建容器的自定义网络。②创建nginx基础镜像。(1)nginx镜像。③构建nginx镜像。④创建nginx容器。(2)mysql镜像。②创建mysql镜像。

2023-12-12 15:55:29 209

原创 dockerfile创建自定义镜像

是多个基础镜像和应用镜像结合起来的只读层,实际上,镜像就是一个只读文件,容器基于镜像实例,运行起来后,容器变成一个可读可写层。②ENTRYPOINT和CMD指令在容器启动时执行,都会成为容器的主进程,主进程负责接收信号,处理容器的生命周期,主进程退出,容器将终止运行。③镜像层是不可变的,在某一层中添加一个新的命令,但在下一层删除此指令,镜像中基于此命令创建的文件依然存在,但在容器中看不见。根据官方提供的镜像源创建镜像,拉取容器,但空空如也,只能提供基础功能,扩展性功能还需要自定义(进入容器进行操作)

2023-12-11 14:32:28 379

原创 docker的资源控制

(control grouos)功能进行控制,是一种限制、记录、隔离进程组所使用的物理资源的机制,docker借助这个机制实现资源控制,cgroup本身是提供将进程进行分组话管理的功能和接口的基础结构,分配控制的机制来实现资源控制。注意:CFS周期的有效范围是1ms~1s,--cpu-period的设置时间1000ms~1000000ms,所以容器使用的CPU的配额时间必须>1ms,--cpu-quota的值必须>=1000ms。只是给每个容器使用CPU设置。,权重高的,可以使用的CPU资源更多;

2023-12-08 16:11:45 365

原创 docker网络【重点】

①创建网段--opt "com.docker.network.bridge.name"="docker1"可以不加,但是网卡名称难以识别mynetwork自定义网段的名称②指定IP地址。

2023-12-07 19:20:50 102

原创 docker基本管理和概念

docker的宿主机是liunx系统,集装箱可以理解为相互隔离的容器(组件或应用程序APP),每个容器都是一个独立的应用程序。-d结合,会给容器一个直接运行的命令,后台没有指令,容器没有可运行的程序,将会直接退出。docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。一个开源的应用容器引擎,基于go语言开发,运行在liunx系统中的开源的、轻量级的“虚拟机”(6)可堆叠:在一个宿主机上可以创建不同版本的同一容器,也可以是多个相同版本的同一容器。

2023-12-07 19:08:31 322

原创 zabbix的自动发现机制、代理功能、SNMP监控

simple network management protocol简单网络管理协议。监控和管理网络设备的一个标准协议,用来监控交换机和路由器等网络设备。

2023-12-05 20:55:17 429

原创 zabbix监控

基于web界面提供的一种可视化的监控服务软件,已分布式的方式系统监控以及网络监控、硬件监控等的开源软件。

2023-12-02 18:31:08 137

原创 rabbitmq消息队列实验

rabbitmqctl set_permissions yyy ".*" ".*" ".*" #设置为最高权限。rabbitmqctl join_cluster rabbit@test1 #加入集群。rabbitmqctl reset #重置数据,会把数据都删除。rabbitmqctl cluster_status #确认集群状态。6、在test2,test3确认账户生成,证明数据同步成功,集群搭建完成。4、设置集群为镜像模式,集群节点互为对方节点的主节点。

2023-11-30 19:16:25 209

原创 ELK+filebeat+kafka实现日志收集

ES+node+phantomjs+elasticsearch-head-master组件。ES+node+phantomjs+elasticsearch-head-master组件。若无法启动filebeat,则tail -f filebeat.out查看日志。5、分别在nginx服务器和mysql服务器上修改filebeat配置文件。2、搭建zookeeper+kafka集群【注意服务器IP地址】-> kafka创建主题,日志存储在主题的分区里;-> filebeat收集日志传输给kafka;

2023-11-30 19:11:18 603

原创 zookeeper集群(很少用)+kafka集群(常用)

partition,每个主题可以分成多个分区,每个分区是数据有序子集,分区可以允许kafka进行水平拓展,以处理大量数据,消息在分区中按照偏移量存储,消费者可以独立读取每个分区的数据【人为创建】B启动,再发起一次选举,A和B分别投自己一票,交换选票信息,A发现B的myid比自己大,A的这1票会转投给B,此时B2票,A1票,还是不满足半数,A和B都是looking状态。C启动,若C的myid最大,A和B都会把票投给C,此时A—0票,B—0票,C—3票,C的状态变为leader,A和B变为follower。

2023-11-29 17:31:46 221

原创 filebeat日志收集工具

hosts:表示往哪个服务器上发送日志(filebeat先发往lostash,再由loastash发送到ES服务器)logstash可以使用任意端口,只有没被占用都可以使用,推荐使用从1024之后的端口号,用5044,5046都可以。filebeat无法实现数据过滤,一般结合logstash的数据过滤一块使用。tail -f filebeat.out 检查filebeat错误。httpd+nginx+mysql服务+filebeat组件。7、修改filebeat配置文件,接收不同主机上的服务的日志。

2023-11-28 16:27:14 342

原创 ELK日志分析系统

ELK是一套完整的日志集中处理方案,由三个开源软件简称组成。

2023-11-27 19:18:44 243

空空如也

空空如也

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

TA关注的人

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