目录

这半年


杂记

整点儿世界杯的音乐🍺

这半年

时间过得很快,个人感觉是封校的原因,总结一下。

Kubernetes和CNCF

阅读了如下书,包括Kubernetes和其他延伸的云原生技术。

TitleComment
《深入理解Kubernetes》深入理解Kubernetes的起点,将原理基本过了一遍,推荐
《Kubernetes源码剖析》细也没那么细,当工具书看,建议直接读源码
《Kubernetes网络权威指南 :基础、原理与实践》很多笔误并且有抄袭博客的嫌疑,也可一看
《Kubernetes操作器》讲解了kubernetes扩展的核心operator模式,建议看
《Kubernetes设计模式》翻了翻,大概讲了如何将现有业务用云原生的思维和设计模式来实现
《Kubeflow :云计算和机器学习的桥梁》不推荐,可以直接看源码
《云原生应用开发 :Operator原理与实践》移动云出的,不深入,可了解
《多云和混合云 :云原生多集群和应用管理》阿里云出的,很不错,推荐
《Helm学习指南 :Kubernetes上的应用程序管理》很薄的一本书,一中午读完,推荐
《硅谷工程师教你Kubernetes :CI/CD云应用实践》很薄,讲解了多种云原生CI/CD的模式,推荐
《云原生应用管理 :原理与实践》选读了其中的Kustomize部分,还不错
《开源容器云OpenShift :构建基于Kubernetes的企业应用云平台》对云原生平台开发具有很好的参考意义,很厚,选读
《云原生服务网格Istio :原理、实践、架构与源码解析》不错的一本书,还没来得及读
《Knative实战 :基于Kubernetes的无服务器架构实践》挺好的,当时Knative没安装成功,以后再研究
《云原生时代的CoreDNS学习指南》很薄,一中午读完,推荐

探索尝试了几乎所有CNCF毕业和孵化项目,不再一一列举。

KubeSphere

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

Flux的理念是松耦合并易于被集成,是一组功能强大的GitOps toolkit。(顺便祝贺昨天Flux正式从CNCF毕业🎓🎉

为KubeSphere集成了Flux CD。控制器、后端和前端的基本支持已集成进KubeSphere master branch。

https://chengleqi-blog-image.oss-cn-hangzhou.aliyuncs.com/img/ks-flux-arch.png
架构图

今后还需要增强kubesphere/ks-devops和kubesphere/console的功能,并且需要在kubesphere-sigs/ks-devops-helm-chart、kubesphere/ks-installer和kubesphere/kubesphere中都添加支持,还有许多想法和事情要做。

以下是云原生直播间的视频,主要分享了KubeSphere集成Flux CD的设计与实现。

KubeVela

我个人非常认可KubeVela的理念,并且KubeVela社区相当活跃,我对Flux的插件进行了增强,成为了Member,这是我第一次成为Member,十分激动。最近KubeVela申请成为CNCF的孵化项目,祝好运~

https://chengleqi-blog-image.oss-cn-hangzhou.aliyuncs.com/img/join-kubevela.png
KubeVela Member

一个云原生机器学习平台

一开始要做一个全功能的平台,我按照了cube-studio用抢占式GPU集群搭建了一个: https://chengleqi.com/AI-docs/

但是发现其实并不需要很多额外的高级功能,于是使用云边多集群的方案,以KubeVela为核心构建了一个新的平台。

https://chengleqi-blog-image.oss-cn-hangzhou.aliyuncs.com/img/AI-arch.png
架构图

XV6

我在进行XV6前的准备:

  • 王爽汇编第四版
  • 《从实模式到保护模式》部分章节
  • 《CSAPP》第1、2、3、7、8、9、10、12章
  • 《程序员的自我修养》2、3、4章
  • 哈工大的操作系统视频

然后学习了XV6,确实很好,编写XV6的Russ Cox是现在Go语言的leader,XV6中有熟悉的Golang的味道~

有趣的地方是,因为我是Macbook Air M2,所以我搭建XV6环境的时候使用了lima虚拟机搭建,用的其中的Arch模板,这是我第一次尝试ArchLinux哈哈。

https://chengleqi-blog-image.oss-cn-hangzhou.aliyuncs.com/img/archlinux.png
archlinux

网络

最近正在进行网络部分的学习,顺便花了5天的时间把HCIA的课程看完了,感觉对互联网又有新的认识。

多谢ryan4yin提供的精美容器网络图

+-----------------------------------------------+-----------------------------------+-----------------------------------+
|                      Host                     |           Container A             |           Container B             |
|                                               |                                   |                                   |
|   +---------------------------------------+   |    +-------------------------+    |    +-------------------------+    |
|   |       Network Protocol Stack          |   |    |  Network Protocol Stack |    |    |  Network Protocol Stack |    |
|   +----+-------------+--------------------+   |    +-----------+-------------+    |    +------------+------------+    |
|        ^             ^                        |                ^                  |                 ^                 |
|........|.............|........................|................|..................|.................|.................|
|        v             v  ↓                     |                v                  |                 v                 |
|   +----+----+  +-----+------+                 |          +-----+-------+          |           +-----+-------+         |
|   | .31.101 |  | 172.17.0.1 |      +------+   |          | 172.17.0.2  |          |           |  172.17.0.3 |         |
|   +---------+  +-------------<---->+ veth |   |          +-------------+          |           +-------------+         |
|   |  eth0   |  |   docker0  |      +--+---+   |          | eth0(veth)  |          |           | eth0(veth)  |         |
|   +----+----+  +-----+------+         ^       |          +-----+-------+          |           +-----+-------+         |
|        ^             ^                |       |                ^                  |                 ^                 |
|        |             |                +------------------------+                  |                 |                 |
|        |             v                        |                                   |                 |                 |
|        |          +--+---+                    |                                   |                 |                 |
|        |          | veth |                    |                                   |                 |                 |
|        |          +--+---+                    |                                   |                 |                 |
|        |             ^                        |                                   |                 |                 |
|        |             +------------------------------------------------------------------------------+                 |
|        |                                      |                                   |                                   |
|        |                                      |                                   |                                   |
+-----------------------------------------------+-----------------------------------+-----------------------------------+
         v
    Physical Network  (192.168.31.0/24)