自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 资源 (9)
  • 收藏
  • 关注

原创 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 2227

原创 kubernetes 1.26.1 Etcd部署(外接)保姆级教程

保姆级部署文档

2023-02-25 14:43:00 1972

原创 k8s 集群部署rook-ceph存储系统及使用

一、Rook 、ceph简介Ceph分布式存储系统Ceph是一种高度可扩展的分布式存储解决方案,提供对象、文件和块存储。在每个存储节点上,您将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程。在Ceph集群上,您还可以找到Ceph MON(监控)守护程序,它们确保Ceph集群保持高可用性。RookRook 是一个开源的cloud-native storage编排, .........

2020-10-22 21:24:14 7100 4

原创 golang 使用栈模拟计算器

【代码】golang 使用栈模拟计算器。

2024-04-14 20:14:37 51

原创 golang 冒泡、选择、插入、快速排序法

golang 冒泡、选择、插入、快速排序法

2024-04-08 12:13:58 280

原创 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 609

原创 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 674

原创 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 1013

原创 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 477

原创 Glusterfs 常用命令

删除卷的前提是先停止卷,如果要删除卷下面的数据,现在客户端将卷下的数据删除完毕,再停止卷,再删除卷。GlusterFS 卷快照功能基于精简配置的 LVM 快照。Brick LVM 不应包含除Brick以外的任何其他数据。任何Brick都不应该放在厚重的 LVM 上。每个块都应位于独立的精简配置的 LVM 上。Gluster 版本应为 3.6 及以上。

2024-03-13 18:21:44 335

原创 k8s Sidecar filebeat 收集容器中的trace日志和app日志

将容器中服务的trace日志和应用日志收集到KAFKA,需要注意的是 trace 日志和app 日志需要存放在中。分别为APP_TOPIC和TRACE_TOPIC。

2024-01-31 16:00:56 663

原创 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 698

原创 ingress nginx配置说明

【代码】ingress nginx配置说明(持续更新)

2023-12-29 11:57:48 734

原创 监控k8s controller和scheduler,创建serviceMonitor以及Rules

直接上干货。

2023-12-19 14:42:21 702

原创 client-go 实现一个自动创建ingress资源的controller

创建的service annotaion中如果包含ingress/http: "true"的时候,会自动将该服务的ingress资源创建出来,当删除掉ingress/http: "true"的时候,自动删除ingress, 同时将service删除掉的时候也会自动删除ingress。

2023-10-24 10:27:32 290

原创 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 1722 2

原创 分布式训练 最小化部署docker swarm + docker-compose落地方案

机器具备docker、NVIDIA显卡、NVIDIA驱动等相关安装包和硬件设施,nvidia-smi 可以正常显示出机器的GPU显卡。

2023-08-27 22:15:50 1109

原创 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 846

原创 Glusterfs 调优

直接上干货,替换volume 名称,CPU、memory 根据实际机型来配置。

2023-08-08 14:09:28 439

原创 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 1859

原创 GlusterFs 分布式复制卷(Distributed-Replicate)性能测试

随机读:bs低于8k时GlusterFS 每秒写入的字节数低于NFS,大于8k时每秒读取的数据远远超过NFS,但是bw低于glusterfs意。GlusterFS可以将数据进行分布式备份,保证数据的可靠性,而NFS没有这个功能,如果其中的某一台服务器出现问题,可能会导致共享文件系统无法正常访问。在吞吐量方面,GlusterFS比NFS要慢,因为GlusterFS的数据读写需要经过网络通信,而NFS的数据读写直接在本地磁盘操作,所以相对来说,NFS的吞吐量要高一些。它是通过循环执行相同的负载来实现的。

2023-07-07 15:17:00 1160

原创 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 2140

原创 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 1752

原创 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 864

原创 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 2057

原创 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 2554

原创 golang 单向环形链表增、删

【代码】golang 单向环形链表增、删。

2023-06-04 19:16:03 69

原创 golang 单链表的实现增删改查

【代码】golang 单链表的实现增删改查。

2023-05-15 01:25:46 143 1

原创 Golang 数据结构-环形队列

【代码】Golang 数据结构-环形队列。

2023-05-14 15:56:30 204

原创 ElasticSearch 部署及安装ik分词器

公司es集群现以三个角色部署分别为 Gateway、Master、Data 简单的理解可以理解为在每台机器上部署了三个es,以端口和配置文件来区分这三个es不同的功能。我们知道本来安装分词器是件特别简单的事网上的教程也是一大片一大片的,在我们的环境和架构下在es 5.5版本之后就不需要修改es的配置文件进行配置分词器了。还有一定要用es对应版本的分词器,否则启动的时候会有报错。启动用户:elasticsearch su elasticsearch路径:/opt 三个es进程。

2023-04-23 16:49:57 2477

原创 Harbor https证书生成及Openssl 常用命令

【代码】Openssl 常用命令及Harbor证书生成。

2023-04-12 18:57:02 513

原创 helm 安装ingress nginx 4.5.2

ingress-nginx-4.5.2.tgz:ingress nginx安装包。helm-v3.11.1-linux-amd64.tar.gz: helm 工具。绑定hosts进行访问测试。修改values文件。

2023-03-06 13:09:40 841

原创 kubernetes ApiServer CA证书续期

v3_ext说明:实际上就是x.509 v3_ext (extension 扩展)证书主要是基于ITU X.509标准的一种数字证书,x.509标准定义了PKI(public key infrastructure)证书的格式。x.509证书主要是用来管理互联网通讯中的身份和安全。简单来说,x.509证书就是基于x.509标准的PKI。指明了如何颁发和管理证书。根据获取到的subject ca私钥 extfile 生成新的请求文件。

2023-03-06 02:07:01 206

原创 node节点批量加入k8s集群ansible playbook

init_k8s_node.sh 脚本。node节点初始化 playbook。内核更新playbook。使用工具ansible。

2023-03-03 14:57:22 142

原创 Rancher 证书过期处理方案

rancher ui 突然不能访问, 日志可以看出证书已经过期。1. 进入 rancher server 容器,执行相关操作。3. 重启rancher server 容器。

2023-02-28 18:24:51 847

原创 k8s 老集群二进制 ca证书过期解决过程

修改.kube/config文件中的certificate-authority-data 字段内容。3. 更新.kube/config 文件(如果有多个master的话,每个节点都需要替换)查看/etc/kubernetes/ssl/ca.pem 有效期。4. 重启etcd和kube-apiserver (必须重启)得到ca.pem证书base64编码后的内容。1. 备份原来的配置文件及证书。2. 重新颁发ca证书。

2023-02-28 13:36:26 992

原创 golang 连接redis 建立线程池

【代码】golang 连接redis 建立线程池。

2023-01-05 15:39:06 264

原创 harbor 使用python调harbor api进行定时同步镜像 【干货,粘贴复制直接用】

使用python flask 调用harbor api 实现动态定时镜像同步

2022-12-03 15:01:31 902

原创 jenkins 执行shell命令报错 error: cannot open ‘.git/FETCH_HEAD‘: Permission denied

设置enkins 为root用户启动。

2022-11-29 11:38:25 628

原创 CI/CD 编译golang项目依赖包使用自建的gitlab仓库 免密码配置

ci cd golang开发语言编译

2022-11-13 16:59:23 655

prometheus-stack values.yaml

prometheus-stack values.yaml

2023-07-13

k8s coredns grafana 面板

k8s coredns grafana 面板

2023-06-09

es-ansible-playbook

es 部署安装playbook

2023-04-23

kubernetes 1.26.1 安装包

kubernetes 1.26.1 安装包

2023-02-24

Centos7 5.4.231 内核

稳定内核版本

2023-02-24

codis/redis 迁移redis cluster工具

支持codis迁移数据到redis 支持codis迁移数据到redis cluster 支持redis迁移数据到redis 支持redis迁移数据到codis 支持增量同步数据

2022-08-18

pika 3.6.6 安装包

pika 3.6.6 安装包

2022-05-12

高可用postgres helm chart安装包

高可用postgres helm chart安装包

2022-05-11

prometheus k8s监控指标

prometheus k8s监控指标

2022-03-21

Codis ansiable playbook 一键部署

Codis ansiable playbook 一键部署

2022-03-21

ansiable redis-cluster

ansiable redis-cluster

2022-03-21

containerd.io-1.3.7-3.1.el7.x86_64.rpm

docker containerd rpm package

2021-11-19

k8s-coredns_rev1.json

json文件

2021-06-25

granfan.zip

granfan json

2021-03-28

ubuntu-desktop.zip

ubuntu-desktop.zip

2021-03-28

空空如也

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

TA关注的人

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