摘要: 什么是 MVCC MVCC 是 Multi-Version Concurrency Control 的缩写,即多版本并发控制。它是一种并发控制的方法,用于在数据库系统中实现事务的隔离性。MVCC 是一种乐观锁机制,它通过保存数据的多个版本来实现事务的隔禽性。在 etcd 中,MVCC 是用于实现数据 阅读全文
posted @ 2024-05-26 18:01 daemon365 阅读(112) 评论(0) 推荐(0) 编辑
摘要: istio 是什么 Istio 是一个开放源代码的服务网格,它为基于微服务的应用程序提供了一种统一的方式来连接、保护、监控和管理服务。Istio 主要解决的是在微服务架构中的服务间通信的复杂性问题,它通过提供服务间的负载均衡、服务到服务的认证、监控以及服务的弹性(例如重试、熔断等)来实现。 side 阅读全文
posted @ 2024-05-12 17:41 daemon365 阅读(220) 评论(0) 推荐(1) 编辑
摘要: 简介 kube-proxy 是 Kubernetes 集群中负责服务发现和负载均衡的组件之一。它是一个网络代理,运行在每个节点上, 用于 service 资源的负载均衡。它有两种模式:iptables 和 ipvs。 iptables iptables 是 Linux 系统中的一个用户空间实用程序, 阅读全文
posted @ 2024-05-08 23:20 daemon365 阅读(275) 评论(10) 推荐(0) 编辑
摘要: PV 与 PVC PVC (PersistentVolumeClaim),命名空间(namespace)级别的资源,由 用户 or StatefulSet 控制器(根据VolumeClaimTemplate) 创建。PVC 类似于 Pod,Pod 消耗 Node 资源,PVC 消耗 PV 资源。Po 阅读全文
posted @ 2024-05-03 23:03 daemon365 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 为什么需要 CNI 在 kubernetes 中,pod 的网络是使用 network namespace 隔离的,但是我们有时又需要互相访问网络,这就需要一个网络插件来实现 pod 之间的网络通信。CNI 就是为了解决这个问题而诞生的。CNI 是 container network interfa 阅读全文
posted @ 2024-04-20 22:59 daemon365 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 启动流程 containerd 作为一个 api 服务,提供了一系列的接口供外部调用,比如创建容器、删除容器、创建镜像、删除镜像等等。使用 docker 和 ctr 等工具,都是通过调用 containerd 的 api 来实现的。 kubelet 通过 cri 调用 containerd 和这些不 阅读全文
posted @ 2023-12-07 23:10 daemon365 阅读(858) 评论(0) 推荐(0) 编辑
摘要: CDI 是什么? Container Device Interface (CDI) 是一个提议的标准,它定义了如何在容器运行时环境中向容器提供设备。这个提议的目的是使得设备供应商能够更容易地将其设备集成到 Kubernetes 集群中,而不必修改 Kubernetes 核心代码。 CDI 插件通常负 阅读全文
posted @ 2023-11-19 19:53 daemon365 阅读(842) 评论(0) 推荐(0) 编辑
摘要: Reference https://atbug.com/kubelet-source-code-analysis/ kubelet 简介 kubernetes 分为控制面和数据面,kubelet 就是数据面最主要的组件,在每个节点上启动,主要负责容器的创建、启停、监控、日志收集等工作。它是一个在每个 阅读全文
posted @ 2023-11-07 22:19 daemon365 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 早期 kubelet 创建容器工作原理 因为 docker 出生的比 k8s 早,所以 k8s 早期的容器运行时都是基于 docker 的,kubelet 通过 docker 的 api 创建容器。后来,k8s 官方不想绑死在 docker 这架马车上,就把容器运行时抽象出来,定义了一个接口,叫 C 阅读全文
posted @ 2023-10-14 22:27 daemon365 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 介绍 BoltDB 是一个用 Go 语言编写的嵌入式键/值数据库。以下是关于 BoltDB 的一些基本介绍: 键/值存储: BoltDB 为应用程序提供了简单的键/值存储接口。 事务: BoltDB 支持完整的 ACID 事务。 嵌入式: 与像 MySQL 或 PostgreSQL 这样的数据库系统 阅读全文
posted @ 2023-09-09 21:18 daemon365 阅读(237) 评论(0) 推荐(0) 编辑