- 博客(138)
- 资源 (9)
- 收藏
- 关注

原创 个人开源项目 Smart 工单系统
Smart-API 工单系统是基于 Go 语言开发的后台管理系统,前后端分离,采用 Gin 框架作为后端,Vue.js 和 Element UI 作为前端。系统旨在实现对工单管理的高效处理,支持任务分配、执行监控、实时更新等功能。
2024-11-24 21:31:42
761
3

原创 kubeadm 部署kubernetes 1.26.1集群 Calico BGP ToR配置
完成内核升级、系统配置、部署容器运行时Containerd、安装crictl客户端命令、安装 kubeadm、kubelet 和 kubectl。备注:coredns Pending、节点NotReady 是因为没有安装CNI插件,下面步骤进行安装calico CNI讲述。由于使用了Calico ToR 网络模式每次新加入的节点都要修改calico node节点as number号。kubelet需要指定 --container-runtime-endpoint=检查BGP 连接状态。
2023-02-25 15:13:24
2857

原创 k8s 集群部署rook-ceph存储系统及使用
一、Rook 、ceph简介Ceph分布式存储系统Ceph是一种高度可扩展的分布式存储解决方案,提供对象、文件和块存储。在每个存储节点上,您将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程。在Ceph集群上,您还可以找到Ceph MON(监控)守护程序,它们确保Ceph集群保持高可用性。RookRook 是一个开源的cloud-native storage编排, .........
2020-10-22 21:24:14
7632
4
原创 Kubernetes CronJob 定时重启 Pod 的最佳实践
每天自动执行 kubectl rollout restart 命令。在 Kubernetes 集群中,应用长时间运行可能会出现。等问题,影响服务稳定性。为了解决这些问题,我们可以使用。限制 kubectl 命令的权限,避免安全隐患。:仅赋予 patch 权限,确保安全。:不保留执行历史,防止资源浪费。:滚动重启,保证业务不中断。,确保服务持续稳定运行。
2025-03-18 11:02:10
148
原创 基于 Ingress-Nginx 实现 mTLS 双向认证
通过自签名证书启用双向 TLS在微服务架构中,安全性是至关重要的考虑因素。特别是在 Kubernetes 环境下,Ingress 作为流量入口,承担着重要的安全网关角色。默认情况下,Ingress-Nginx 仅支持 TLS 单向认证,即客户端验证服务器的证书,而 mTLS(Mutual TLS,双向 TLS 认证)则进一步增强了安全性,要求客户端也提供受信任的证书,以实现双向身份验证。mTLS 适用于需要严格身份认证的场景,如:•:确保只有受信任的客户端可以访问微服务。•。
2025-03-03 18:41:48
1078
原创 开源的工单系统 使用go+vue 适用于各种场景
基于Gin + Vue + Element UI OR Arco Design OR Ant Design的前后端分离权限管理系统,系统初始化极度简单,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得更简单,服务指令可以很简单的启动api服务了解更多。后端项目:https://github.com/sunwenbo/smart-api。前端项目:https://github.com/sunwenbo/smart-ui。默认登录账户: admin / 123456。
2025-01-24 17:18:21
411
原创 Loki 各模式简介
Loki 部署模式Loki 是一个由许多微服务组成的分布式系统。它还具有独特的构建模型,其中所有这些微服务都存在于同一个二进制文件中。您可以使用命令行标志配置单个二进制文件的行为-target,以指定哪些微服务将在启动时运行。您可以进一步配置文件中的每个组件loki.yaml。由于 Loki 将其存储的数据与提取和查询数据的软件分离,因此您可以根据需求的变化轻松地在不同模式下重新部署集群,而无需进行任何配置更改或只需进行很少的配置更改。单片模式最简单的操作模式是单片部署模式。
2024-12-17 19:37:46
1004
原创 Loki 微服务模式组件介绍
Loki 是一个用于日志聚合和查询的系统,广泛用于 Kubernetes 和微服务架构中。Loki 的微服务模式将其核心功能拆分为多个独立的组件,每个组件专注于特定的任务。Distributor(分发器)接收日志数据(通常通过push协议或Promtail将日志数据分发到Ingester组件进行存储和处理。通过hash-ring算法,根据日志流的标签(labels)计算分区,并将数据路由到正确的Ingester。作为日志数据的入口,负责任务分配和路由。
2024-12-17 19:33:35
1369
原创 好用的工单系统,适用于各种场景
基于Gin + Vue + Element UI OR Arco Design OR Ant Design的前后端分离权限管理系统,系统初始化极度简单,只需要配置文件中,修改数据库连接,系统支持多指令操作,迁移指令可以让初始化数据库信息变得更简单,服务指令可以很简单的启动api服务了解更多。后端项目:https://github.com/sunwenbo/smart-api。前端项目:https://github.com/sunwenbo/smart-ui。默认登录账户: admin / 123456。
2024-12-17 16:24:47
360
原创 java性能分析 arthas 使用教程
显示这个页面后,我们需要退出到容器到bash环境。停止分析后将会生成一份火焰图文件。启动分析,需要执行一段时间。登陆web页面 访问。
2024-11-29 16:45:14
312
原创 Prometheus 监控接入规范
前缀: 使用清晰的前缀区分不同业务领域或服务。http_:与 HTTP 请求相关的指标。db_:与数据库相关的指标。cache_:与缓存系统相关的指标。命名风格: 使用小写字母和下划线分隔词。指标名称应简单易懂,并反映其所代表的内容。示例:简洁明了: 指标名称应当简洁、描述性强,便于理解和使用。避免使用复杂、难以理解的名称。例如,明确表明它代表 HTTP 请求的总数。使用标准前缀和单位: 遵循 Prometheus 社区推荐的命名惯例,以确保一致性和可读性。常见的后缀包括_total表示计数器,
2024-08-15 17:41:53
1122
原创 Prometheus operator 系统参数和监控数据抓取调优
抓取配置频率: 每 30 秒抓取一次。路径: 请求路径。端口: 使用端口9203tcp。协议: 使用 HTTP 协议。超时: 请求超时时长为 10 秒。标签重写使用labeldrop操作和正则表达式删除不需要的标签namespacecontainerendpointjobuser以减少标签的基数。样本限制配置限制每次抓取请求的样本数,以防止因单一抓取请求导致的过高开销。这份。
2024-08-12 19:46:31
1165
原创 k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案【建议收藏】
Ant系列GPU支持 NvLink & NvSwitch,若您使用多GPU卡的机型,需额外安装与驱动版本对应的nvidia-fabricmanager服务使GPU卡间能够互联,否则可能无法正常使用GPU实例。【摘要】 Nvidia A系列裸金属服务器安装NVIDIA和CUDA驱动,安装conda和pytorch2.0并验证cuda的有效性。选择安装环境相关版本: GPU驱动版本为530.30.02、CUDA版本为12.1.0。
2024-06-22 15:32:22
3618
7
原创 LVS NAT、DR、FULL-NAT 模式介绍
NAT模式下的转发流程当请求达到调度器时,此时请求会先达到PREROUTING链,这个时候源IP为CIP 目标IP为VIP当内核检测到访问的IP是本机是,会将数据包发送到INPUT链,IPVS检测到数据包中访问的后段服务是集群服务后,会将请求包发送至POSTROUTING链,这个时候会将目标IP改为RIP,此时源IP为CIP 目标IP为RIP,在这个过程中完成转换。
2024-04-07 11:54:20
724
原创 Calico IPIP和BGP TOR的数据包走向
Calico 通过一个巧妙的方法将 workload 的所有流量引导到一个特殊的网关 169.254.1.1,从而引流到主机的 calixxx 网络设备上,最终将二三层流量全部转换成三层流量来转发。在主机上通过开启代理 ARP 功能来实现 ARP 应答,使得 ARP 广播被抑制在主机上,抑制了广播风暴,也不会有 ARP 表膨胀的问题。发送arp request的接口与接收arp request的接口不能是相同,即容器中的默认网关不能是calico的虚拟网关。宿主机的arp代理得打开。
2024-04-04 23:46:52
842
原创 k8s CNI Calico 网络模式总结【建议收藏】
IP in IP 使用 20 字节标头,IPv4 VXLAN 使用 50 字节标头,IPv6 VXLAN 使用 70 字节标头,IPv4 WireGuard 使用60 字节标头,IPv6 WireGuard 使用 80 字节标头。全网格非常适合 100 个或更少节点的中小型部署,但在规模明显更大时,全网格的效率会降低,我们建议使用路由反射器。备注: IBGP & EBGP 结合使用,集群大于100个节点以后使用TOR模式可以带来很好的性能。
2024-04-02 20:22:30
1835
原创 GPU A800 A100系列NVIDIA环境和PyTorch2.0基础环境配置【建议收藏】
Ant系列GPU支持 NvLink & NvSwitch,若您使用多GPU卡的机型,需额外安装与驱动版本对应的nvidia-fabricmanager服务使GPU卡间能够互联,否则可能无法正常使用GPU实例。【摘要】 Nvidia A系列裸金属服务器安装NVIDIA和CUDA驱动,安装conda和pytorch2.0并验证cuda的有效性。选择安装环境相关版本: GPU驱动版本为530.30.02、CUDA版本为12.1.0。注意事项: 不能选择Driver, 否则会覆盖已安装的NVIDIA驱动.
2024-03-19 20:22:00
3107
原创 Glusterfs 常用命令
删除卷的前提是先停止卷,如果要删除卷下面的数据,现在客户端将卷下的数据删除完毕,再停止卷,再删除卷。GlusterFS 卷快照功能基于精简配置的 LVM 快照。Brick LVM 不应包含除Brick以外的任何其他数据。任何Brick都不应该放在厚重的 LVM 上。每个块都应位于独立的精简配置的 LVM 上。Gluster 版本应为 3.6 及以上。
2024-03-13 18:21:44
1261
原创 k8s Sidecar filebeat 收集容器中的trace日志和app日志
将容器中服务的trace日志和应用日志收集到KAFKA,需要注意的是 trace 日志和app 日志需要存放在中。分别为APP_TOPIC和TRACE_TOPIC。
2024-01-31 16:00:56
1021
原创 ingres nginx 反向代理常见配置(持续更新)
当请求到达nginx时,nginx会将/v1/chat/create 这段url反向代理访问后端的节点。假设我的请求是https://xxx.xxx.com/im_chat/v1/chat/create。可以看到 proxy_pass http://chatbot_flask/;如果想实现访问的url 匹配到的location,不携带给后端服务。的,这代表反向代理给后端的upstream节点不携带。类似nginx的配置如下。
2024-01-30 17:03:27
2917
2
原创 client-go 实现一个自动创建ingress资源的controller
创建的service annotaion中如果包含ingress/http: "true"的时候,会自动将该服务的ingress资源创建出来,当删除掉ingress/http: "true"的时候,自动删除ingress, 同时将service删除掉的时候也会自动删除ingress。
2023-10-24 10:27:32
438
原创 OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装
OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。它本身是一个小型文件数据库。Ldap是树形结构的,能够通过server + client(服务端+客户端)的方式。进行统一的用户(账号)管理。举个栗子:如果有100台机器,一个用户需要登录这100台机器。传统的做法就是每台机器中,都需要创建登录账号,操作100次。想想都会疯掉。
2023-09-05 15:21:26
2499
2
原创 分布式训练 最小化部署docker swarm + docker-compose落地方案
机器具备docker、NVIDIA显卡、NVIDIA驱动等相关安装包和硬件设施,nvidia-smi 可以正常显示出机器的GPU显卡。
2023-08-27 22:15:50
1455
原创 ubuntu 编译安装nginx及安装nginx_upstream_check_module模块
Type:服务启动类型。默认simple表示ExecStart为主进程,notify类似于simple,启动结束后会发出通知信号。另外还有forking,oneshot,dbus,idle等类型;ExecStart,ExecStop,ExecReload等:启动命令组,分别是服务启动时,停止时,重启时,启动前,启动后,停止后执行的命令;After:在b.target服务组启动后,再启动本服务;Description:对该服务的描述;Unit: 服务的启动顺序和依赖关系。WantedBy:服务所在的服务组。
2023-08-16 17:17:11
1075
原创 Helm 安装prometheus-stack 使用local pv持久化存储数据
注:正常pv的状态是Available,因为还有没有创建pvc,下面展示是我部署后的结果,可以看到prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0 绑定了prometheus-pv,至于这个pvc是怎么来的下面会介绍。影响业务:业务数据和监控数据进行隔离,原则上我们可以允许监控数据丢失,但是业务数据一定是不能丢失的。一个正常运行的集群,集群版本最好 >= 1.21,
2023-07-13 17:02:43
2654
原创 GlusterFs 分布式复制卷(Distributed-Replicate)性能测试
随机读:bs低于8k时GlusterFS 每秒写入的字节数低于NFS,大于8k时每秒读取的数据远远超过NFS,但是bw低于glusterfs意。GlusterFS可以将数据进行分布式备份,保证数据的可靠性,而NFS没有这个功能,如果其中的某一台服务器出现问题,可能会导致共享文件系统无法正常访问。在吞吐量方面,GlusterFS比NFS要慢,因为GlusterFS的数据读写需要经过网络通信,而NFS的数据读写直接在本地磁盘操作,所以相对来说,NFS的吞吐量要高一些。它是通过循环执行相同的负载来实现的。
2023-07-07 15:17:00
1681
原创 GlusterFs部署及使用
部署glusterfs 注意:部署过程很简单,只需要安装一个glusterfs-server即可,需要注意的是glusterfs 客户端也需要安装一个客户端工具,并且配置hosts可以解析glusterfs-server的主机名注意:删除卷的前提是先停止卷,如果要删除卷下面的数据,现在客户端将卷下的数据删除完毕,再停止卷,再删除卷5.2 k8s创建资源对象使用glusterfs存储5.2.1 创建glusterfs-endpoints5.2.2 为这些端点创建一
2023-07-07 12:02:44
3951
原创 Ubuntu Nvidia Failed to initialize NVML: Driver/library version mismatch 解决方案
现象:执行nvidia-smi报错原因:NVIDIA 内核版本与系统驱动版本不适配,Ubuntu自动将nvidia的驱动从525.105更新到了525.116 如下图注:当使用apt-get命令时,默认会将所有需要更新的包都下载更新处理方法:重启机器一般情况下就可以解决问题,需要注意的问题是要保证当前机器上没有正在跑的服务,需要将机器上的服务进行驱逐重启之后服务可能会遇到如下问题导致这个问题的原因是由于Ubuntu将驱动更新了,我们使用的cuda版本不能兼容现在的驱动版本。
2023-06-21 15:57:11
1985
原创 golang redis stream 消息队列实现 模拟生产者和消费者
客户端使用go-redis库 "github.com/go-redis/redis",不要使用"github.com/redis/go-redis/v9"使用go-redis/v9 会带来消费消息延时上涨。
2023-06-21 10:29:24
1511
原创 NodeLocal DNS介绍及部署应用
NodeLocal DNSCache通过在集群节点上运行一个 DaemonSet 来提高 clusterDNS 性能和可靠性。处于ClusterFirst的 DNS 模式下的 Pod 可以连接到kube-dns的 serviceIP 进行 DNS 查询。通过kube-proxy组件添加的iptables规则将其转换为CoreDNS端点。通过在每个集群节点上运行 DNS 缓存,NodeLocal DNSCache 可以缩短 DNS 查找的延迟时间、使 DNS 查找时间更加一致,以及减少
2023-06-09 13:54:47
3524
原创 coreDNS 常见问题及优化方案
因为我们的Deployment默认使用的dnsPolicy策略为ClusterFirstWithHostNet,这种模式会优先走集群内部的coredns解析,如果coredns无法解析就会通过coredns的配置文件 forward 到宿主机的/etc/resolv.conf文件使用nameserver dns。我们宿主机的dns是自建的,我们的dns只做内网域名的解析,公网域名都会forward到公有云的DNS服务器。1)可以修改为10s或者5s这样可以减少一些业务流量的损失,但是没有解决本质的问题。
2023-06-08 10:50:55
3833
codis/redis 迁移redis cluster工具
2022-08-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人