自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubernetes HPA

HPA(Horizontal Pod Autoscaler[Pod水平自动伸缩])是Kubernetes中实现自动扩缩容Pod副本数量的机制。它允许集群中的工作负载(如Deployments、ReplicaSets和StatefulSets)根据实际的负载情况自动调整Pod的数量,以此来优化资源的使用和提高服务的响应能力。通过此功能,只需简单的配置,便可以利用监控指标(CPU使用率、磁盘、自定义指标等)自动的扩容或缩容服务中的Pod数量,当业务需求增加时,系统将无缝地自动添加适量Pod容器,提高系统稳定性。

2024-06-12 17:42:40 766

原创 Kubernetes Helm

在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。Helm 本质就是让 K8s 的应用管理(Deployment、Service 等)可配置,可以通过类似于传递环境变量的方式能动态生成。

2024-06-06 17:44:18 849

原创 Kubernetes 安全机制

默认情况下,每个 namespace 都会有一个 Service Account,如果 Pod 在创建时没有指定 Service Account,就会使用 Pod 所属的 namespace 的 Service Account。每个 Pod 在创建后都会自动设置 spec.serviceAccount 为 default(除非指定了其他 Service Accout)。

2024-06-05 17:23:25 986

原创 Kubernetes ingress

service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对pod进行访问。

2024-06-04 18:06:31 920

原创 Kubernetes 配置资源管理

在Kubernetes(k8s)中,Secret资源是一种用于存储敏感信息的方式,比如密码、OAuth令牌、SSH密钥等。这样做的好处是,可以在不直接在代码或者配置文件中硬编码这些敏感信息的情况下,安全地管理和分发它们。Secret资源可以被Pods访问,以便于在运行时使用这些敏感数据。ConfigMap是Kubernetes中用于存储配置信息的资源,它允许你将配置数据以键值对的形式存储,并且可以被Pods以多种方式使用。

2024-06-03 17:58:54 570

原创 Kubernetes Pod控制器

Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。如上所述,一个完整的 StatefulSet 控制器由一个 Headless Service、一个 StatefulSet 和一个 volumeClaimTemplate 组成。

2024-05-30 17:57:29 921

原创 Kubernetes PV与PVC

容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在Pod中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes 中的Volume抽象就很好的解决了这些问题。Pod中的容器通过Pause容器共享Volume。k8s会自动删除该PV及里面的数据。

2024-05-30 16:04:45 904

原创 Kubernetes集群调度

注意在创建 Pod 的工作就已经完成了后,为什么 kubelet 还要一直监听呢?原因很简单,假设这个时候 kubectl 发命令,要扩充 Pod 副本数量,那么上面的流程又会触发一遍,kubelet 会根据最新的 Pod 的部署情况调整 Node 的资源。又或者 Pod 副本数量没有发生变化,但是其中的镜像文件升级了,kubelet 也会自动获取最新的镜像文件并且加载。Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。

2024-05-28 17:17:08 783

原创 Kubernetes Pod资源限制与探针检查

当定义Pod时可以选择性的为每个容器设定所需要的资源数量。最常见的可设定资源是CPU和内存大小,以及其他类型的资源。健康检查又称为探针(Probe),是由kubelet对容器执行的定期诊断。以上三种规则可同时定义。在readinessProbe检测成功之前,Pod的running状态是不会变成ready状态的。livenessProbe(存活探针)

2024-05-26 16:51:21 810

原创 Kubernetes Pod基本概念

运行于各自容器内的进程无法直接完成网络通信,这是由于容器间的隔离机制导致,k8s中的Pod资源抽象正是解决此类问题,Pod对象是一组容器的集合,这些容器共享Network、UTS及IPC命令空间,因此具有相同的域名、主机名和网络接口,并可通过IPC直接通信。,基础容器(也可称为父容器)pause 就是为了管理 Pod 容器间的共享操作,这个父容器需要能够准确地知道如何去创建共享运行环境的容器,还能管理这些容器的生命周期。每个 Pod 都有一个特殊的被称为 “基础容器” 的 Pause 容器。

2024-05-22 16:27:06 459

原创 Kubernetes常用命令

YAML,即 YAML Ain’t a Markup Language(YAML 不是一种标记语言)的递归缩写。YAML 其实意思是 Yet Another Markup Language(仍是一种标记语言)。它主要强度这种语言是以数据为中心,而不是以标记为中心,而像 XML 语言就使用了大量的标记。YAML 可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,还可以简单表达数组、散列表,标量等数据形态。

2024-05-18 17:08:40 335

原创 Kubernetes kube-admin部署安装

【代码】Kubernetes kube-admin部署安装。

2024-05-17 20:46:09 803

原创 Kubernetes二进制安装部署

上传 cni-plugins-linux-amd64-v0.8.6.tgz 和 flannel.tar 到 /opt 目录中cd /opt/

2024-05-10 16:31:17 419

原创 Kubernetes的基本概念

K8S 的全称为 Kubernetes (K12345678S)Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。Kubernetes 服务、支持和工具随处可见。Kubernetes 的名字来源于希腊语,意思是舵手或飞行员。K8s 作为缩写的结果来自计算“K”和“s”之间的八个字母。Google 于 2014 年开源了 Kubernetes 项目。

2024-05-09 18:08:45 747

原创 Ansible自动运维工具之playbook

Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。cd /optvim 1.yamltasks:ping:123123Handlers也是一些task的列表, 和一般的task并没有什么区别。是由通知者进行的notify,如果没有被notify,则Handlers不会执行,假如被notify了 ,则Handlers被执行不管有多少个通知者进行了notify,等到play中的所有task执行完成之后,handlers也只会被执行一次。

2024-05-07 17:46:21 766

原创 Docker Harbor私有仓库部署管理

Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/LDAP 集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。

2024-05-05 17:40:49 913

原创 Docker-consul

服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服务的网络位置,并配置在配置文件中。这里就会有几个问题:如果需要调用后端服务A-N,就需要配置N个服务的网络位置,配置很麻烦后端服务的网络位置变化,都需要改变每个调用者的配置既然有这些问题,那么服务注册与发现就是解决这些问题的。

2024-05-01 17:06:51 501

原创 Docker-compose

Docker-compose负责实现对Docker容器集群进行快速编排Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(cotainer)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例。

2024-05-01 15:21:41 1393

原创 Docker搭建LNMP+Wordpress

​公司在实际的生产环境中,需要使用Docker技术在一台主机上创建LNMP服务并运行 Wordpress 网站平台。然后对此服务进行相关的性能调优和管理工作。

2024-04-29 21:48:26 587 2

原创 Docker数据管理和Dockerfile

因为对于精简的OS,rootfs可以很小,只需要包含最基本的命令、工具和程序库就可以了,因为底层直接用宿主机的kernel,自己只需要提供rootfs就可以了。由此可见对于不同的linux发行版,bootfs基本是一致的,rootfs会有差别,因此不同的发行版可以公用bootfs。

2024-04-27 16:51:00 360 1

原创 Docker资源控制管理

cgroups,是一个非常强大的linux内核工具,他不仅可以限制被 namespace 隔离起来的资源, 还可以为资源设置权重、计算使用量、操控进程启停等等。所以 cgroups(Control groups)实现了对资源的配额和度量。

2024-04-26 08:16:08 320

原创 Docker网络模式

可以先自定义网络,再使用指定IP运行docker。

2024-04-26 07:48:23 528

原创 Docker命令总结

指令描述ls列出镜像build构建镜像来自Dockerfilehistory查看历史镜像inspect显示一个或多个镜像的详细信息pull从镜像仓库拉取镜像push推送一个镜像到仓库rm移除一个或多个镜像prune一处未使用的的镜像,没有被标记或被任何容器引用的tag创建一个引用源镜像标记目标镜像export到处容器文件系统到tar归档文件import导入容器文件系统tar归档文件创建镜像save保存一个或多个镜像到一个tar归档文件load。

2024-04-23 18:13:47 812 1

原创 Docker容器与虚拟化的安装部署镜像加速

将应用程序和系统内核资源进行解耦,以操作系统级别进行隔离,目的是提高资源利用率容器是一种技术,开发人员打包开发完成的一个应用(系统)以及所需的开发环境,然后通过容器可以运行在不同的计算机上面,也不需要重新配置相关环境,不同的是每一台计算机都需要配置运行容器的容器引擎,目前市场上主流就是Docker容器引擎,不过Docker容器引擎的配置很简单,比配置应用(系统)运行的环境简单,方便太多。每台要运行应用(系统)的计算机上面配置了Docker容器引擎之后,都单独独立可以运行之前打包完成的应用(系统)

2024-04-23 16:28:07 1213

原创 消息中间件Kafka分布式数据处理平台

Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域。

2024-04-14 21:02:24 1243

原创 ZooKeeper分布式应用程序协调服务

Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。也就是说 Zookeeper = 文件系统 + 通知机制。ZooKeeper = 文件系统 + 通知机制。

2024-04-13 09:39:44 1101

原创 ELK企业级日志分析系统(elasticsearch+logstash+kibana)

ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash 和 Kiabana三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)。(1)#给日志目录可读权限chmod o+r /var/log/messages #让 Logstash 可以读取日志。

2024-04-12 11:44:04 1567

原创 GFS分布式文件系统概述以及集群部署

GlusterFS 是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含,例如单点故障。一旦元数据服务器出现故障,即使节点具备再高的冗余性,整个存储系统也将崩溃。而GlusterFS 分布式文件系统是基于无元服务器的设计,数据横向扩展能力强,具备较高的可靠性及存储效率。

2024-04-09 19:54:34 617

原创 rsync下行同步

原有的数据全部传送把原来的文件和新的文件一起统一传送全量复制,效率低可以监控文件系统的变动情况,并做出通知响应调整inotify内核参数(优化)/etc/sysctl.conf(内核参数配置文件)max_queue_events #监控事件队列大小max_user_instances #最多监控实例数max_user_watches #每个实例最多监控文件数notifywait:用于持续监控,实时输出结果inotifywatch:用于短期监控,任务完成后再输出结果-m持续进行监控-r。

2024-04-09 10:51:50 703

原创 Redis数据库③主从复制+哨兵模式+集群模式

哨兵(sentinel):是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 Master 并将所有 Slave 连接到新的 Master。所以整个运行哨兵的集群的数量不得少于3个节点。

2024-04-06 15:20:45 794

原创 Redis数据库②高可用+持久化+性能管理

持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;RDB文件的致命缺点在于其数据快照的持久化方式决定了必然做不到实时持久化,而在数据越来越重要的今天,数据的大量丢失很多时候是无法接受的,因此AOF持久化成为主流。everysec是前述两种策略的折中,是性能和数据安全性的平衡,因此是Redis的默认配置,也是我们推荐的配置。

2024-04-04 19:50:08 969

原创 Redis数据库①简介、常用命令及部署

关系型数据库实例–>数据库–>表(table)–>记录行(row)、数据字段(column)——》存储数据非关系型数据库实例–>数据库–>集合(collection) -->键值对(key-value)Redis(远程字典服务器) 是一个开源的、使用C 语言编写的 NoSQL 数据库。Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。

2024-04-03 19:41:01 806

原创 MySQL MHA高可用集群部署及故障切换

该参数代表忽略上次 MHA 触发切换产生的文件,默认情况下,MHA 发生切换后会在日志记目录,也就是上面设置的日志app1.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,为了方便,这里设置为–ignore_last_failover。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master, 然后将所有其他的 slave 重新指向新的 master。

2024-03-29 17:11:02 414

原创 MySQL主从复制与读写分离

在异步复制的机制的情况下,如果Master宕机,事务在Master上已提交,但很可能这些事务没有传到任何的Slave上。半同步的问题是因为等待ACK的点是Commit之后,此时Master已经完成数据变更,用户已经可以看到最新数据,当Binlog还未同步到Slave时,发生主从切换,那么此时从库是没有这个最新数据的,用户看到的是老数据。增强半同步是在MySQL 5.7引入,其实半同步可以看成是一个过渡功能,因为默认的配置就是增强半同步,所以,大家一般说的半同步复制其实就是增强的半同步复制,也就是无损复制。

2024-03-28 19:44:56 1857

原创 MySQL连接与存储

存储过程这个功能是从5.0版本才开始支持的,它可以加快数据库的处理速度,增强数据库在实际应用中的灵活性。存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。操作数据库的传统 SQL 语句在执行时需要先编译,然后再去执行,跟存储过程一对比,明显存储过程在执行上速度更快,效率更高。

2024-03-27 18:43:07 603

原创 MySQL数据库高阶语句②

数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射视图可以理解为镜花水月/倒影,动态保存结果集(数据)基础表info (7行记录) ——》映射(投影)--视图。

2024-03-27 16:53:35 718

原创 MySQL数据库高阶语句①

ORDER BY语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,ORDER BY后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定,但。在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性。使用 SELECT 语句可以将需要的数据从 MySQL 数据库中查询出来,如果对查询的结果进行排序,可以使用。

2024-03-26 15:52:28 674

原创 MySQL日志管理、备份与恢复

备份的主要目的是灾难恢复还可以用来测试应用、回滚数据修改、查询历史数据、审计等[mysqld]#可选,指定二进制日志(binlog)的记录格式为MIXED(混合输入)#可加可不加该命令。

2024-03-25 19:57:15 1030

原创 MySQL事务与存储引擎

MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式。

2024-03-22 17:02:06 1178

原创 MySQL数据库索引

索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容。

2024-03-21 19:06:52 606

空空如也

空空如也

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

TA关注的人

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