- 博客(120)
- 收藏
- 关注
原创 Prometheus的监控告警
alter是一个单独的模块,需要单独的配置需要声明邮箱地址。配置以configmap进行配置。altermanager也是pod部署。部署在k8s集群当中。
2024-02-01 11:00:15
342
原创 Prometheus的promql语句
对一定时间范围内的数据进行采样,通常是请求持续时长和响应大小的类型这一类数据,计入一个可配置的桶中(bucket),通过这个区间对样本进行筛选,也可以统计求和。irate:高灵敏度的函数,计算指标的瞬时速率,基于样本范围内的最后两个样本数据进行计算。类似于historgram,在客户端于一点时间内(默认10分钟)的每个采样点进行统计,计算并且存储了分位数的值,服务端可以直接。delta:计算范围向量中的每个时间序列元素的第一个值和最后一个值之间的差,展示不同时间点上样本值的差值。
2024-01-31 12:21:19
1084
原创 容器化搭建prometheus
在之前的博客,我介绍了consonl对node的自动发现,kube-api的自动发现,今天介绍Prometheus的自动发现,也就是Prometheus的容器化部署。
2024-01-30 15:52:08
396
原创 Prometheus 监控系统的初步了解与系统搭建
prometheus是一个开源的系统监控以及报警系统。整合zabbix的功能,系统,网络,设备。promethues可以兼容网络,设备。容器监控。告警系统。因为他和k8s是一个项目基金开发的产品,天生匹配k8s的原生系统。容器化和云原生服务适配性很高。Prometheus是一个服务监控系统和时序数据库,提供了通用的数据模型和快捷数据采集,存储和接口查询。核心组件: Prometheus server定期从静态配置的监控目标或者基于服务发现的自动配置目标中进行拉取数据。
2024-01-29 15:07:26
1083
原创 k8s的安全机制
准入控制是apiserver的一个准入控制器的插件列表,不同的插件可以实现不同的准入控制机制。一般情况下建议使用官方默认的准入控制器limitranger:命名空间的配额管理resourceQuota:命名空间的配额限制。
2024-01-25 14:29:56
1267
原创 k8s图形化管理工具之rancher
在前面的k8s基础学习中,我们学习了各种资源的搭配运用,以及命令行,声明式文件创建。这些都是为了k8s管理员体会k8s的框架,内容基础。在真正的生产环境中,大部分的公司还是会选用图形化管理工具来管理k8s集群,大大提高工作效率。在二进制搭建k8集群时,我们就知道了k8s本身就具有一款原生的k8s集群管理工具,但是原生图形化管理工具dashborad只拥有管理一个集群的能力。而对于现代化生产力公司来讲,一个集群能够做的事情还是太少,所以我们需要引入更强大的集群管理工具。
2024-01-24 15:00:22
1279
原创 k8s---HPA 命名空间资源限制
HPA(Horizontal Pod Autoscaling)Pod 水平自动伸缩,Kubernetes 有一个 HPA 的资源,HPA 可以根据 CPU 利用率自动伸缩一个 Replication Controller、 Deployment 或者Replica Set 中的 Pod 数量。(1)HPA 基于 Master 上的 kube-controller-manager 服务启动参数 horizontal-pod-autoscaler-sync-period 定义的时长(默认为30秒),周期性的检测
2024-01-23 15:01:00
1141
原创 k8s---包管理器helm
Helm本质就是让K8s的应用管理(Deployment、Service等)可配置,可以通过类似于传递环境变量的方式能动态生成。通过动态生成K8s资源清单文件(deployment.yaml、service.yaml)。然后调用 Kubectl 自动执行 K8s 资源部署。在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。
2024-01-22 13:59:48
1020
原创 k8s---ingress实现https代理访问
ingress的类型:这两个都是开源的控制器nginx-ingress-controller控制器三种模式:deployment+loadbalancer:公有云提供负载均衡的公网地址daemonset+hostnetwork+nodeselector:和节点服务共享网络,一个节点一个controller pod。使用宿主机的端口性能最好,适合大并发deployment+nodeport:最常见也是最常用,也是最简单的方法。但是性能不太好,多了一层nat地址转发。适用于高并发、大集群使用。
2024-01-18 17:21:51
1721
原创 k8s---配置资源管理
secert:主要作用是保存加密文件,主要的使用方式就是挂载方式comfigmap:把配置信息传给容器。主要方式也是挂载方式。configmap的热更新:热更新可以直接反应到容器的内部,也不会触发pod的更新机制。如果不是需要重启的配置,都可以直接生效version/config来触发热更新需要重启的,可以重启pod在工作中configMap就是将配置信息传递给容器。通过键值对形式保存的非加密信息。更新:就是把配置信息重新传到容器内,重启也是一样。
2024-01-16 16:03:08
1274
原创 k8s---pod控制器
Pod 是 Kubernetes 集群中能够被创建和管理的最小部署单元。所以需要有工具去操作和管理它们的生命周期,这里就需要用到控制器了。Pod 控制器由 master 的 kube-controller-manager 组件提供,常见的此类控制器有 Replication Controller、ReplicaSet、Deployment、DaemonSet、StatefulSet、Job 和 CronJob 等,它们分别以不同的方式管理 Pod 资源对象。 pod控制器:工作负载,workload。用来
2024-01-15 15:25:27
1041
原创 k8s--动态pvc和pv
存储卷:emptyDir 容器内部,随着pod销毁,emptyDir也会消失 不能做数据持久化hostPath:持久化存储数据 可以和节点上目录做挂载。pod被销毁了数据还在NFS:一台机器,提供pod内容器所有的挂载点pv和pvc:pvc就是pod发起的挂载请求pv:持久化存储目录静态pv和pvc: 运维负责:创建好持久化存储卷,声明好读写和挂载类型 以及可以提供的存储空间pvc开发做,要和开发沟通好,你期望的读写和挂载类型,以及存储空间。
2024-01-11 15:49:52
1400
原创 k8s的存储卷---数据卷
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在Pod中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes 中的Volume抽象就很好的解决了这些问题。Pod中的容器通过Pause容器共享Volume。
2024-01-10 15:23:06
1357
1
原创 k8s的集群调度---下
预算策略:过滤出合适的节点优选策略:选择部署的节点nodeName:硬匹配,不走调度策略。node01.nodeSelector:根据节点的标签选择,会走调度算法。只要是走调度算法,在不满足预算策略的情况下,所有pod都是pending。node节点的亲和性:硬策略和软策略硬策略:必须一定。匹配原则:根据节点的标签你的要求。
2024-01-09 16:30:48
1173
1
原创 k8s--集群调度(kube-scheduler)
以上过程是list-watch会在每一步把监听的消息(APIserver:6443)-------controller manager,scheduler,kubelet,etcd都会监听apiserver:6443。指定节点标签部署pod,是要经过scheduler的算法,如果节点不满足条件,pod会进入penging状态,直到节点条件满足为止。通过预算选择出可以部署的节点,再通过优先选择出来最好的节点,以上都是自带的算法。最低请求优先级,通过算法计算节点上的cpu和内存使用率,确定节点的权重。
2024-01-08 17:04:06
1468
原创 k8s---容器探针
因为-c是查看字符串,但/usr/bin/test和/etc/passwd是文件,所以readinessProbe探针探测不到改成-e即可就绪探针,pod的状态是running ,ready是notready。
2024-01-05 14:14:44
810
原创 k8s---pod基础下
都是本地部署:never如果涉及到外部部署:默认策略(事前要把docker镜像导入目标主机,否则会去官网去拉)Always:一般不用。
2024-01-04 14:59:32
1216
1
原创 k8s---pod的生命周期
每个pod都有一个基础容器--pause。pause对应的镜像属于k8s集群的一部分。创建集群就会有pause基础镜像。pod里面包含了一个或者多个相关的容器(应用)pod外再设置一个初始镜像:1.pod内部都有一组容器,挂了一个,就算pod失效了吗?引入pause机制,代表整个容器组的状态。可以解决pod内部容器整体的状态判断。2.pod内的容器共享IP 共享volume挂载卷。解决了容器内网络通信的问题,解决了容器内部文件共享的问题。
2024-01-03 14:31:24
1218
原创 k8s---声明式资源管理(yml文件)
同一个yaml文件内command和args只能存在一个表示容器启动时的命令除非需要传参的时候command和args可以同时出现无论是args或者是command都会覆盖CMD和entrypoint标准输出建议写在一行提高可读性。
2024-01-02 15:50:41
1443
原创 k8s的三种发布方式
蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚。灰度发布:根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。滚动发布:按批次停止老版本实例,启动新版本实例。
2024-01-02 14:15:57
829
原创 K8s陈述式资源管理
命令行:kubectl命令行工具对资源的增删改查比较方便,声明式:看到声明式都是k8s当中的yml文件来实现资源管理。GUI:图形化工具kubectl命令的详解,查看,部署,查看pod的情况(详细信息,日志,发布和回滚)
2023-12-29 13:40:35
1659
原创 kubeadm搭建k8s集群
部署难,管理方便,集群伸展性能好更稳定,集群规模到达一定的规模(几百个节点、上万个Pod),二进制稳定性是要高于kubeadm部署遇到故障,宿主机起来了,进程也会起来部署简单,管理难是以一种容器管理容器的方式允许的组件及服务,故障恢复时间比二进制慢遇到故障,启动宿主机,再启动进程,最后去启动容器,集群才能恢复,速度比二进制慢 配置harbor
2023-12-28 14:20:18
734
原创 Https加密超文本传输协议的运用
实验本质:生成两个密钥文件互传即可证书是自定义颁发。私立密钥(因此访问某些网站会显示网站不安全)把key做备份生成签名证书即可harbor安装好之后地址。
2023-12-25 16:06:02
388
原创 初识Kubernetes的理论基础
k8s的简介 Kubernetes,词根源于希腊语的 舵手、飞行员。在国内又称k8s(因为k和s之间有8个字母,所以得名。“国内程序员的幽默”)。用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会
2023-12-25 15:59:59
912
原创 Ansible-playbook-------Template,tags,roles模块
vars:tasks:使用template模板notify:file:handlers:httpd.conf.j2 在文件中配置的是占位符(声明的变量)/etc/ansible/hosts 配置了主机的占位符名称和j2文件中的占位符一致(定义参数:占位符的参数的参数声明好)playbook当中,template模块来吧模块参数传给的目标的配置文件该脚本运行之后,成功之后就可以去目标主机去查看。
2023-12-21 15:57:52
1134
原创 ansible的脚本------playbook剧本
playbook组成部分:1.task 任务:包含要在目标主机上执行的操作,使用模块定义这些操作。每个都是一个模块的调用。 2.variables 变量:存储和传递数据。变量可以自定义,可以在playbook当中定义为全局变量,也可以外部传参。 3.Templates 模板:用于生成配置文件。模板是包含占位符的文件。占位符有ansible在执行时转化为变量值 4.handlers 处理器:当需要有变更的时候,可以执行触发器。 5.Roles 角色:是一种组织和封装playbook的。允许把相
2023-12-20 16:05:58
958
原创 Ansible自动化运维以及模块使用
远程操作主机功能自动化运维(playbook剧本基于yaml格式书写)ansible是基于python开发的配置管理和应用部署工具。在自动化运维中,现在是异军突起ansible能够批量配置、部署、管理上千台主机。类似于Xshell的一键输入工具。不需要每次都切换主机操作。只要有一台ansible主机,就可以对所有节点操作ansible不需要agent,客户端。只需要一台主机配置了ansible即可。ansible基于模块进行工作,只是提供了一种运行的架构。
2023-12-18 17:28:37
1108
原创 docker consul 容器的自动发现与注册
consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法,用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server 和 client。
2023-12-15 14:52:23
978
原创 docker-compose 单机容器编排
是一种标记语言,以竖列的形式展示序列化的数据格式,可读性高,类似于json格式。语法简单。YAML通过缩进来表示数据结构,连续的项目用 - 减号来表示。
2023-12-13 14:15:43
934
原创 基于dockerfile搭建LNMP
L:Linux平台,操作系统,另外桑组件的运行平台N:nginx 提供前端页面M:MySQL,开源关系的数据库,主要是用来保存用户账号信息。P:PHP,开发一种动态页面的编程语言,解释解析动态页面,起到中间件的作用。(nginx和数据库的中间,沟通nginx和数据库,已请求数据库上的信息)lnmp:企业网站的应用模式之一。早期的论坛架构就是lnmp搭建的实验部署关闭防火墙和安全机制cd /optcd nginx拖入nginx wordpress声明基础镜像指定工作目录配置和编译安装。
2023-12-12 16:30:06
673
原创 docker镜像创建 dockerfile
Dockerfile结构大致分为四个部分:基础镜像信息(用from指定)、维护者信息(maintainer、镜像操作指令和容器启动时执行指令。第一行必须使用FROM指令指明所基于的镜像名称;之后使用MAINTAINER 指令说明维护该镜像的用户信息;然后是镜像操作相关指令,如RUN指令/EXPOSE/ADD/ENV/ARG等等。每运行一条指令,都会给基础镜像添加新的一层。(多条命令可以使用;或 && 合并成一条命令,减少镜像的层数)
2023-12-11 16:13:20
1151
原创 docker的资源控制
怎么对容器使用cpu进行限制 --cpu-quota 10000 (单位毫秒)容器占用cpu的权重 --cpu-shares (1024倍数)容器绑定cpu --cpuset-cpus容器的宿主机内存的使用限制: -mswap:必须和限制内存一块使用磁盘i/o: 清理docker占用的磁盘空间。
2023-12-08 15:12:45
1029
原创 Docker网络原理
默认是172.17.0.1但我们可以自定义他的网段。在使用默认docker:0网桥时,创建容器是不能指定IP地址的,只能由docker网桥自动分配。除非用户自定义的网络才可以给容器自定义IP地址。所以得先创建自定义网络,才能创建容器可以不加,但是网卡名称比较难以识别mynetwork:自定义网络的名称//创建一个 docker1 的虚拟网卡docker的网络模式:1.bridge模式:桥接模式,也是docker的默认模式,创建时无需指定。
2023-12-07 18:02:49
917
原创 docker 的初步认识,安装,基本操作
docker 是什么?轻量级的虚拟机,宿主机是linuxdocker三大核心组件---镜像,容器,仓库如何获取镜像docker search 搜索docker pull nginx:1.22.0 拉取,获取镜像docker images 查看镜像docker rmi -f 强制删除镜像(删除了正在运行的容器的镜像,对容器会有影响吗)docker tag nginx:1.22.0 (在镜像中已经有的标签) nginx:guoqi(给他新的标签) 相当于硬连接(复制了源镜像)
2023-12-06 15:33:06
1142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人