- 博客(45)
- 收藏
- 关注
原创 记录AWS Oracle实例数据迁移的艰辛过程
最近公司在aws的项目要迁移到我们公司云平台,需要将aws上面的rds(oracle)实例迁移到本地云平台,遇到各种各样的问题,下面总结下遇到的所有问题及解决方法。我这边用了各种各样的方法进行迁移,最终才成功将数据迁回。
2024-03-12 15:23:30
1514
原创 一、容器技术介绍
核心定义:容器是一种操作系统层面的虚拟化技术,通过对,让他在下,获得独立的运行视图与资源边界。与传统虚拟机对比特性虚拟机 (VM)容器 (Container)虚拟化层级硬件级虚拟化 (Hypervisor)操作系统级虚拟化资源占用GB级内存、完整系统镜像MB级内存、共享内核启动速度分钟级秒级(0.1~1秒)性能损耗15%-30%<5%隔离性硬件级强隔离进程级隔离。
2025-09-01 10:17:36
577
原创 CubeFS存储(一)
CubeFS 是 CNCF 托管的云原生存储系统,支持多协议(S3/POSIX/HDFS)、双存储引擎(多副本与纠删码)及多租户管理。具有可扩展性、高性能(多级缓存优化)、云原生集成(CSI插件)等特点,适用于大数据分析、AI训练、容器存储、数据库存算分离等场景。其架构包含元数据子系统、数据子系统和资源管理节点,提供PB/EB级存储能力,支持多种访问协议互通。
2025-08-06 21:11:20
952
原创 JuiceFS存储
JuiceFS是一款面向云环境的高性能POSIX文件系统,采用数据-元数据分离架构,将对象存储转化为全功能文件系统。它兼容POSIX、HDFS和S3协议,支持分布式访问、强一致性和数据加密,适用于AI训练、大数据分析等场景。JuiceFS由客户端、数据存储(对象存储)和元数据引擎(支持多种数据库)组成,文件数据被切分为Chunk和Slice存储在对象存储中,元数据则保存在独立引擎。该架构既保持了云存储的扩展性,又提供了近似本地文件系统的性能,解决了海量文件存储的扩展性难题。
2025-08-06 21:10:29
1161
原创 OpenKruise
OpenKruise是Kubernetes的扩展套件,专注于云原生应用的自动化管理,提供增强版工作负载(如CloneSet、Advanced StatefulSet等)、旁路管理(Sidecar注入与升级)、高可用防护(防级联删除)和高级运维能力(镜像预拉取、容器原地重启)。通过CRD扩展实现,支持大规模集群场景下高效升级、复杂拓扑约束处理等需求,解决了原生工作负载在数千节点规模下的性能瓶颈与运维风险问题。其核心组件包括API扩展和Kruise-manager控制器,可无缝集成到任意Kubernetes环境
2025-08-06 21:09:37
986
原创 五、Istio管理网格外部服务
本文介绍了Istio中Egress Listener的两种流量策略模式:ALLOW_ANY(默认)和REGISTRY_ONLY。ALLOW_ANY允许Pod访问任何外部服务,未注册目标通过Passthrough透传,但无法进行流量治理;REGISTRY_ONLY则限制只能访问注册服务。文章详细说明了如何查看和修改全局或命名空间级别的策略配置,并分析了ALLOW_ANY模式下的处理流程和Passthrough特点,包括ORIGINAL_DST集群的工作机制和TCP透传特性。
2025-08-06 21:08:31
878
原创 四、Sidecar及流量拦截机制
本文深入解析了Istio服务网格中的Sidecar模式及其流量拦截机制。Sidecar作为一种云原生设计模式,通过独立容器为业务应用提供代理、流量治理等能力,实现业务与基础设施的分离。Istio中基于Envoy的Sidecar容器(istio-proxy)通过init容器设置iptables规则进行流量拦截,支持REDIRECT和TPROXY两种模式。文章详细介绍了Sidecar的自动注入机制,包括通过MutatingAdmissionWebhook实现的自动注入和手动注入方式,使Pod在保持业务代码不变的
2025-08-06 21:07:52
1161
原创 三、Istio流量治理(二)
本文介绍了Istio流量治理的核心配置机制,重点解析了Pilot组件的工作原理和流量管理架构。Pilot作为控制平面的核心组件,负责从服务注册表和API Server获取配置信息,并将其转换为xDS格式分发给Envoy。文章详细阐述了Pilot-discovery、Kubernetes API Server等控制平面组件,以及pilot-agent、Envoy等数据平面组件的功能与协作关系。此外,还介绍了Istio在流量路由、故障恢复(如断路器、重试等)和服务治理(如A/B测试、金丝雀发布)方面的能力,展示
2025-08-06 21:06:48
928
原创 二、Istio流量治理(一)
本文介绍了Istio流量治理的核心概念和实现机制。主要内容包括:1)流量治理的基本功能,如动态负载均衡、流量分割、故障隔离等;2)东西向流量治理中,Istio通过Sidecar代理取代kube-proxy实现客户端负载均衡;3)南北向流量通过Ingress/Egress Gateway进行管理;4)流量规则的创建流程,管理员通过Istio API定义CRD资源,由Pilot组件转换为Envoy配置下发。Istio通过解耦流量与基础设施,以非侵入方式为服务网格提供丰富的流量治理能力。
2025-08-06 21:05:10
886
原创 一、Istio基础学习
Service Mesh 核心介绍与 Istio 基础 Service Mesh 是一种将服务治理能力下沉到基础设施层的技术架构,通过 Sidecar 代理实现服务间通信和流量管理。其核心特点包括:非侵入式 Sidecar 注入、基于 K8s CRD 的声明式 API、xDS gRPC 标准化协议,提供流量治理、可视化监控和安全连接等能力。 新一代 Service Mesh 采用控制平面集中管理数据面代理的模式。虽然 Kubernetes 提供基础服务发现能力,但其四层网络无法满足微服务治理需求,而 Ist
2025-08-06 21:04:17
794
原创 六、Envoy 流量治理
Envoy流量治理与连接管理 本文介绍了Envoy的线程模型、连接管理机制和HTTP路由配置。Envoy采用单进程/多线程架构,主线程负责管理任务,工作线程处理核心代理功能。每个工作线程独立运行无锁事件循环,通过SO_REUSEPORT特性实现高效连接分配。HTTP连接管理器(http_connection_manager)负责协议转换和通用功能处理,支持HTTP/1.1、HTTP/2和WebSockets。Envoy提供丰富的流量治理功能,包括路由配置、流量管理(迁移/切割/镜像)、故障注入、超时重试和C
2025-08-06 21:03:09
962
原创 五、Envoy集群管理
本文详细介绍了Envoy中的Cluster Manager组件,作为流量管理的核心模块,它负责管理所有上游集群的配置、状态和连接池。主要内容包括:1) Cluster Manager的定义与六大核心功能:集群生命周期管理、连接池管理、负载均衡、健康检查、流量控制和协议协商;2) 集群预热机制,通过渐进式流量增长避免冷启动问题;3) 服务发现机制,支持静态配置和动态发现两种方式。文章还提供了详细的YAML配置示例,帮助理解Cluster Manager的实际应用场景。
2025-08-06 21:00:40
491
原创 四、Envoy动态配置
本文介绍了Envoy的动态配置机制xDS API,主要包括三种发现类型:基于文件系统、gRPC服务和REST服务。xDS API支持多种资源类型,如Listener、RouteConfiguration等,并提供LDS、CDS、RDS等不同模块的动态配置功能。这些API具有最终一致性,高级操作需通过聚合发现服务(ADS)进行编组。EDS、CDS、RDS等核心服务分别实现端点、集群和路由的动态发现,支持流量管理和蓝绿部署等场景。
2025-08-06 21:00:04
826
原创 三、Envoy的管理接口
Envoy管理接口提供HTTP/JSON API,默认监听9901端口,支持实时监控、动态配置和运行时控制等功能。通过配置admin.access_log_path和admin.address等参数,可以自定义日志路径和监听地址。示例配置展示了如何添加管理接口到Envoy配置文件中,并通过Docker Compose部署测试环境。常见端点如/ready、/listeners和/config_dump可用于检查状态、获取监听器信息和导出配置内容。注意应严格控制访问权限,避免敏感信息泄露。
2025-08-06 20:59:06
615
原创 二、Envoy静态配置
本文介绍了Envoy静态配置的核心概念和使用方法。主要内容包括:1)静态资源配置通过static_resources定义listeners、clusters和secrets;2)给出一个简易静态配置示例,展示如何监听10000端口并代理到1234端口;3)说明过滤器链的作用和官方提供的过滤器类型;4)解释Cluster配置,包括服务发现类型、负载均衡策略和端点定义。文章还提供了配置示例和官方文档链接,帮助理解Envoy的基本配置方式。
2025-08-06 20:57:12
879
原创 一、Envoy基础概念学习
Envoy是现代云原生架构中的高性能开源边缘和服务代理,由Lyft开发并捐赠给CNCF。作为服务网格的核心组件,它以独立进程运行,形成透明通信网格,支持多语言应用的无缝交互。Envoy的核心特性包括:L3/L4层过滤器架构,支持TCP/UDP代理、TLS认证等;HTTP L7层过滤器,提供缓冲、限速、路由转发等功能;以及动态配置管理、高级负载均衡和可观测性等。其进程外架构设计简化了多语言服务的通信,并支持快速部署升级。
2025-08-06 20:53:44
1289
原创 一、服务网格了解
本文介绍了应用架构的演进过程,从单体应用到分层架构、SOA架构,再到微服务架构。单体应用随着业务发展变得庞大复杂,存在维护难、扩展性差等问题。分层架构将前后端分离,提高了开发效率但增加了接口复杂性。SOA架构通过ESB实现服务解耦和集成,但ESB成为单点瓶颈。微服务架构进一步细化了服务粒度,支持快速迭代,成为当前主流架构模式。文章通过对比不同架构的优缺点,为读者理解服务网格的演进背景提供了基础。
2025-08-06 20:50:40
818
原创 CephFS使用
Ceph MDS 作为ceph的访问入口,需要实现高性能及数据备份,而MDS支持多MDS结构,甚至还能实现redis cluster的多主从结构,以实现MDS服务的高性能和高可用,假设启动4个MDS进程,设置最大max_mds为2,这时候有2个mds称为主节点,另外的两个mds作为备用节点。设置每个主节点专用的备份MDS,也就是如果此主节点出现问题马上切换到另个MDS接管主MDS并继续对外提供元数据读写,设置备份MDS的常用选项如下:mds_standby_replay。
2024-09-03 16:13:28
1618
原创 Ceph RBD使用
Ceph可以同时提供RADOSGW(对象存储网关)、RBD(块存储)、CephFS(文件存储),RBD就是RADOS Block Device的简称,RBD块存储是常用的存储类型之一,RBD块设备类似磁盘可以被挂载,RBD块设备具有快照、多副本、克隆和一致性等特性,数据以条带化的方式存储在Ceph集群的多个OSD中。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。测试数据库访问及创建数据库。
2024-09-03 11:35:50
2505
原创 CephX 认证机制及用户管理
Ceph使用Cephx协议对客户端进行身份认证Cephx 用于对ceph保存的数据进行认证访问和授权,用于对访问ceph的请求进行认证和授权监测,与mon通信的请求都要经过ceph认证通过,但是也可以在mon节点关闭cephx认证,但是关闭认证之后任何访问都将被允许,因此无法保证数据的安全性。
2024-09-02 16:18:36
1120
原创 Ceph存储池相关操作
存储池的管理通常保存创建、列出、重命名和删除等操作,管理工具使用 ceph osd pool 的子命令及参数,比如 create/ls/rename/rm 等存储池管理常用命令。
2024-09-02 15:37:45
1091
原创 Ceph集群维护相关操作
Ceph 的主配置文件是/etc/ceph/ceph.conf,ceph 服务在启动时会检查 cep.conf,分号;重启之前,要提前设置 ceph 集群不要将 OSD 标记为 out,避免 node 节点关闭服务后被踢出。停止服务器之前要把服务器的 OSD 先停止并从 ceph 集群删除。ceph文件的加载顺序。
2024-09-02 15:09:33
778
原创 Ceph-deploy搭建ceph集群
Ceph可用于为云平台提供Ceph对象存储、块存储、文件系统存储。所有Ceph存储集群部署都从设置每个Ceph节点开始,然后设置网络块存储RedismasterslavezookeeperMysqlmasterslavecephFS对象存储Ceph存储集群需要以下内容:至少一个和至少一个,以及至少与Ceph集群中存储的给定对象的副本一样多的Ceph对象存储守护进程(OSD)(例如,如果给定对象的三个副本存储在Ceph集群中,则该Ceph集群中必须至少存在三个OSD)
2024-08-30 09:39:28
1875
原创 调用k8s api实现添加用户并授权
在k8s中如果想给一个用户创建授权文件,并让用户可用通过该config文件操作k8s集群,流程如下1、生成私钥和证书签名请求(CSR)2、创建资源3、查看和审批CSR4、获取已颁发的证书你获取的是 Kubernetes 集群的 CA(Certificate Authority)证书的 Base64 编码数据。这些数据用于验证 Kubernetes API 服务器证书的根证书。5、配置kubernetes客户端6、生成config文件获取集群的ca证书使用以下命令创建一个新的kubeconfig。
2024-08-29 10:08:40
1382
原创 使用rook-ceph部署高可用ceph集群
Rook是一种开源的、云原生存储的编排器,可以为各种存储服务在云原生的环境中实现无缝先和,提供了所必须的平台、框架和服务;而Ceph是Rook所支持的众多存储的一种,在k8s环境中,Ceph基于Rook能够为应用提供块存储(Block Storage),对象存储(Object Storage)以及共享文件系统服务。
2024-07-15 13:38:00
3498
2
原创 Django视图类View源码分析
django中的视图函数,就是视图功能由函数实现。响应:或渲染模板后返回HTML,或直接返回JSON数据。参数:视图函数的第一个参数必须是request对象。
2023-03-23 11:09:46
878
原创 【mysql数据损坏,通过ibd和frm文件批量恢复数据库数据】
这个错误意思就是库名表名一致,但是表空间id已经不同了,说明上面的执行步骤有错误,导致表空间id记录在两个地方,一个在系统表空间中的字典表,一个记录在表对应的ibd文件里。这个时候,不管出于何种原因,ibd文件使用了旧文件,就会报这个错误。客户那边的测试服务器下午3:00左右因不明原因,所有服务访问不了,ssh也无法连接,客户手动进行强制重启服务器,重启后将所有应用、中间件重启,重启nacos时发现无法连接数据库,通过账号密码登录到数据库发现可以正常登录,但是奇怪的问题来了。
2023-01-13 13:28:38
5907
1
原创 分析 ExitCode 定位 Pod 异常退出原因
使用在容器列表里看Last State字段,其中ExitCode即程序上次退出时的状态码,如果不为 0,表示异常退出,我们可以分析下原因。
2022-09-21 16:25:46
3123
原创 防止内存碎片化
此时使用观察内存order分配情况,可以看到内存碎片化严重(大量的低阶内存页,但是几乎没有高阶内存页)处理的方法主要采用drop_caches(抛弃缓存),然后使用compact_memory合并低阶内存页来创造出足够的高阶内存页。
2022-09-21 16:12:05
1008
原创 kubernetes磁盘爆满故障处理
kubelet 有 gc 和驱逐机制,通过,,,,–等参数控制 kubelet 的 gc 和驱逐策略来释放磁盘空间,如果配置正确的情况下,磁盘一般不会爆满。通常导致爆满的原因可能是配置不正确或者节点上有其它非 K8S 管理的进程在不断写数据到磁盘占用 大量空间导致磁盘爆满。
2022-09-21 16:03:28
2202
原创 Pod异常状态排错
有时候服务部署成功运行过,但在某个时候节点突然挂了,此时就会触发驱逐,创建新的副本调度到其 它节点上,对于已经挂载了磁盘的 Pod,它通常需要被调度到跟当前节点和磁盘在同一个可用区,如果 集群中同一个可用区的节点不满足调度条件,即使其它可用区节点各种条件都满足,但不跟当前节点在 同一个可用区,也是不会调度的。太短,容器启动慢,导致容器还没完全启动就开始探测,如果 successThreshold 是默认值 1,检查失败一次就会被 kill,然后 pod 一直这样被 kill 重 启。
2022-09-21 14:55:01
6543
原创 服务器硬件压力测试
服务器压力测试是检验服务器性能稳定性的最有效方式。在利旧场景中,业务还未部署的情况下,可以通过对服务器进行简单压力测试,提前暴露硬件问题。本文以基于3.10内核的Linux CentOS 7操作系统下压力测试为例注意:不要在生产服务器或已经部署业务的服务器上操作,可能会造成业务不可用、数据丢失,请谨慎操作。
2022-09-20 17:20:45
10596
原创 kubernetes HPA使用及测试
Horizontal Pod Autoscaling (HPA)控制器,根据预定义好的阈值及pod当前的资源利用率,自动控制在k8s集群中运行的pod数量(自动弹性水平自动伸缩).
2022-08-25 14:14:50
1804
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅