Hello, World!

~ Enjoy Today ~

CubeFS&Kubernetes实践
Kubernetes (K8S) 是目前容器编排领域事实上的标准,在全球范围内有着广泛的应用。 CubeFS 既可以在 K8S 集群中部署客户端,通过 CSI 接口为 K8S 提供持久卷存储能力,也可以直接将 CubeFS 服务端集群整个部署在 K8S 中。 本文将分别介绍一下如何在 K8S 集群中部署 CubeFS 客户端、服务端,以及一些常见的运维操作和注意事项。 服务端 随着容器化的普及,基础设施全部上 K8S 是未来的趋势,这样所有的资源可以统一调度,且有着云原生庞大生态的加持,基础设施的运维成本也将大幅......
聊一聊磁盘
磁盘 在计算机发展的历程中,存储设备的演进一直是一个引人入胜的故事。 从最早的打孔纸带,到磁性存储,再到今天的固态硬盘,人们一直在追求更快、更大、更可靠的数据存储方案。 在这个演进过程中,磁盘凭借着断电数据不丢失、容量大、价格实惠等优势,成为了最重要的存储设备之一。 虽然最初 ‘磁盘’ 狭义上的概念专指使用磁性材料的存储设备,但在今天,这个词已经泛指所有的持久化存储设备。让我们一起来探......
容器网络可视化:Weave Scope
Scope 简介 scope 是 weavework 开源的一款容器集群网络可视化监控方案,可以提供整个集群的实时网络拓扑,能具体到容器内进程这一粒度,同时还能提供对容器进行简单的详情查看、销毁、远程登录等管理功能。 功能 Overview 下图是 scope 的管理后台,打开可以看到图中有很多个六边形,代表一个个容器,而容器之间的连线则代表它们之间当前存在网络连接,鼠标悬浮到线条之上还能看到连接发起的方向,这样我们就能直观地观察到整个集群的网络流量拓扑了,哪几个服务之......
Linux 内核轻量级调试小技巧
Kernel 内核承担了核心的操作系统工作,是当今软件生态的基石,因此了解内核是如何工作的能极大的帮助我们更好地构建用户态系统。 学习软件源代码最好的方式就是边看边 DEBUG,软件 = 代码 + 数据,看代码的同时了解其运行时数据能让我们更好的理解整体逻辑。 但内核毕竟不是普通的软件系统,并不是简单的在 IDE 里面一点就能断点调试的,虽然也可以通过 kgdb + qemu 实现在 IDE 中的断点调式,不过这样实在是太重了,而且也不能分析正在运行中的线上......
Cilium 容器数据路径
Cilium Cilium 提供了一套基于 eBPF 的容器网络方案,在网络可观测性和隔离策略方面提供了非常多强大的特性。 我们今天主要关注 Cilium 容器数据面路径这个话题,即一个使用 Cilium 做为 CNI 的 Pod 的数据是如何流动的。 这里我们以在 Pod 中向 1.1.1.1:80发起 TCP 连接(nc -v 1.1.1.1 80)的流量为例进行分析,演示的 Cilium 集群使用 veth pair 打通容器和宿主机网络命名空间,同时使用 vxlan 模式来进行跨主机间的 Pod 通信。 这里我们使用 Pod 10.1.128.86 进行演示,其所在 Node IP 为 10.11.224......
Cilium Cilium 可以说是当下最流行的基于 eBPF 的容器网络方案,基于eBPF 这种内核黑魔法 Cilium 极大地提升了容器网络的可玩性。 Cilium 的参数配置项都是通过 ConfigMapcilium-config配置的 中,,下面我们来一个个的分析一下这个 ConfigMap 里面的参数都有何意义。 本文基于cilium 1.11版本进行分析。 Cilium Config 配置项 意义 kvstore 当使用 KV 数据库存储元信息而不是CRD时,需要设置此项申明具体的KV存储,原来支持 etcd 和 consul 两种选择,不过 1.11 版......
镜像仓库Harbor Pull实现原理
Harbor简介 Harbor 是 VMWare 开源的一个镜像仓库平台,镜像分发和存储逻辑是基于 docker 开源的 registry (后更名为 distribution)实现的,Harbor 主要在其之上扩展了权限管理、镜像扫描、可视化管理后台等平台化功能,和大部分的云原生组件一样,Harbor 也是基于 Go 语言开发的。 Harbor 的系统架构如下图所示,箭头所指方向为数据流向: 一个镜像仓库最核心的功能就是推送和拉取,本文主要讨论 Harbor 镜像拉取具体的实现细节。 在开始之前 我......