自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 资源 (4)
  • 收藏
  • 关注

原创 【技术】Harbor在ARM64上翻车了:不是配置问题,而是...

本文介绍了在ARM64架构的鲲鹏920服务器上部署Harbor容器镜像仓库的实践过程。由于官方提供的Harbor离线安装包仅包含x86镜像,作者通过ghcr.io获取ARM64版本镜像并重新打标签完成部署。部署后遇到Redis容器持续崩溃的问题,经排查发现是由于麒麟V10系统默认64KB页大小与Harbor官方Redis镜像中的jemalloc内存分配器不兼容所致。文章提供了两种解决方案:短期方案是使用docker官方Redis镜像替代,长期方案则是通过Harbor官方ARM构建工具重新编译支持64KB页大

2025-12-23 22:54:09 443

原创 Rabbitmq-Golang使用简单模式

本文介绍了RabbitMQ最简单的点对点队列模式实现。该模式包含一个生产者、一个消费者和一个队列,适用于简单的异步任务如发送短信/邮件等场景。文章提供了基于Go语言和RabbitMQ 3.6.1的完整代码示例,包括生产者(send.go)和消费者(receive.go)的实现。生产者通过AMQP协议连接RabbitMQ,声明队列并发送消息;消费者持续监听队列并处理接收到的消息。代码展示了连接建立、通道创建、队列声明、消息发布和消费等核心操作,并包含错误处理机制。这种基础队列模式为后续学习更复杂的消息队列模式

2025-12-18 19:58:45 291

原创 rabbitmq-深入理解exchange/queue/routing-key等概念

本文介绍了RabbitMQ消息队列的核心概念与工作原理。RabbitMQ是基于AMQP协议的开源消息代理,支持跨平台应用通信。文章详细解析了生产者/消费者、队列、交换机(包含direct、topic、fanout、rpc四种类型)、路由键、虚拟主机(Vhost)、用户权限、绑定关系(Binding)及信道(Channel)等核心组件,阐述了消息从生产者到消费者的完整路由机制。通过TCP连接复用和逻辑隔离设计,RabbitMQ实现了高效可靠的消息传递,适用于应用解耦和流量削峰等场景。

2025-12-18 14:21:25 964

原创 kubernetes-对node的kubeconfig安全加固

Kubernetes节点kubeconfig安全加固方案 本文介绍了Kubernetes集群中kubelet使用admin权限kubeconfig的安全风险及解决方案。通过降低节点权限,限制kubelet只能访问本节点资源,实现安全加固。具体步骤包括: 为节点生成专用证书(CSR),设置CN为system:node:<nodeName>,O为system:nodes 创建并批准CertificateSigningRequest 生成新的kubeconfig文件,使用节点专用证书 测试权限限制效果

2025-12-18 11:36:54 1115

原创 kubernetes-重新编译kubernetes组件进行debug

摘要 本文介绍了如何通过重新编译Kubernetes组件来添加调试日志。首先克隆v1.34.2版本的Kubernetes代码,在需要调试的代码位置插入logger日志后,使用make命令分别编译kube-apiserver、kube-controller-manager和kube-scheduler组件。编译生成的二进制文件位于/_output/bin/目录下,替换原二进制文件并重启相关服务即可完成调试环境的搭建。这种方法可以帮助开发者更深入地理解Kubernetes对Pod操作的具体代码流程。

2025-12-17 15:17:45 408

原创 kubernetes-flannel 网络分析

Flannel是Kubernetes常用的CNI网络插件,采用VXLAN协议实现跨节点Pod通信。它通过etcd维护集群网络配置,为每个节点分配独立子网,并创建flannel0/flannel.1虚拟网卡处理数据封装转发。Pod流量经cni0网桥转发到flannel.1设备,后者通过查询FDB表获取目标VTEP地址,完成VXLAN封装后跨节点传输。对端节点解封装后将数据包送回目标Pod的cni0网桥。整个过程中,flanneld负责维护路由、ARP和FDB表信息,确保集群内Pod间通信的可靠性和隔离性。测试

2025-12-17 15:13:28 1204

原创 kubernetes-开启审计日志

本文介绍了在Kubernetes集群中为API Server开启审计日志的步骤。首先创建审计策略文件/etc/kubernetes/audit-policy.yaml,定义需要记录的关键变更操作。然后修改API Server的static pod配置文件/etc/kubernetes/manifests/kube-apiserver.yaml,添加审计日志相关参数和volume挂载配置。保存后kubelet会自动重启API Server使配置生效。通过这种方式可以记录集群中关键资源的创建、更新、删除等操作日

2025-12-09 17:49:48 144

原创 kubernetes-基于kubeadm部署集群

kubeadm 是 Kubernetes 社区提供的集群构建工具,它负责构建一个最小化可用集群并执行启动等必要的基本步骤**,简单来讲,kubeadm 是 Kubernetes 集群全生命周期管理工具,可用于实现集群的部署、升级/降级及卸载等。kubeadm 的核心工具是 **kubeadm init 和 kubeadm join**,前者用于创建新的控制平面节点,后者则用于将节点快速连接到指定的控制平面,它们是创建 Kubernetes 集群最佳实践的“快速路径”。

2025-12-09 17:47:47 984

原创 容器-汇总所有环境下的日志排查问题

本文汇总了Docker、Containerd和Kubernetes环境下容器日志的排查方法。主要内容包括:1)Docker环境下通过docker logs查看控制台日志及定位日志存储路径;2)Containerd环境下使用ctr/nerdctl工具查询容器,但默认不输出控制台日志;3)Kubernetes环境下通过kubectl命令查看Pod日志,日志默认存储在/var/log/pods目录。文章为容器环境下的问题排查提供了实用的日志定位指南。(149字)

2025-12-08 16:55:36 200

原创 容器-PUSH镜像卡住问题排查

摘要:Harbor镜像仓库v2.12.4部署后出现docker push卡住问题。排查发现是由于容器MTU(1500)与宿主机(1450)不匹配,导致TCP分包失败但无显式报错。通过修改harbor的docker-compose.yml中网络MTU为1450,并建议在/etc/docker/daemon.json中统一配置MTU值解决。根本原因是网络MTU不一致导致数据包无法传输,而TCP层持续等待未触发应用层错误提示。

2025-12-02 11:00:41 370

原创 容器-harbor部署(使用外部数据库以及S3)

Harbor是一个企业级Docker镜像管理平台,提供镜像存储、鉴权、清理等功能。本文介绍了基于docker-compose的Harbor部署方案,包括前置条件检查、证书配置(自购或自签)和Harbor.yml文件配置。部署过程涉及安装Docker、下载Harbor离线包、配置HTTPS证书(支持SAN扩展)以及设置外部数据库、Redis和S3存储服务。配置完成后,通过prepare命令生成最终配置即可完成部署。该方案适合企业环境使用,可提供安全可靠的容器镜像管理服务。

2025-12-02 10:58:39 621

原创 git-拉取代码提交feature代码

本文介绍了git拉取代码并提交feature分支的常用操作。主要包括:1)首次设置时创建本地分支并与远程分支建立关联;2)后续更新操作,包括拉取更新和强制同步;3)验证分支追踪关系;4)开发完成后提交代码的基本流程。文章提供了具体的git命令示例,适用于日常开发中的版本控制需求。

2025-11-05 18:32:40 196

原创 Linux-通过端口转发访问数据库

本文介绍了在受网络限制的环境中通过端口转发访问远程MySQL数据库的两种方法。主要使用iptables实现DNAT转发:1)在跳板机开启IP转发;2)配置PREROUTING规则将本地3306端口转发到MySQL服务器;3)通过MASQUERADE修改请求源地址。也提到可使用Nginx TCP代理实现类似功能。这两种方案简单可靠,能有效解决本地服务访问受限数据库的问题,类似于中介转发机制。

2025-11-05 10:06:29 617

原创 python-使用http快速上传下载文件

文章摘要:本文介绍了使用HTTP协议实现文件传输的Python解决方案,适用于受安全限制无法使用SSH的场景。文章包含两部分内容:1) 通过Python内置模块或Nginx快速搭建HTTP文件下载服务;2) 开发Python HTTP上传服务,详细讲解了基于BaseHTTPRequestHandler实现的多功能文件上传服务器,支持命令行curl上传和Web表单测试。上传服务提供安全文件名生成、文件大小统计、上传日志等功能,并返回JSON格式的响应数据。该方案为受限环境下的文件传输提供了简单可靠的替代方法。

2025-11-03 11:10:12 220

原创 harbor-从源码理解镜像清理的逻辑实现

本文分析了Harbor镜像清理的实现逻辑。首先介绍了Harbor的整体架构,包括核心控制服务、任务引擎服务等多个组件。重点研究了清理策略的实现过程:用户通过页面添加清理策略后,jobservice模块会启动Redis后端worker,在bootstrap引导程序中注册并加载各类任务,其中包括镜像清理任务(retention job)。该任务会被注册到gocraft的worker pool中,同时周期性调度器(scheduler)也会启动,共同完成镜像清理的自动化执行流程。文章通过代码层面解析了Harbor实

2025-10-31 18:32:11 665

原创 postgresql 高频使用语句

查询当前库下的所有表。

2025-10-31 14:07:46 435

原创 容器 - 安装使用jfrog artifactory

本文介绍了在CentOS 7上使用Docker容器部署JFrog Artifactory的详细过程。主要内容包括:1)基础环境准备,安装Docker并拉取镜像;2)配置本地存储方案,设置相关目录和配置文件;3)PostgreSQL数据库配置;4)容器启动命令及访问方式。文章重点讲解了Artifactory的本地存储配置方法,包括创建存储目录、设置权限和编辑binarystore.xml文件。最后提供了通过host网络模式启动容器的方法,并给出了默认访问地址和账号信息。本文适用于需要在内网环境中搭建二进制制品

2025-08-08 10:32:28 780

原创 kubernetes-更换apiserver https证书

摘要:本文介绍了在Kubernetes集群中更换apiserver HTTPS证书的步骤,主要针对需要新增SAN域名但保持CA不变的情况。操作包括检查现有SAN列表、创建包含新旧所有SAN的CSR配置文件、使用原有CA签发新证书,并强调备份旧证书的重要性。整个过程无需变更kube-proxy和kubelet的IP访问方式,仅需重启apiserver服务即可生效。

2025-08-06 17:01:48 312

原创 容器-使用slim减少10x+大模型镜像

slim(原docker-slim)是一个开源工具,全称SlimToolkit(https://github.com/slimtoolkit/slim),用于基于已有的Docker镜像减小镜像的大小,同时尽可能保留容器的功能。它通过分析镜像的运行环境和应用程序依赖,移除不必要的文件和组件,从而减少镜像的大小,加快容器的启动速度,并减少资源的占用。官方声称可以缩小达30倍。

2025-06-09 20:39:52 380

原创 go-大文件分块上传至S3代码

它可让我们上传大数据(或文件时),分成最小 5M 大小段往 S3 上传,待分段全部成功上传到 S3 后再执行一条指令通知 S3 合并文件。只有最后一个段是可以小于 5MB 的,其他段小于 5MB 上传会有异常的。S3 不分段上传,单个文件最大 5GB, 而分段后,每个段的大小在 5MB 到 5GB 之间,可以有 10000 个分段数量,所以最大单个文件可以达到 5TB. 分段上传大数据(文件) 的好处是可以提高吞吐量与上传的可靠性,分段可以同时上传,单个分段上传失败只需重传该分段,而无需全部重传。

2025-06-09 20:37:18 524

原创 vsock 开发实践-virtio-vsock

总的来说,virtio-serial 对内核无要求,兼容性更强且稳定,但是性能低,适合于小规模数据传输的通用场景下使用。而virtio-vsock 对内核有要求,更适合于高吞吐低延迟对性能要求更高的场景下。我们知道在不使用tcp/ip通信的情况下,传统实现guest和host之间的通信主要是基于virtio-serial 串口通信,但是virtio-serial 有一定的局限性。qemu 启动的虚机理应已经有vsock device,检查一下 vsock。设备,适用于云原生和高性能通信场景。

2025-05-13 10:37:01 1686

原创 kubernetes-harbor镜像仓库使用自签https证书

HTTPS协议通过加密确保数据传输安全,其过程分为证书验证和数据传输两个阶段。在证书验证阶段,浏览器发起HTTPS请求,服务端返回证书,客户端验证其合法性。数据传输阶段则使用对称加密,客户端生成随机数并通过公钥加密后传输至服务端,服务端解密后使用该随机数构造对称加密算法加密数据。文章还介绍了在Harbor镜像仓库中使用自签证书实现HTTPS的步骤,包括生成CA证书、服务端证书,配置Harbor的证书文件,以及在客户端操作系统中信任自签证书。通过这些步骤,可以实现客户端无感知地使用HTTPS访问Harbor。

2025-05-13 10:16:32 600

原创 排错-harbor-db容器异常重启

看报错提示是由于数据目录不为空导致初始化失败,docker-compose.yml 中将宿主机目录 /data/database 挂载进容器的。(默认的docker-compose log driver走了tcp syslog, 可以自行更改)docker-compose.yml中新增 privileged: true ,使用特权模式。harbor-db 容器一直restart,查看日志发现 报错。不保留数据,清空容器宿主机上的数据目录 ,再重启重启就行。

2025-05-12 17:59:01 431 2

原创 kubernetes-使用nsenter排查容器问题

命令是一个可以在。它位于包中。。相当多的容器为了轻量级,是不包含较为基础的命令的,比如说ip address,ping,telnet,ss,tcpdump等等命令,这就给调试容器网络带来相当大的困扰:只能通过docker inspect ContainerID命令获取到容器IP,以及无法测试和其他网络的连通性。这时就可以使用调试容器网络。

2025-05-07 11:35:11 166

原创 kubernetes-排查哪个pod打开文件过多

最近通过监控发现某kubernetes宿主机负载逐步增高,同时通过ss -s 发现tcp closed以及打开文件句柄数总是一直涨,涨到一定程度后掉下来了。通过pod uuid反向查找具体pod name。这样能找到具体哪个进程打开了过多的文件描述符。查找进程对应哪个具体哪个POD UUID。然后再排查具体POD的责任人,进而处理~所以首先得找到哪个进程打开了过多的句柄。通过ps 查找具体哪个进程。

2025-05-07 09:48:04 251

原创 openvswitch系列之二 安装ovs

在ovs学习过程中,如果自己想要安装一个ovs交换机其实一条简单的命令 apt install openvswitch 就可以了,但是这种方法只能安装低版本的ovs。在特殊情况下需要安装指定版本,例如需要下发meters表时需要ovs2.8以上的版本,那么就需要下载安装包手动安装。看似一个复杂的过程,其实也是比较简单的。下面就一起来看看如果手动安装一个指定版本ovs交换机。

2025-04-27 09:49:22 543

原创 openvswitch系列之一 简介

Open vSwitch是在开源的Apache2.0许可下的产品级质量的多层虚拟交换标准!它旨在通过编程扩展,使庞大的网络自动化(配置、管理、维护),同时还支持标准的管理接口和协议。安全:VLAN隔离、流量过滤 监控:NetFlow Qos 自动控制。

2025-04-27 09:46:03 812

原创 vsock 框架介绍

vsock 被广泛应用于qemu、以及kata container等云计算场景下。

2025-04-24 10:34:34 1459

原创 openvswitch 常用命令参考

nw_tosnw_ecnnw_ttldl_vlanip_fragarp_shaarp_thaipv6_srcipv6_dstportset field其中,TABLE名支持bridgecontrollerinterfacemirrornetflowportqosqueuessl,sflow。

2025-04-23 09:53:08 1314

原创 openvswitch trace排查虚机网络

远程管理功能,它能通过网络策略实现更多控制。它是XenServer的“波士顿”计划Xen云平台的默认交换机,并且还支持Xen,KVM,Proxmox VE和VirtualBox。虚拟化sdn 基于openvswitch实现,基于ovs trace排查流量路径,查看某虚机 172.16.12.7 (mac fa:16:3e:51:97:cc) 到 172.16.12.10 的路径。Open vSwitch是一种开源软件,专门管理多租赁公共云计算环境,为网络管理员提供虚拟VM之间和之内的流量可见性和控制。

2025-04-23 09:50:48 277

原创 kubernetes-使用ceph-rbd-csi

Ceph是开源的,它使许多供应商能够提供基于Ceph的软件去定义合适的存储系统。因各个项目集群在部署时对存储的需求各有差异,使用Ceph作为统一储存,则在确保可靠性的同时又能具备相应的灵活性,将计算与存储解耦与K8s灵活的部署方式相得益彰。Ceph提供统一的横向扩展存储,带有自我修复和智能预测故障的功能,已经成为软件定义存储的事实上的标准之一。配置cephx的账号和密码(ceph auth 的账号和密码在ceph侧自行生成即可,当然如果不开启cephx的情况下,这里userID和userKey随便填就行)

2025-04-18 19:48:43 1342

原创 kubernetes-高频率使用命令

【代码】kubernetes-高频率使用命令。

2025-04-17 14:50:08 137

原创 Linux-最大线程数问题排查

于是通过 top 以及 top -H 查看系统进程数 300+ 和线程数 4100+,发现top -H 发现用户启动了过多的线程,由此定位到了原因。这是因为在Linux内核中,线程是通过轻量级进程(LWP)实现的,每个线程会占用一个进程号(PID),因此会被计入。发现系统默认除了root 用户默认最多的进程+线程总数最大是4096,所以是不是用户启动了过多进程或线程呢。最近有用户反馈登录CentOS 7系统后,执行任意命令,报错。看到这个怀疑是系统ulimit 限制导致的。

2025-04-15 13:59:18 369

原创 go-开发谚语

你应该了解的go语言的谚语,开发箴言,有利于日常开发。

2025-04-15 09:29:26 312

原创 Kubenetes-基于kubespray 部署集群

kubespray 是一个部署生产级别的kubernetes集群的github 开源项目,基于ansible-playbook实现自动化部署。github地址: https://github.com/kubernetes-sigs/kubespray,具体支持的比如OS以及插件等功能详见github。#这里kubestrap 将ssh ip和cluster 通信的ip 在inventory里面区分开了,这块设计的挺好。PS:上面主机全部都能翻墙国外下载docker镜像,部署完成,在线部署还是很顺利的~

2025-04-14 17:51:47 462

原创 Kubernetes-如何进入某POD中

工作中需要进入pod中查询比如pod 网络等问题。

2025-04-09 17:40:53 909

原创 代码调试-使用gdb调试libvirtd

​ 想知道libvirtd在执行具体函数时,函数的具体传参以及局部变量信息。想调试libvirt 输出某函数执行的过程中的详细信息。client 连接测试。

2025-03-21 15:38:17 242

原创 Linux下使用cgroup限制进程IO

​ 这里涉及到磁盘IO以及网络IO,网络IO依靠rsync 的bwlimit限制接口,对于磁盘IO,考虑使用cgroup实现。​ 在给用户通过rsync 传输数据时,为了避免对线上业务造成IO压力,考虑对进程限制磁盘IO以及网络IO吞吐。系统是centos 6 ,下面配置一下。

2025-03-18 11:57:01 501

原创 Kolla-Ansible deploy部署报错 KeyError: \\‘KernelMemory

解决办法:降低docker版本至docker-ce-20.10.9。

2025-03-04 19:50:26 345

原创 openstack ironic ipa 以及用户镜像制作

中的centos和ubuntu操作系统的镜像可以直接从社区直接下载下来使用,但是总是感觉有问题,cloud-init初始化程序是通用的,启动速度很慢,查了一下相关信息,发现是cloud-init进程会去访问外网一个地址,感觉使用起来用户体验很差。手工制作镜像是最符合实际使用需求的,想定制什么样的镜像都可以,但是有些费时费力。目标是建立一个拥有Nova所需的所有组件的镜像,如trove所需的数据库镜像,ironic所需的支持硬件裸机的镜像。最终成功了,这真的是够费劲的,遇到各种问题,各种改脚本兼容。

2025-02-25 20:31:58 824

rsync+innotify数据同步

innotify数据同步,rsync+innotify

2013-10-11

业务驱动的技术架构

云计算,业务,技术架构,大神著作,必看经典,

2019-02-11

滴滴NOSQL之Fusion的演进之路

滴滴分布式NoSQL数据库Fusion的演进之路,海量存储,大数据

2019-02-11

TIDB-K8S的实践

架构师大会,TiDB的实践分享,在K8S微服务的实战经验分享

2019-02-11

Neutron 网络之负载均衡 - UnitedStack

UnitedStack公司之详细讲解Neutron 网络之负载均衡

2023-07-20

Openstack-在京东的应用实践

Openstack_在京东的应用实践

2023-07-20

开源力量之两小时玩转openstack

开源力量之两小时玩转openstack

2023-07-20

空空如也

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

TA关注的人

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