PYQ Blog

「想成为真正的工程师」

本博客已不再更新,欢迎前往新的博客链接

No more update in this blog, search the new website!

2022年6月10日,本博客建立;2025年2月2日,本博客停止更新。博客内容已整体精简搬迁至新的链接。

置顶——博客收藏

Read Some Good Blogs

本篇博客旨在记录平时阅读到一些有用的网站、博客和文章,长期更新。 用了最简单的使这篇博客置顶的方法 : ) security Google has broken SHA-1 in practice. computer architecture CPU三级Cache operating systems & linux 通过fork函数来看Lin...

自建Emby教程

Build your own Emby

TL; DR:折腾了一圈最终还是没使用自建Emby进行观影🤣 Why Emby 为什么需要Emby 关于Emby的wiki—终点站Emby 不想/愿意为国内流媒体商付钱 对画质等有较高要求 喜欢海报墙 热爱观影 想要有自己的影视库,并分享给朋友家人 喜欢折腾 …… 为什么需要自建Emby 之前一直使用公费服(比如最近跑路的Miskaf服),虽然体验...

2024年终总结

The end of 2024

2024 今天是2024年的最后一天,按照这几年的惯例是时候对今年做个年终总结了(绝对不是我懒才拖到最后一天的bushi,其实去年也是最后一天写的x)。2024年过的真的特别快,因为除了冬季全年都超级忙。整年可以概括为【全心全意找工】、【匆匆忙忙开题】、【给甲方做项目做的心力交瘁】、【浑浑噩噩中期】和【阶段性的摆烂】。总体来看,2024年还是比较满意的,收获了很多,几个重要的目标也都完成了...

Slim Web Server

Introduction to Slim Web Server

本文是对个人项目 Slim Web Server的详细介绍。 Overview 主要特性: 利用标准库容器封装char,实现动态增长的字节流缓冲区; 利用锁、条件变量和队列实现单生产者消费者的阻塞队列; 利用单例模式与阻塞队列实现支持异步和同步的日志系统,记录服务器运行状态; 基于小根堆实现的定时器,关闭超时的非活动连接,节约系统资源; 利用RAII机制实现了...

Microservices Go-Zero

Introduction to microservices-go-zero

概览 本文是对个人项目 microservices-go-zero的详细介绍。 microservices-go-zero基于go-zero的民宿微服务系统,包括用户中心服务、民宿服务、订单服务和支付服务。 系统架构 业务架构 Feature 使用go-zero框架进行开发,稳定、高性能。 使用Nginx作为对外网关,前面可接入SLB负...

Container Hooks Toolkit

Introduction of Container Hooks Toolkit

本文是对个人项目 Containers Hooks Toolkit 的详细介绍。 Overview container-hooks-toolkit用于向容器的配置文件(config.json)中插入自定义的oci hooks,以实现在容器的不同生命周期进行细粒度的操作,组件包括: container-hooks-runtime container-hooks-ctk ...

K8s源码阅读—Kubelet创建容器流程(三)

How Kubelet Creates Containers Ⅲ

在K8s源码阅读—Kubelet创建容器流程(二)中我们将kubelet创建容器的流程推进到了容器运行时创建容器的阶段。 SyncPod (container runtime) SyncPod负责将当前Pod的运行状态同步到期望状态。这个过程包括了一系列的步骤,涉及到计算沙箱(sandbox)和容器的变化、杀死不必要的沙箱和容器、创建新的沙箱和容器等。下面是函数的主要步骤和逻辑: ...

K8s源码阅读—Kubelet创建容器流程(二)

How Kubelet Creates Containers Ⅱ

在K8s源码阅读—Kubelet创建容器流程(一)中对kubelet的启动流程进行了分析,在最终的入口函数中,kubelet通过kl.syncLoop(ctx, updates, kl)监听来自file/apiserver/http 事件源发送过来的事件,并对事件做出对应的同步处理。 通过上述3种事件源创建的pod亦有区别,可分为静态pod(static pod)和镜像pod(mir...

K8s源码阅读—Kubelet创建容器流程(一)

How Kubelet Creates Containers I

当我们在k8s master节点发起创建pod/deployment时,需要经过很多步骤,这里只记录步骤6-9: 提交请求:使用kubectl命令或Kubernetes API提交创建Pod或Deployment的请求时,该请求首先会发送到K8s-apiserver。 API服务器验证与授权:k8s-apiserver会验证请求的合法性(例如,检查请求的格式是否正确)并进行授权检...