这半年
杂记
整点儿世界杯的音乐🍺
这半年
时间过得很快,个人感觉是封校的原因,总结一下。
Kubernetes和CNCF
阅读了如下书,包括Kubernetes和其他延伸的云原生技术。
Title | Comment |
---|---|
《深入理解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。
今后还需要增强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的孵化项目,祝好运~
一个云原生机器学习平台
一开始要做一个全功能的平台,我按照了cube-studio用抢占式GPU集群搭建了一个: https://chengleqi.com/AI-docs/
但是发现其实并不需要很多额外的高级功能,于是使用云边多集群的方案,以KubeVela为核心构建了一个新的平台。
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哈哈。
网络
最近正在进行网络部分的学习,顺便花了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)