自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 prometheus的alertmanager监控报警

firing:表示告警项已经触发了发送配置(邮件, 短息,电话,钉钉告警)需要声明一个邮箱地址。配置是以configmap进行部署。pending:告警的阀值已经触发,正在等待发送邮件。alert是一个单独的模块,需要我们单独的配置。但是kube-proxy断开了,要做一个小的修改。给alertment配置service,提供访问。inactive:表示已经激活的告警指标。先进入pending状态。再变成firing状态。

2024-02-01 12:14:35 478

原创 prometheus 容器化部署

创建一个账号,来管理Prometheus,搜集集群信息。prometheus pod 创建一个 service。如果要更新 prometheus-config这个。配置Prometheus的configmap。不要直接delete。线上环境一定要热更新。设置两个监控,一个是node,一个是容器。prometheus的容器化部署。创建node-exporter。node-export 装好了。做一个压力测试,监控情况。创建prometheus。如果出现时间不同步的时候。进入容器,开始压力测试。

2024-01-30 15:30:00 975

原创 procmethues 二进制安装

七,pushgateway:类似于一个中转站,server端只会使用pull拉取数据,节点的数据只能以上传的方式(push)发送,先把数据保存在pushgateway,prometheus server统一从pushgateway拉取数据。二,exports负责在节点收集数据,node-exports服务收集服务器节点的状态数据,CPU,内存,网络,磁盘等等都是他收集。不在于数据的持久化,只关注最近的需要查询的数据。2,是时间序列的数据,按照时间的顺序记录系统,设备变化的数据,容器化数据。

2024-01-29 15:21:55 980

原创 k8s 安全机制

服务端收到加密字符串,节目,获取用户名和密码,验证通过,登录成功。k8s中的组件通过启动时自动访问不同的kube config,可以分为不同的集群-----api server----namespace-----资源对象----pod-----容器。客户端发起请求----(请求包含)token----apiserver(用户名存储文件)-----解码------用户名-----访问集群。------------------- 实践:创建一个用户只能管理指定的命名空间 -------------------

2024-01-25 14:26:53 1402

原创 k8s的图形化工具---rancher

都是为了容器的调度和编排系统,但是rancher不仅能调度,还能管理k8s集群,自动监控(普罗米修斯)。你哪怕不知道k8s是什么,一样轻松的部署 容器到k8s的集群中。在master01、node01、node02上下载rancher监控端。racher是一个开源的企业级多集群的k8s关联平台。在k8s4主机上部署rancher的服务端。k8s的图形化工具---rancher。在k8s5---部署rancher服务。rancher部署的结构。创建deployment。声明式:yaml文件。

2024-01-24 16:40:41 813

原创 HPA 自动伸缩

通过跟踪分析副本和deployment的pod的负载变化,针对性的调整目标pod的副本数。lucky-cloud项目----部署再test1的命名空间,如果lucky-cloud不做限制,或者命名空间不做限制,他依然会占满所有集群资源。如果业务的峰值较高,回收的策略太积极的话,可能会产生业务的崩溃。阀值:正常情况下,pod的副本数,以及到达阀值之后,pod的扩容做的数量。pod的资源限制,一般是我们创建的时候就声明好的,生产中是必加选项。自动扩缩容的的机制,扩的快,缩的慢,快的话系统容易崩溃。

2024-01-24 16:38:01 869

原创 helm 一键部署

什么是helm,再没有整个helm之前,deplyment service ingress helm的作用就是通过打包的方式, 把deployment,service ingress 这些打包在一块,一键部署服务。--dry-run --debug:这个chart不会部署到集群当中,参数验证,测试chart的配置是否正确。Chart.yaml:helm chart的元数据文件,包含了这个chart的名称,版本,维护者信息等等。Repostory:仓库,提供一个服务器,服务器中包含chart的资源。

2024-01-22 16:41:20 916

原创 ingress

现在执行这个yaml文件, 会生成一 个service,在ingress-nginx这个命名空间生成一 个service .所有的controller的请求都会从这个定义的service的nodeport的端口, 把请求转发到自定义的service的pod .每个节点都有controller----接受到解析后的请求ip+端口----ingress---service----pod。1,集群内部:不断跟踪pod的变化,更新endpoint中的pod对象,基于pod的IP地址不断变化的一种服务发现机制。

2024-01-22 16:28:34 848

原创 配置资源管理

configmap的1.2引入的功能,应用程序会从配置文件,免密参数,以及环境变量中读取配置信息 configmap在创建容器中,给他主任我们需要的配置信息。configMap的热更新:热更新可以直接反映到容器的内部,也不会触发pod的更新机制。generic:是secret的默认模式,Opaque base64加密编码的secret,用户自定义的密码,密钥等等。2,config的热更新,在pod运行的情况下,对config的配置信息进行修改。把加密的信息传到指定容器的指定目录当中去,在容器中不是加密的。

2024-01-16 16:51:17 868

原创 pod 控制器

statefulSet:有状态的应用,pod的名称的有序的,所有的pod都是独立的。statefulset是有序的,pod的名称是固定的。3,statefulSet:控制器的一种,管理有状态的应用,可以可以设置副本数,可以扩缩容。pod的序号的固定的,重启之后,pod的名称也不会发生变化。maxUnavailable: 25%在升级的过程中,新的pod启动好后,销毁的就的pod的数量不能超过pod的25%pod控制器:工作负载,workload,用于管理pod的中间层,确保pod资源符号预期的状态。

2024-01-15 17:51:23 801

原创 k8s 存储卷和pvc,pv

1,provisioing(配置)----pvc请求request----检索(找一个合适的pv)---pvc和pv(binding 绑定)----使用-----pod被删除------pv的releasing(释放)----recycling(回收)pod内的挂载点声明一个请求pvc请求,pvc会找一个最合适的pv来作为pod的存储卷,pv和关系目录在一一映射,最终由nfs来提供最终的关系存储空间。2,hostPath:将容器内的挂载点,和节点上的目录进行挂载,hostPath可以失效数据的持久。

2024-01-15 17:48:11 1056

原创 k8s的集群调度

test1一般是节点标签,表示希望把pod调度到包含有app标签的pod,值为nginx的在test1的拓扑域上的节点。2,podfitshost:pod适应主机,如果pod指定了node的name,nginx1pod---->node01,检测主机名是否存在,存在要和pod指定的名称匹配。查找指定node节点上的标签是否存在,存在的标签是否匹配。有的节点还是在源节点上。旨定key的值,指标节点的标签值,但是不指定污点的类型,那么所有节点上只要包含了这个指定的标签名,可以容忍含有标签的所有的污点。

2024-01-09 17:39:16 1082

原创 pod 基础 3

就绪探针,pod的状态是runing ready状态是notready,容器不可以提供正常的业务访问,就绪探针不会重启容器。3,退出时,可以执行自定义命令,删除或者生成一下必要的程序,自定义销毁方式以及自动会场的方式,以及容器的退出等待时间。6,就绪探针,如果不影响容器运行,status:running,这个时候不会重启,但是容器退出的话,就绪探针也会重启。5,在pod的生命周期当中,后续的条件是满足哪个探针的条件,触发哪个探针的条件。2,再度探针的优先级是最高的,只有启动探针成功,后续的探针才会执行。

2024-01-05 14:46:44 866

原创 pod 基础 2

3,tcpSocket:端口,对指定端口上的容器的IP地址进行的tcp检查(三次握手),端口打开认为 探测成功。检查特点容器的打开济安泰状态。1,存活探针:livenessProbe 探测容器是否正常运行,如果发现探测失败,会杀容器,容器会根据重启策略来决定是否重启,不是杀掉pod。httpGet:对web容器发起一次get请求,可以添加path,指定访问的资源。只是在容器的启动后开始检测,容器内的应用是否启动成功。pod可以有多个容器,只要有一个容器退出,整个pod都会重启,pod内的所有容器都会重启。

2024-01-04 17:16:47 444

原创 k8s pod基础 1

1,pod内部有一组容器,挂了一个,整个pod也不会失效。1,在pod的启动过程中,每一个初始化容器,容器按照初始化容器先启动,每个容器必须在下一个容器启动之前,要成功退出。2,running:运行中,pod已经被分配到了node节点,pod内部定义容器都已经启动,运行状态正常,稳定。2,pod内的容器共享ip,共享volume挂载卷,解决了容器内网络通信的问题,解决了容器内部文件共享的问题。自主式pod:pod不会自我修复,如果pod内容器的进程终止,被删除,缺少资源被驱逐,这个pod没有办法自愈。

2024-01-03 16:21:36 583

原创 声明式管理方法

灰布发布(重点)基于deployment的滚动发布,使用了一个机制 pause。apply -f:既可以创建资源对象也可以更新资源对象。不论是args和commmand都会覆盖CMD和ENTYRPOINT容器的标准输出。3,编辑好的yaml文件,还是要依靠陈述式命令发布到k8s集群当中。2,声明式管理依赖于yaml文件,所有的内容都在yamI文件当中。args可以理解docker中的CMD,给commnad传参。delete -f:删除yaml文件中声明的资源对象。2,可以根据已有的yaml文件进行修改。

2024-01-02 17:38:36 813

原创 k8s 陈述式资源管理

确定无问题之后,在把剩下的老版本,升级成新的版本,把暂停取消,继续发布。ClusterIP:创建service的默认类型,通过一个集群内部的虚拟ip地址,这是service的默认类型,通过这个虚拟ip可以服务pod的资源,无法对外提供访问。如果是基于deployment方式创建的pod,或者是daemonset方式创建的pod,是由控制器创建的pod。在发布升级的过程中,只有一部分集群在对外提供服务,可能会使集群的负载能力下降,响应变慢,需要注意给集群增加负载能力(一般来说没什么特殊需要。

2024-01-02 15:09:30 1416

原创 kubeadm 快速搭建

所有节点上传 flannel 镜像 flannel.tar 和网络插件 cni-plugins-linux-amd64-v0.8.6.tgz 到 /opt 目录,协调这个命名空间里面的资源。--service-cidr=10.96.0.0/16 \ 所有sevice的对外代理地址都是10.96.0.0/16。--apiserver-advertise-addres : 声明master节 点的apisever的监听地址。--token-ttI=0 默认的token的有效期,默认是24小时,示永不过期。

2023-12-28 16:04:05 925

原创 k8s 网络

----------------------------- 部署 Dashboard ------------------------------------------------------------ 负载均衡部署 ------------------------------cni是一个标准接口,用于容器运行时调用网络插件,配置容器网络,负责设置容器的网络命名空间,IP地址,路由等等参数。每一个pod都有一个全局的真实的IP地址,同一个node之间的不同的pod可以直接使用对方的IP地址进行通信。

2023-12-27 17:42:43 1187

原创 k8s的二进制部署1

RBAC授权,生成和赋权用户kubelet-bootstrap,发起node节点的请求认证,通过CSR加密认证实现NODEk节加入到集群当中。------------------------------ 部署 Master 组件 ------------------------------定义连接到哪个k8s集群,以及使用哪个用户的身份来进行操作,上下文包含 了集群,户,和可选命名空间的信息。ca-config.ison 证书颁发机构的配置文件,打印了证书生成的策略,默认的过期时间和模板。

2023-12-26 16:12:18 1095 1

原创 k8s 组件

可以保证pod的不可重复性。在k8s集群当中,创建一个pod之后,都会在其中运行的容器分配一个集群内的IP地址,由于业务的变更,容器可能会发送变化,IP地址也会发生变化,service的作用就是提供整个pod对外统一的ip地址。根据调度算法选择一个核数的node,node的节点的资源情况,node的资源控制情况等等,选一个资源最富裕, 负载最小的node来部署一般来说默认策略即可。1,弹性收缩,可以基于命令,或者图形化界面基于cpu的使用情况,自动的对部署的程序进行扩容和缩容,以最小的成本运行服务。

2023-12-25 17:28:07 1288 3

原创 playbook 模块

标签模块,可以在playbook当中为任务设定标签(tags),我们在允许playbook时可以通过指定任务标签,来实现只运行设定的标签任务。/etc/ensible/hosts 配置了主机的占位符名称和j2文件中的占位符一致(定义参数:占位符的参数声明好)rolse:分别把变量文件任务模块以及处理器,放在单独的目录当中,使用rolse模块来一键调用这些文件。httpd.conf.j2 在文件当中配置的是占位符(声明的变量)-------main.yml 角色运行的任务。

2023-12-21 17:26:51 890

原创 playbook 剧本

允许把相关的任务,变量,模板和处理器组织成一个可复用的单元。1,tasks 任务:包含要在目标主机上执行的操作,使用模块定义这些操作。4,handlers 处理器:当需要有变更的时候,据执行触发器。when 是一个比较常见的应用场景,实现满足条件即执行,不满足条件即跳过的任务。四,列表里面的元素定义了循环的次数,第二层列表,相当与内循环。#一个name就是一个任务名,名字可以不写。三,组循环,列表当中的值一-一 对应,打印出。练习:基于循环,创建文件,目录,和用户组。二,列表对应的列,数据结合的方式循环。

2023-12-20 17:11:00 842

原创 Ansible:模块2

文件/opt/fstab. bak在目标主机的/opt下,创建- -一个文件fstab. link作为fstab . bak的软连接。ansible_user 指定路径是使用对方主机的用户名,不指定主机执行ansible的用户即为使用目标主机的用户名。给/etc/fstab创建一个软连接, 这个文件是主机/ opt/ fstab . bak复制过来的文件,复制的。src:复制文件的源,最好使用绝对路径,源目标是目录,指目标也得是目录。set up查看目标主机的环境系统(facts),目标节点的系统信息。

2023-12-20 17:08:24 866

原创 Ansible:模块1

使用ansible的user模块创建用户时,如果创建普通用户可以不加system=no,指定shell轮询可以不加,默认就是/bin/bash 如果创建的是程序用户,一定要声明system=yes,声明shell的类型 shell=/sbin/nologin。在创建用户时,虽然我声明了是一个程序用户,但是默认的登录shell如果没有额外的声明,还是默认的/bin/bash,uid会按照程序用户来指定。ansible是基于模块进行工作,只是提供了一种运行的架构,执行和辩证的是absible的模块来实现的。

2023-12-18 14:56:41 1036

原创 docker consul

-template "/opt/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/test.conf:/usr/local/nginx/sbin/nginx -s reload": 模板的定义,1,动态的配置更新。consul-template:自动化管理配置文件的工具,获取consul当中注册的服务信息,可以自动的添加到配置文件当中,及时生效,无需重启服务。4,KV存储:key-value分布式的键值对存储协调,存储配置信息,锁,特性。

2023-12-15 15:00:04 482

原创 docker-harbor 私有仓库

Resgistry每次都会指向一个不同的Token,强制用户每次的pull/push,都必须带一个合法的token(公钥对),Registry会通过公钥对,进行解密验证,身份合肥才能指定操作。1,proxy:安装完了harbor之后,他会自动生成一个nginx的容器,自动对外映射,80 端口,nginx是做前端代理,在haarbor当中registry,UI,TOKEN,都是nginx的反向代理后面。7,支持API操作,(API的程序接口,端口:主机和主机之间的通信 API是应用和应用之间的接口。

2023-12-14 13:48:53 988

原创 docker-compose 单机容器编排

虽然我们登录容器,显示的是root用户,伪管理员,一旦privileged: true,容内的root用户和宿主机的root用户,拥有一-样的权限,在生产中能不给就不给。docker-compose 既可以基于dockerfile,也可以基于镜像,一键式拉起镜像和容器。-f:使用特定的compose的模版文件, -般都用docker-compose.yml。docker-compose:命令的开头,使用docker-compose进行容器编排。#指定docker-compose的文件版本。

2023-12-13 14:14:17 884

原创 yaml 文件格式

6,单引号引起来的字符,会被当做平台字符串来处理,双引号引起来的是特殊字符,就是本义。yaml文件:是一种标记语言,以竖列形式展示序列化的时间格式,可读性高。声明变量:(表里,单个的,不可再分的值 字符串,整数,布尔类型)yaml通过缩进来表示数据结构,连续的项目用-减号来表示。5,符号字符后面都有一个空格:test: 2。list(列表):表示有序的元素集合:要对其。3,只能用空格缩进不能tab缩进。类似于json格式。2,通过缩进表示层级关系。

2023-12-13 14:09:46 411

原创 dockerfile 构建LNMP

创建镜像:docker build -t nginx:lnmp .dockerfile 创建镜像 LNMP+wordpress。进入数据库,打开远程连接权限。

2023-12-12 17:21:59 1090

原创 dockerfile创建镜像

rootfs镜像的操作系统:会给镜像自动创建一个操作系统,在dockerfile中,我们可以自己指定。bootfs:宿主机的引导文件系统,启动操作系统的内核文件,启动容器需要的最基本的文件。镜像层是不可变的,你在某一层当中添加一个新的命令,但是下一层删除了做了,镜像中基于这个命令创建的文件依然存在,但在容器中看不见。ADD:复制,解压。3,dockerfile 联合文件系统(UnionFS),docker镜像的基础,RUN:在基础镜像上执行的命令,每个RUN就是一层,分层越多,镜像就越大。

2023-12-12 17:19:29 923

原创 docker 资源控制

是给每个容器使用cpu设置了相对的权重,权重高的,可以使用cpu的资源更多,但是,如果只有一个容器在运行,即使设置了权重,但是没有其他权重高的权重的容器来占用资源,权重第的容器不受影响。在使用dd获取空字符集是从文件系统的缓存当中输入,速度是比较快的,禁用文件系统缓存,直接把数据写入磁盘,可以更真实的测试设备的性能,模拟直接写入物理设备的情况。如果-m 512m --memory-swap--1, 内存受限还是512M,但是容器使用swap空间不再限制。以及在这个周期之内各个容器能够使用cpu的调度时间。

2023-12-12 17:14:32 949

原创 docker 网络

数据卷是一个供容器使用的特殊目录,在容器中,和宿主机的目录进行映射,主机和宿主机之间都可以对目录中的文件进行修改,双方都是同步生效。2,分配唯一的ip地址,每次运行一个容器,docker进程都会分配唯一的且未被其他容器占用的ip地址给容器。5,自定义网络:创建容器时,默认使用docker0网桥是无法给容器调用ip地址的,只能自动分配。部署一个mysql的镜像,创建一个mysql的容器,用navicat 可以访问容器的mysql mysql的端口 33066---3306。-P:在创建容器时。

2023-12-12 17:07:58 967

原创 docker 基本管理

1,UTS(命名空间),系统调用参数:CLONE_NEWUTS,隔离内容:主机和域名,在UTS这个命名空间当中创建进程,进程可以看到自己的主机名和域名,与其他进程分割开。镜像:是docker的基础,最小单位。类似于虚拟机的ISO文件,一个镜像就是一个可执行的包,包里面包含了运行这个程序的所有内容(代码,配置文件,环境变量。容器:docker的容器就是基于镜像运行起来的实例,可以启动,停止,删除。docker的容器技术可以在一台主机上轻松的为如何应用创建一个轻量级的,可移植的,自给自足的容器。

2023-12-06 17:08:06 984

原创 zabbix 进阶

zabbix的配置:先有主机,再有模版,模版当中设置应用集,在应用集当中配置监控项,在监控项之后配置触发器,图形(可选。#安装 Zabbix 代理(zabbix-proxy-mysql)和 Zabbix 客户端工具(zabbix-get)市面上zabbix是一款成熟的监控软件,有所有一切的模板,脚本。DBPassword=zabbix #196行,指定当前数据库 zabbix 用户的密码。但是不能很好的监控容器的运行。作业:在zabbix中使用SNMP,监控ens33的数据流量,如果设备故障,发送邮件。

2023-12-06 17:03:04 1238

原创 zabbix 监控

1,zabbix server的作用:通过一系列的组件 SNMP,zabbix,agent,ping 通过端口远程的健康客户端的数据,把数据收集到服务器进行展示,以及系统用户分析的界面(web)。zabbix server的作用:通过一系列的组件 SNMP,zabbix,agent,ping 通过端口远程的健康客户端的数据,把数据收集到服务器进行展示,以及系统用户分析的界面(web)。zabbix agent:就是被监控的目标机器,把需要收集的收集以及自定义的监控数据,发送给zabbix server。

2023-12-01 17:26:35 861

原创 实验 elk+filebeat+kafka

broker.id=0 ●21行,broker的全局唯一编号,每个broker不能重复,因此要在其他机器上配置 broker.id=1、broker.id=2。log.segment.bytes=1073741824 #110行,一个segment文件最大的大小,默认为 1G,超出将新建一个新的segment文件。log.retention.hours=168 #103行,segment文件(数据文件)保留的最长时间,单位为小时,默认为7天,超时将被删除。

2023-12-01 17:16:40 1405

原创 zookeeper集群+kafka集群

B 启动,再发起一次选举,A和B分别投自己一票,交换选票消息,myid,A发现B的myid比A大,A的这一票转而投给B A 0 B 2没有半数以上的结果,AB会进入looking B有可能成为leader。:broker每个kafka节点都有一个borker,每个负责一台kafka服务器,id唯一,存储主题分区当中的数据,处理和生产消费者的请求。主题可以分区,每个分区都有自己的偏移量。zookeeper负责保存元数据,元数据就是topic的相关信息(发在哪台主机上,知道了多少分区,以及副本数,偏移量。

2023-12-01 17:11:23 1067

原创 filebeat 日志收集工具

filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小的多。对logstash性能上的优化:logstash启动是在jvm虚拟机当中,启动移除至少500M内存。filebeat可以运行在非Java环境。filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用。logstash的工作线程,默认值就是cpu数,4 2 8 4给一般即可 2核,2个。logstash可以使用任何端口,只有吗被占用都可以使用,推荐1024之后使用。

2023-11-28 19:27:57 883

原创 elk日志分析系统

总结:ELK的作用,当我们管理一个大集群时,响应分析定位的日志就会很多,每一台服务器分别去分析,将会耗时耗力。极高的提高了定位问题的效率。所有的键盘命令行输出,转化成标准输出(rubydebug的模式) , 6.0之后, lgstash的默认输出格式就是rubydebug格式的标准输出。6.0之后的logstash自带的输出格式rubydebug.自动的把输出格式,定义为统- -的标准格式输出。作用:存储允许全文搜索,结构化搜索(索引点),索引点可以支持大容量的日志数据,也可以搜索其他不同类型的文档。

2023-11-28 19:24:27 1061

空空如也

空空如也

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

TA关注的人

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