240 发简信
IP属地:重庆
  • AI找到一个错别字:这段话中有一个错别字,“心里学” 应改为 “心理学”。
    修改后的文本如下:
    思维底座取决于程序员看待世界的方式,和哲学及心理学都有关。程序员开发软件是把现实中的世界模拟到计算机中来运行,每个程序员在这个时候都相当于一个造物主,在计算机重新创造一个特定领域的世界,那么如何看待这个世界就有些哲学观的味道在里面。这个虚拟世界的最小构筑物是什么?每个构筑物之间的关系是什么?用什么方式把这个虚拟世界层累起来。随着科学技术的演进,人们看待世界的方式会发生变化,比如生物学已经演进到细胞,自然科学已经演进到原子,于是程序员模拟世界的思维底座也会发生变化。😄

    聊聊编程范式

    什么是编程范式 编程范式一词最早来自 Robert Floyd 在 1979 年图灵奖的颁奖演说,是程序员看待程序应该具有的观点,代表了程序设计者认为程序应该如何被构建和执行...

  • 如果是要对k8s节点资源进行对账,还有一个比较好的方法是跑一个damonset,定时获取cr的状态,并对节点资源进行对账,要是有出入对节点资源进行查漏补缺

    k8s informer对账

    引言 记得一次面试,被问到通过informer做垃圾回收时,队列中的消息还没处理完,informer的实例发生了重启,如何将丢失的任务处理完 informer流程图 运行流程...

  • 120
    kubebuilder with controller-runtime解读

    背景 kubebuilder可以一键帮我们生成一个operator工程。具体是如何实现的呢?kubebuilder主要借助了k8s的另一个开源项目controller-run...

  • 在删除时,还需要注意:要是k8s资源被清理了,本地资源没有直接的对应关系(无法通过id唯一对应),cr和本地资源的对应关系维护在cr的spec中,这时需要在创建cr时添加finallize进行延迟延迟,只有进行了实际的清理才去移除finallize里的资源项。这样在infromer重启时,还会触发对应资源的add事件(状态为deleting), 调协函数判断是deletetimestep不为空,继续执行删除逻辑。

    k8s informer对账

    引言 记得一次面试,被问到通过informer做垃圾回收时,队列中的消息还没处理完,informer的实例发生了重启,如何将丢失的任务处理完 informer流程图 运行流程...

  • 120
    k8s informer对账

    引言 记得一次面试,被问到通过informer做垃圾回收时,队列中的消息还没处理完,informer的实例发生了重启,如何将丢失的任务处理完 informer流程图 运行流程...

  • 不行啊,整个路径都要二层通才能广播

    容器跨二层主机网络通信

    背景介绍 容器技术通过在创建一个linux网络命名空间从而将进程隔离在一个独立的网络环境。但是容器进程之间如何进行网络通信呢? 同一主机内容器间通信 比较容易得做法是,在主机...

  • 主机间要通过路由表去打通的,则不在同一个网段内,要是主机不在同一个网段(通过路由表打通的三层),主机上网桥在同一个网段,跨主机容器是否可以直接广播通信呢?

    容器跨二层主机网络通信

    背景介绍 容器技术通过在创建一个linux网络命名空间从而将进程隔离在一个独立的网络环境。但是容器进程之间如何进行网络通信呢? 同一主机内容器间通信 比较容易得做法是,在主机...

  • 120
    容器跨二层主机网络通信

    背景介绍 容器技术通过在创建一个linux网络命名空间从而将进程隔离在一个独立的网络环境。但是容器进程之间如何进行网络通信呢? 同一主机内容器间通信 比较容易得做法是,在主机...

  • go语言API完成复杂任务流程工作实践

    背景介绍 通过API执行一个复杂的任务(包含多个子任务)时,做成异步接口是一个比较好的选择。但是这样做有几个问题就要解决: 任务执行到一半,宿主机宕机或重启,任务如何保证可靠...

  • 120
    AI大模型工程化实践

    背景介绍 AI大模型这两年可算是出尽风头,我们看看如何将大模型进行工程化,可以更近近距离感受下AI大模型。 引用软件 ollama gradio gemma:2b 实践过程 ...

  • 120
    k8s调度器扩展

    调度需求 Gang调度(pod group):部署一个工作负载时,满足一定数量的pod能调度成功,即可以正常调度,不然全部调度失败-- 例如:模型训练时,算法要求至少运行8个...

  • 120
    k8s使用存储静态卷

    引言 在k8s csi存储的发展过程中,通过手动创建静态卷(PersistentVolume)的方式似乎已经淹没在历史的长河中。现在为什么要再说呢?在一些特殊的场景,这种方式...

  • 120
    slurm on k8s IB网络调度优化

    调度需求 k8s的默认调度器在调度pod时,分两个阶段,第一个阶段:根据请求资源和pod、node的亲和性等配置筛选出符合要求的node列表。第二阶段:对筛选出来的node资...

  • 120
    kafka部署在kubernetes中的跨集群访问失效问题

    背景介绍 kafka是一个分布式高吞吐的流处理平台。kafka每个的工作节点称为一个broker,broker之间通过zookeeper选主确定controller。生产数据...

  • 使用go-ceph创建subvolume

    背景介绍 需要访问ceph创建subvolume卷,因为在ceph quincy版本rest api不支持subvolume的创建(reef版本已经支持)。所以需要引入cep...

  • 120
    使用csi标准接口将pvc存储卷挂载到虚机目录上

    需求背景: k8s为了和存储厂商解耦,定义了csi接口规范,存储厂商按照csi规范实现接。csi最核心的几个接口:创建卷、进行卷挂载。创建卷即访问第三方存储服务创建存储卷,卷...

  • 120
    ceph-csi删除存储卷失败

    问题现象: kvm创建虚拟机时,磁盘pvc一直pending创建不出来,排查发现ceph存储已满。进一步检查分析发现,在删除kvm系统盘pvc后,集群中的pv状态变成rele...

  • go modules 基础

    引言 go 语言支持 go modules 特性已经快两年了,但很多项目由于种种原因还没有实施迁移。这几天想写一篇文章,全面的阐述一下 go modules 特性,使得读者快...