- 博客(89)
- 收藏
- 关注
原创 Prometheus 监控系统
调度了多少个 replicas?Pod 重启了多少次?每个被监控的主机都可以通过专用的 exporter 程序提供输出监控数据的接口,它会在目标处收集监控数据,并暴露出一个 HTTP 接口供 Prometheus server 查询,Prometheus 通过基于 HTTP 的 pull 的方式来周期性的采集数据。是一个独立的告警模块,从 Prometheus server 端接收到 “告警通知” 后,会进行去重、分组,并路由到相应的接收方,发出报警, 常见的接收方式有:电子邮件、钉钉、企业微信等。
2023-11-16 18:58:27
235
原创 Rancher 管理 Kubernetes 集群
【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180。点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入 app,【Value】输入 nginx。在【Pod Labels】下点击【Add Lable】,【Key】输入 app,【Value】输入 nginx。【Namespace】下拉选择 dev,【Name】输入 nginx-dev。
2023-11-16 16:21:26
266
原创 k8s之HPA
(1)HPA 基于 Master 上的 kube-controller-manager 服务启动参数 horizontal-pod-autoscaler-sync-period 定义的时长(默认为30秒),周期性的检测 Pod 的 CPU 使用率。原因是防止在业务高峰期时因为网络波动等原因的场景下,如果回收策略比较积极的话,K8S集群可能会认为访问流量变小而快速收缩负载节点数量,而仅剩的负载节点又承受不了高负载的压力导致崩溃,从而影响业务。如果命名空间也没设置,则会使用集群的最大资源。
2023-11-15 19:15:47
512
原创 k8s之Helm
况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Tiller 被移除了。可以看到,一个 chart 包就是一个文件夹的集合,文件夹名称就是 chart 包的名称。
2023-11-15 19:05:57
831
原创 k8s 对外服务之 Ingress( LB + ingress)
用DaemonSet结合nodeselector来部署ingress-controller到特定的node上,然后使用HostNetwork直接把该pod与宿主机node的网络打通,直接使用宿主机的80/433端口就能访问服务。这时,ingress-controller所在的node机器就很类似传统架构的边缘节点,比如机房入口的nginx服务器。service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;
2023-11-13 17:09:10
1382
1
原创 配置资源管理
ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。在数据卷里面使用 ConfigMap,就是将文件填入数据卷,在这个文件中,键就是文件名,键值就是文件内容。的 Secret 对象的详细描述信息。
2023-11-09 18:30:22
144
原创 PV与PVC
正如卷的名字所述,它最初是空的。Pod 中的容器可以读取和写入emptyDir卷中的相同文件,尽管该卷可以挂载到每个容器中的相同或不同路径上。2、创建 Service Account,用来管理 NFS Provisioner 在 k8s 集群中运行的权限,设置 nfs-client 对 PV,PVC,StorageClass 等的规则。卷插件称为 Provisioner(存储分配器),NFS 使用的是 nfs-client,这个外部卷插件会使用已经配置好的 NFS 服务器自动创建 PV。
2023-11-08 15:03:01
108
原创 pod控制器
而在 deployment中pod模板中创建的存储卷是一个共享的存储卷,多个pod使用同一个存储卷,而statefulset定义中的每一个pod都不能使用同一个存储卷,由此基于pod模板创建pod是不适应的,这就需要引入volumeClainTemplate,当在使用statefulset创建pod时,会自动生成一个PVC,从而请求绑定一个PV,从而有自己专用的存储卷。当节点挂了,重建之后的标识符是不变的,每一个节点的节点名称是不能改变的。它监控Pod的健康状态,并在发生故障或需要扩展时采取适当的操作。
2023-11-08 15:00:59
160
原创 k8s集群调度
原因很简单,假设这个时候 kubectl 发命令,要扩充 Pod 副本数量,那么上面的流程又会触发一遍,kubelet 会根据最新的 Pod 的部署情况调整 Node 的资源。Sheduler 是作为单独的程序运行的,启动之后会一直监听 APIServer,获取 spec.nodeName 为空的 pod,对每个 pod 都会创建一个 binding,表明该 pod 应该放到哪个节点上。Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。
2023-11-01 18:03:49
418
原创 pod进阶
资源限制官网示例:Pod 和 容器 的资源请求和限制:针对每个容器,你都可以指定其资源限制和请求,包括如下选项:资源类型概述:CPU 和内存都是一种资源类型。资源类型具有基本单位。 CPU 表示计算处理,以 Kubernetes CPU 为单位指定。 内存以字节为单位指定。 对于 Linux 工作负载,您可以指定巨大的页面资源。 大页面是 Linux 特有的功能,节点内核在其中分配内存块 比默认页面大小大得多。分类:1、CPU 资源单位2、内存 资源单位 PS:在买硬盘的时候,操作系统报的数量要比
2023-10-31 18:34:49
147
原创 pod基础
运行于各自容器内的进程无法直接完成网络通信,这是由于容器间的隔离机制导致,k8s中的Pod资源抽象正是解决此类问题,Pod对象是一组容器的集合,这些容器共享Network、UTS及IPC命令空间,因此具有相同的域名、主机名和网络接口,并可通过IPC直接通信。Pod资源中针对各容器提供网络命令空间等共享机制的是底层基础容器pause,基础容器(也可称为父容器)pause就是为了管理Pod容器间的共享操作,这个父容器需要能够准确地知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。
2023-10-30 18:48:03
137
原创 k8s 金丝雀发布与声明式管理
Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。(2)监控更新的过程,可以看到已经新增了一个资源,但是并未按照预期的状态去删除一个旧的资源,就是因为使用了pause暂停命令。(3)确保更新的pod没问题了,继续更新。
2023-10-26 19:28:23
602
原创 k8s kubeadm配置
/定义kubernetes源enabled=1gpgcheck=0EOF//开机自启kubelet#K8S通过kubeadm安装出来以后都是以Pod方式存在,即底层是以容器方式运行,所以kubelet必须设置开机自启。
2023-10-25 22:23:14
1061
原创 二进制搭建 Kubernetes v1.20
CFSSL 使用配置文件生成证书,因此自签之前,需要生成它识别的 json 格式的配置文件,CFSSL 提供了方便的命令行生成配置文件。1、client 证书,服务端连接客户端时携带的证书,用于客户端验证服务端身份,如 kube-apiserver 访问 etcd;etcd 在生产环境中一般推荐集群方式部署。2、server 证书,客户端连接服务端时携带的证书,用于服务端验证客户端身份,如 etcd 对外提供服务;3、peer 证书,相互之间连接时使用的证书,如 etcd 节点之间进行验证和通信。
2023-10-23 10:12:01
180
原创 kubernetes
概述K8S 是什么?K8S 的全称为 Kubernetes (K12345678S),PS:“嘛,写全称也太累了吧,写”。不如整个缩由来:K8S由coogle的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并指献给CNCE基全会开源。K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。
2023-10-18 15:19:37
156
原创 ansible
Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。
2023-10-12 11:23:43
337
原创 Docker--harbor私有仓库部署与管理
Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。
2023-10-11 19:18:31
387
原创 Docker-compose
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。ocker-Compose将所管理的容器分为三层,分别是工程(project),服务 (service) 以及容器 (container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多人服务,每个服务中定义了容器运行的镜像、参数、依赖。
2023-10-09 14:54:53
156
原创 docker数据管理和网络通信
但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。Dockerfile是由多条的指令组成的文件,其中每条指令对应 Linux 中的一条命令,Docker 程序将读取Dockerfile 中的指令生成指定镜像。在启动容器的时候,如果不指定对应的端口,在容器外是无法通过网络来访问容器内的服务。
2023-10-05 19:01:19
345
原创 docker基本管理
Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为docker容器是否正在运行的依据,如果docker容器中 pid = 1 的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉。
2023-10-05 11:25:17
1934
原创 zabbix
1、zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案2、zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。3、zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
2023-09-22 09:46:38
715
原创 zookeeper
Kafka 定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域。Kafka 简介。
2023-09-18 11:48:53
960
原创 ELK日志分析系统
ELK日志分析系统是一套用于收集、存储、搜索和可视化日志数据的开源软件组合,它由Elasticsearch、Logstash和Kibana三个主要组件组成。1.2、ELK日志分析系统LogstashKibana1. Elasticsearch:Elasticsearch是一个用于实时搜索和分析大规模数据的分布式搜索引擎。它以JSON文档形式存储数据,并提供强大的全文搜索、分布式计算和聚合功能。Elasticsearch具有高可扩展性,能够处理海量的数据,并且具有快速的搜索和查询速度。
2023-09-18 09:49:33
1149
原创 GFS分布式文件系统
概述是Google开发的一种分布式文件系统。它旨在解决大规模数据存储和处理的问题,适用于运行在大型集群上的应用程序。GFS的设计目标是提供高可靠性、高性能和可扩展性。它采用了一些特殊的机制和策略来应对存储和访问海量数据的挑战GFS是一个分布式的文件系统,只在扩展存储容量,提高性能,并通过多个互联网络的存储节点的数据进行元余,以确保数据的可用性和一致性GFS(Google File System)是Google开发的一种分布式文件系统,用于存储和管理大规模数据。
2023-09-13 13:53:18
1142
原创 redis高可用——主从复制、哨兵模式、cluster集群
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从切换技术的方法是,当服务器宕机后,需要手动一台从机切换为主机,这需要人工干预,不仅费时费力而日还会造成一段时间内服务不可用。为了解决主从复制的缺点,就有了哨兵机制。
2023-09-08 10:55:06
1013
原创 redis高可用——持久化
Redis高可用性指的是在Redis数据库系统中,通过采取一系列措施来确保系统持续可用、服务不中断的能力。高可用性是对数据存储和访问的稳定性和可靠性的要求。Redis高可用持久化是指在Redis数据库系统中,为了保证数据的持久性和可靠性,采取一系列策略将数据写入磁盘,以防止数据丢失或系统故障导致数据无法恢复。Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;
2023-09-07 10:19:22
860
原创 NosQL之Redis配置与优化
Redis (远程字典服务器) 是一个开源的、使用 C 语言编写的 NOSOL 数据库。基于内存运行并支持持久化,采用key-value (键值对)的存储形式,是目前分布式架构中不可或缺的,服务器程序是单进程模型,也就是在一台服务器可以同时启动多个Redis进程,Bedis的实际外理速度Redis(Remote Dictionary Server)是一个开源的高性能键值存储系统,属于非关系型数据库(NoSQL)。它以内存为主要数据存储方式,同时支持数据持久化到磁盘,并提供了丰富的数据结构和功能。
2023-09-06 19:31:17
1363
原创 MYSQL MHA实现故障转移和自动切换
一旦主服务器故障,MHA会自动选择一个适当的从服务器作为新的主服务器,并更新其他从服务器的配置,使其连接到新的主服务器上。5. 数据一致性难以保证:由于主从复制是通过异步的方式进行数据同步,存在网络延迟、复制延迟等因素,从服务器上的数据与主服务器之间可能存在一定的差异。4. 自动切换复杂性:在传统的主从架构中,当主服务器发生故障或需要维护时,需要手动将一个从服务器提升为新的主服务器。数据一致性维护:MHA确保故障转移后新的主服务器与原主服务器的数据保持一致,通过同步二进制日志等机制实现数据的无缝切换。
2023-09-05 19:46:27
1584
原创 MySQL主从复制与读写分离 及其实例
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
2023-09-01 13:32:44
222
原创 SQL高阶语句
高阶语句的概述 原理、常用的查询方式 、限制结果条目、设置别名、通配符、子查询、mysql视图、连接(内、左、右)、存储过程
2023-08-31 16:21:56
5811
4
原创 数据库的备份与分类以及日志
MySQL支持增量备份,进行增量备份时必须启用二进制日志。MySQL自带的备份工具,可方便实现对MySQL的备份 可以将指定的库、表导出为SQL 脚本 使用命令mysq|导入备份的数据。每一次增量备份都是做上一次完全备份的数据增量之后的数据,不会出现备份重复数据的情况,也会占用额外的磁盘空间。差异备份: 都会备份上一次完全备份之后的数据,可能会出现备份重复的数据,会导致占用额外的磁盘空间,是对整个数据库、数据库结构和文件结构的备份 保存的是备份完成时刻的数据库 是差异备份与增量备份的基础。
2023-08-30 08:51:47
773
原创 MySQL索引、事务与存储引擎
对数据进行修改的所有并发事务是彼此隔离的,表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务,修改数据的事务可在另一个使用相同数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数。在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行没有有索引的情况下扫描全表来定位某行的数据 )一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,当一个事务读取数据时,它只会看到在该事务开始之前已经提交的数据版本,而不会看到其他事务尚未提交的数据。
2023-08-28 14:16:52
202
原创 mysql数据库管理及增删改查
格式:创建数据库:CREATE DATABASE 数据库名创建数据表:CREATE TABLE 表名 (字段定义……)CREATE DATABASE 数据库名;
2023-08-24 09:41:01
264
原创 haproxy
默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。LVS:在企业应用中抗负载能力很强,但存在不足,LVS不支持正则表达式,不能实现动静分离,对于大型网站,LVS的实施配置复杂,维护成本相对较高,一般在上百台群集中使用。Haproxy:是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件,适用于负载大的Web站点,运行在硬件上可支持数以万计的并发连接的连接请求。
2023-08-21 10:02:23
325
原创 LVS-DR模式
LVS-DR(Linux Virtual Server - Direct Routing)是LVS(Linux Virtual Server)的一种工作模式,也是LVS中最常用和性能最高的一种模式之一。在LVS-DR模式下,负载均衡器(LVS)和后端服务器是通过物理网络直接通信的,不需要经过负载均衡器转发数据。这种直接路由的方式使得后端服务器可以直接与客户端通信,提高了性能和吞吐量,并减轻了负载均衡器的压力。
2023-08-16 18:47:55
698
原创 LVS的负载均衡集群(NAT模式)
群集所提供的应用服务,由服务器池承担,其中每个节点具有独立的RIP地址(真实ip),只处理调度器分发过来的客户机请求,当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。但是纵向扩展总有上限,插槽的数量有限,所以我们更多的采用横向扩展,通过整合多台服务器,使用LVS来达到服务器的高可用和负载均衡,并以同一个IP地址(通常成为浮动IP,简称VIP)对外提供相同的服务。提高应用系统的可靠性,尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果。
2023-08-16 13:37:38
127
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人