胡伟煌

个人博客

置顶 [随笔] 总得写点什么

总得写点什么 ​  好像每一个拥有技术博客的人一般会在开篇写一篇关于为什么自己要建一个技术博客。就好比程序员在学一门新的语言,第一段代码总要写一个Hello World,以表示对这世界的尊重。 ​  距离我创建独立域名的博客已经一年了,那时候还选择在10月24号这个程序员特殊的节日发布,并发表朋友圈说自己拥有了一个独立的自居地,可以写点技术文章或关于心情的东西,算是把自己“开源”出去了。然后......

置顶 [随笔] 坐井观天

坐井观天 ​  慢慢长大,有时候才会发现有些事情是不可为的。 ​  曾经在很小的时候,我发现我自己是会思考的,我以为全世界只有我一个人会思考,当时觉得很有意思。后来更大一些,也就更懂一些,知道了自己是在一个群体中的,这个群体是我可以接触到或感受到的范围,这个群体每个人都是独立的个体,而我只是其中一个。 ​  小学,初中,高中,大学,我们就这样被一步一步地筛选上来,每个人像是一个产品又不像是......

置顶 [随笔] 胡思乱想

胡思乱想 ​  最近又开始乱想了,走在路上脑海都有莫名的思绪在飘,而当你静下来的时候又一溜烟跑没了,都不知道去哪里找。2018年还有几天就要结束了,好像来得太快了些。 ​  回想自己刚毕业的时候,总觉得还年轻,有试错的资本,比大多数人幸运的是比较早的找到了方向,不用挣扎在换方向和不得不做自己不喜欢的事情。毕竟挺多人陷入这样的一个循环:做着自己不喜欢的事情,而又不能从中得到提升,得不到提升就无......

[Runtime] Runc与Containerd概述

本文主要分析OCI,CRI,runc,containerd,cri-containerd,dockershim等组件说明及调用关系。 1. 概述 各个组件调用关系图如下: 图片来源:https://www.jianshu.com/p/62e71584d1cb 2. OCI(Open Container Initiative) OCI(Open Container Initiativ......

[Runtime] Kata container简介

Kata-container简介 kata-container通过轻量型虚拟机技术构建一个安全的容器运行时,表现像容器一样,但通硬件虚拟化技术提供强隔离,作为第二层的安全防护。 特点: 安全:独立的内核,提供网络、I/O、内存的隔离。 兼容性:支持OCI容器标准,k8s的CRI接口。 性能:兼容虚拟机的安全和容器的轻量特点。 简单:使用标准的接口。 1. kata-container架构......

[Kubernetes] Lxcfs资源视图隔离

1. 资源视图隔离 容器中的执行top、free等命令展示出来的CPU,内存等信息是从/proc目录中的相关文件里读取出来的。而容器并没有对/proc,/sys等文件系统做隔离,因此容器中读取出来的CPU和内存的信息是宿主机的信息,与容器实际分配和限制的资源量不同。 123456/proc/cpuinfo/proc/diskstats/proc/meminfo/proc/stat/proc/......

[源码分析] kube-scheduler源码分析(五)之 PrioritizeNodes

kube-scheduler源码分析(五)之 PrioritizeNodes 以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析优选策略逻辑,即从预选的节点中选择出最优的节点。优选策略的具体实现函数为PrioritizeNodes。PrioritizeNodes最终返回是一个记录了各个节点分数的列表。 1. 调用入口 genericScheduler.Sched......

[源码分析] kube-scheduler源码分析(四)之 findNodesThatFit

kube-scheduler源码分析(四)之 findNodesThatFit 以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析调度逻辑中的预选策略,即第一步筛选出符合pod调度条件的节点。 1. 调用入口 预选,通过预选函数来判断每个节点是否适合被该Pod调度。 genericScheduler.Schedule中对findNodesThatFit的调用过程......

[源码分析] kube-scheduler源码分析(三)之 scheduleOne

kube-scheduler源码分析(三)之 scheduleOne 以下代码分析基于 kubernetes v1.12.0 版本。 本文主要分析/pkg/scheduler/中调度的基本流程。具体的预选调度逻辑、优选调度逻辑、节点抢占逻辑待后续再独立分析。 scheduler的pkg代码目录结构如下: 123456789101112131415161718192021222324252......

[源码分析] kube-scheduler源码分析(二)之 registerAlgorithmProvider

kube-scheduler源码分析(二)之 registerAlgorithmProvider 以下代码分析基于 kubernetes v1.12.0 版本。 此部分主要介绍调度中使用的各种调度算法,包括调度算法的注册部分。注册部分的代码主要在/pkg/scheduler/algorithmprovider中,具体的预选策略和优选策略的算法实现在/pkg/scheduler/algor......