- 博客(74)
- 收藏
- 关注
原创 Kubernetes 服务发布方式(蓝绿发布、灰度发布和滚动发布)
综上所述,三种方式均可以做到平滑式升级,在升级过程中服务仍然保持服务的连续性,升级对外界是无感知的。那生产上选择哪种部署方法最合适呢?这取决于哪种方法最适合你的业务和技术需求。如果你们运维自动化能力储备不够,肯定是越简单越好,建议蓝绿发布,如果业务对用户依赖很强,建议灰度发布。如果是K8S平台,滚动更新是现成的方案,建议先直接使用。蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚。灰度发布:根据比例将老版本升级,例如80%用户访问是老版本,20%用户访问是新版本。
2024-08-07 16:27:15
937
原创 kubectl详解之陈述式资源管理方法
1.kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口2.kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径3.kubectl 的命令大全k8s中文文档:http://docs.kubernetes.org.cn/683.html4.对资源的增、删、查操作比较方便,但对改的操作就不容易了。
2024-08-07 15:17:19
716
原创 kubeadm方式安装部署 kubernetes1.20
硬件准备master(2C/4G,cpu核心数要求大于2) 192.168.154.10 docker、kubeadm、kubelet、kubectl、flannelHarbor节点(hub.kgc.com) 192.168.154.13 docker、docker-compose、harbor-offline-v1.2.2。
2024-08-05 00:07:15
403
原创 二进制安装K8S(单Master集群架构)
k8s集群master01:192.168.154.10 kube-apiserver kube-controller-manager kube-scheduler etcdk8s集群node01:192.168.154.11 kubelet kube-proxy dockerk8s集群node02:192.168.154.12etcd集群节点1:192.168.154.10 etcd。
2024-08-04 17:13:20
952
原创 初识Kubernetes的理论基础
在 Kubernetes 集群中,在每个 Node(又称 Worker Node)上都会启动一个 kubelet 服务进程。该进程用于处理 Master 下发到本节点的任务,管理 Pod 及 Pod 中的容器。每个 kubelet 进程都会在 API Server 上注册节点自身的信息,定期向 Master 汇报节点资源的使用情况,并通过 cAdvisor 监控容器和节点资源。
2024-08-01 16:13:22
618
原创 Ansible之playbooks剧本
在yaml文件中,我们可以在初始配置的模块中用var去定义变量的存在,变量的格式为key:value,以此来确定该变量在剧本中的存在---vars:tasks:whith_items: {{item}}会把所有的列表展开进行遍历输出,with_flattened也可以替代with_itemswith_list: {{item}}会把每个列表当作一个整体输出。如果每个列表中只有一个值,则效果与with items一致。loop也可以替代ith。
2024-08-01 15:16:18
634
原创 自动化运维工具之Ansible
Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。
2024-07-31 17:26:14
942
原创 Docker 安全及日志管理
容器的安全性问题的根源在于容器和宿主机共享内核。如果容器里的应用导致Linux内核崩溃,那么整个系统可能都会崩溃。与虚拟机是不同的,虚拟机并没有与主机共享内核,虚拟机崩溃一般不会导致宿主机崩溃。
2024-07-31 10:51:24
638
原创 Docker本地私有仓库、harbor私有仓库部署与管理
restart=always重启策略:no:默认策略,容器退出不重启on-failure:容器非正常退出重启容器on-failure:3:容器非正常退出最多重启4次容器always:退出总是重启容器unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。
2024-07-30 15:19:19
951
原创 使用Docker-Compose对Docker容器集群快速编排
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。
2024-07-25 16:10:41
984
原创 Docker consul的容器服务更新与发现
consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法,用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server 和 client。
2024-07-25 15:07:39
2532
原创 Docker镜像的创建方法及Dockerfile案例
但是当编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令。联合文件系统(unionFS):分层、轻量级并且高性能的文件系统,即一层一层叠加然后制作成的镜像,底层为内核加载,然后是rootfs系统,再上层是只可读的基础镜像,镜像启动后成为容器即为可读可写层此层保存数据等,然后可以再打包成一个新的镜像保存数据。
2024-07-24 16:07:09
2841
原创 Docker资源控制
Docker 通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面, 基本覆盖了常见的资源配额和使用量控制。Cgroup 是 ControlGroups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 CPU、内存、磁盘 IO 等等) 的机制,被 LXC、docker 等很多项目用于实现进程资源控制。Cgroup 本身是提供将进程进行分组化管理的功能和接口的基础结构,I/O 或内存的分配控制等具体的资源管理是通过该功能来实现的。
2024-07-21 23:08:10
1099
原创 Docker基本管理与网络以及数据管理
容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。虚拟机运行的是一个完整的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错。
2024-07-17 16:58:04
824
原创 分布式存储Ceph的部署及应用(创建MDS、RBD、RGW 接口)
存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。
2024-07-17 14:11:34
1390
原创 zookeeper机制及消息队列kafka集群部署
kafka:是一个分布式的,支持分区的,多副本基于发布/订阅模式的消息队列(MQ message quene),主要用于日志和大数据实时处理broker:一台kafka服务器就是一个broker。一个集群由多个broker组成,一个broker可以容纳多个topicProduer:生产者。也就是写入消息的一方,将消息写入broker中Consumer:消费者。也就是读取消息的一方,从broker中读取消息。
2024-07-10 19:28:02
776
原创 故障案例及shell脚本案例
当在数据特别大的时候,如果执行的sql语句没有索引,就会造成扫描表的行数过大导致I/O阻塞,或者是语句中存在死锁,也会造成I/O阻塞,从而导致不可中断睡眠进程过多,导致负载过大。上面说过,cpu的工作效率要高于磁盘,而进程在cpu上面运行需要访问磁盘文件,这个时候cpu会向内核发起调用文件的请求,让内核去磁盘取文件,这个时候会切换到其他进程或者空闲,这个任务就会转换为不可中断睡眠状态。当这种读写请求过多就会导致不可中断睡眠状态的进程过多,从而导致负载高,cpu低的情况。D 状态是指不可中断的睡眠状态。
2024-07-10 14:22:34
820
原创 ELK企业级日志分析系统
Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)。●input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等●filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式grok 对若干个大文本字段进行再分割成一些小字段 (?<字段名>正则表达式) 字段名: 正则表达式匹配到的内容date 对数据中的时间格式进行统一和格式化。
2024-07-07 23:56:31
1528
5
原创 zabbix 自动发现与自动注册、部署 zabbix 代理服务器及部署 Zabbix 高可用集群
zabbix 自动发现(对于 agent2 是被动模式)zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。启动 zabbix-agent2在 Web 页面删除原有的客户端主机点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除在 Web 页面配置自动发现点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
2024-07-07 22:32:20
1015
原创 分布式系统监控zabbix安装部署及自定义监控
案列:自定义监控客户端服务器登录的人数需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中#自定义监控项的格式如下点击左边菜单栏【配置】中的【模板】,点击【创建模板】【模板名称】设置成 Template Login User【可见的名称】设置成 Template Login User【群组】选择 Template【描述】可自定义。
2024-07-07 20:06:38
827
原创 rsync远程同步
可以监控文件系统的变动情况,并做出通知响应调整inotify内核参数(优化)/etc/sysctl.conf(内核参数配置文件)max_queue_events #监控事件队列大小max_user_instances #最多监控实例数max_user_watches #每个实例最多监控文件数notifywait:用于持续监控,实时输出结果inotifywatch:用于短期监控,任务完成后再输出结果。
2024-07-07 17:41:05
941
原创 Web缓存代理与CDN内容分发网络概念
Web 缓存是指一个 Web 资源(如 html 页面,图片,js,数据等)存在于 Web 服务器和客户端(浏览器)之间的副本。缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的 URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个 URL 地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。只有当网站明确标识资源已经更新,浏览器才会再次下载网页。
2024-07-07 16:47:55
534
原创 Squid代理服务器应用
http_port 80 accel vhost vport #squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求,同时和web server的请求端口(vhost vport)绑定,这个时候请求到了squid,squid是不用转发请求的,而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据。否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。
2024-07-06 18:25:11
1082
原创 Redis三种模式——主从复制、哨兵模式、集群
主从复制,是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台 Redis 服务器都是主节点;且一个主节点可以有多个从节点 (或没有从节点),但一个从节点只能有一个主节点。
2024-07-05 11:45:00
3877
4
原创 NoSQL之Redis高可用与优化
在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。在Redis中,实现高可用的技术主要包括持久化、主从复制、哨兵和 Cluster集群,下面分别说明它们的作用,以及解决了什么样的问题。
2024-07-01 17:04:40
1056
原创 NoSQL之Redis配置与数据库常用命令
Redis是一个开源的、使用C语言编写的NoSQL数据库。Redis基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率。若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;
2024-07-01 15:56:49
842
原创 MySQL主从复制
在异步复制的机制的情况下,如果Master宕机,事务在Master上已提交,但很可能这些事务没有传到任何的Slave上。半同步的问题是因为等待ACK的点是Commit之后,此时Master已经完成数据变更,用户已经可以看到最新数据,当Binlog还未同步到Slave时,发生主从切换,那么此时从库是没有这个最新数据的,用户看到的是老数据。增强半同步是在MySQL 5.7引入,其实半同步可以看成是一个过渡功能,因为默认的配置就是增强半同步,所以,大家一般说的半同步复制其实就是增强的半同步复制,也就是无损复制。
2024-06-28 16:47:53
1044
原创 MySQL高级SQL语句
返回包括左表中的所有记录和右表中联结字段相等的记录。返回包括右表中的所有记录和左表中联结字段相等的记录。只返回两个表中联结字段相等的行。
2024-06-21 00:16:33
526
原创 MySQL备份与恢复
Mysql的日志默认保存位置为/usr/local/mysql/date,Mysql的日志配置文件为/etc/my.cnf,里面有一个【mysqld】项。
2024-06-19 23:18:24
629
原创 MySQL事务与存储引擎
如果没有开启自动提交,当前会话连接的mysql的所有操作都会当成一个事务直到你输入rollback|commit;当前事务才算结束。当前事务结束前新的mysql连接时无法读取到任何当前会话的操作结果。如果开起了自动提交,mysql会把每个sql语句当成一个事务,然后自动的commit。当然无论开启与否,begin;都是独立的事务。在事务管理中,原子性是基础,隔离性是手段,一致性是目的,持久性是结果begin;都是独立的事务。
2024-06-19 15:30:20
1119
原创 MySQL索引
普通索引 :针对所有字段,没有特殊的需求/规则唯一索引 : 针对唯一性的字段,仅允许出现一次空值组合索引 (多列/多字段组合形式的索引)全文索引(varchar char text)主键索引 :针对唯一性字段、且不可为空,同时一张表只允许包含一个主键索引。
2024-06-19 15:00:39
699
原创 MySQL数据库用户管理与用户授权
当不在需要一张表时,用drop;想删除部分数据行时,用delete,并带上where;删除数据保留表时用truncate因克隆表时无法克隆索引等信息,所以克隆表只能用于临时备份数据,在实际生产中也仅用于备份数据,防止误删除数据,造成不必要的损失在遗忘MySQL的root密码时,更改配置文件并更改密码后,记得要将配置文件还原,否则其它用户可以直接免密登录。
2024-06-19 10:50:59
982
原创 HAProxy搭建web集群
默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中。global需要修改rsyslog配置,为了便于管理。将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件。&~&~
2024-06-18 00:02:38
816
原创 LVS+Keepalived群集++
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
2024-06-17 23:40:14
666
原创 LVS负载均衡群集部署—DR直接路由
因为“负载调度机”转发时并不会改写数据包的目的IP,所以“节点服务器”收到的数据包的目的IP仍是“负载调度器”的虚拟服务IP。为了保证“节点服务器”能够正确处理该数据包,而不是丢弃,必须在“节点服务器”的环回网卡上绑定“负载调度器”的虚拟服务IP。这样“节点服务器”会认为这个虚拟服务IP是自己的IP,自己是能够处理这个数据包的。否则“节点服务器”会直接丢弃该数据包!“节点服务器”上的业务进程必须监听在环回网卡的虚拟服务IP上,且端口必须和“负载调度机”上的虚拟服务端口一致。
2024-06-17 11:28:50
994
原创 Firewalld防火墙基础
trusted信任区域接受所有传入的网络连接public初始的默认区域允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝external外部区域允许与 ssh 预定义服务匹配的传入流量,其余均拒绝home家庭区域允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝internal内部区域默认值时与home区域相同work工作区域。
2024-06-16 22:22:24
939
原创 LVS负载均衡群集部署—NAT
Cluster,集群、群集,为解决某个特定的问题将多台计算机组合起来形成的单个系统由多台主机构成的一个整体,提供一个访问入口(IP或域名),集群中的多台主机都干一件事提供一样的服务。
2024-06-14 14:57:22
808
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人