摘要:
早期 kubelet 创建容器工作原理 因为 docker 出生的比 k8s 早,所以 k8s 早期的容器运行时都是基于 docker 的,kubelet 通过 docker 的 api 创建容器。后来,k8s 官方不想绑死在 docker 这架马车上,就把容器运行时抽象出来,定义了一个接口,叫 C 阅读全文
摘要:
介绍 BoltDB 是一个用 Go 语言编写的嵌入式键/值数据库。以下是关于 BoltDB 的一些基本介绍: 键/值存储: BoltDB 为应用程序提供了简单的键/值存储接口。 事务: BoltDB 支持完整的 ACID 事务。 嵌入式: 与像 MySQL 或 PostgreSQL 这样的数据库系统 阅读全文
摘要:
概念 kratos 为了使http协议的逻辑代码和grpc的逻辑代码使用同一份,选择了基于protobuf的IDL文件使用proto插件生成辅助代码的方式。 protoc http插件的地址为:https://github.com/go-kratos/kratos/tree/main/cmd/pro 阅读全文
摘要:
## net/http 路由注册 ```go func test1() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello world!") }) err := htt 阅读全文
摘要:
## 关于 Cobra 是 Go 的 CLI 框架。它包含一个用于创建功能强大的现代 CLI 应用程序的库,以及一个用于快速生成基于 Cobra 的应用程序和命令文件的工具。 Cobra 由 Go 项目成员和 hugo 作者 [spf13](https://github.com/spf13) 创建, 阅读全文
摘要:
## 责任链模式 **责任链模式**是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。比如 `kratos`,`gin`等开源库的中间件实现。 ### 代码实现 ```go package main import ( 阅读全文
摘要:
## 适配器模式 适配器模式用于转换一种接口适配另一种接口。比如,现在有个借口是对`json`字符串进行分析等,现在有一些`yaml`文件也要分析,这时候我我们就应该给`yaml`字符串就个适配器,转换成`json`字符串,然后就行分析。 ### 代码实现 ```go package main im 阅读全文
摘要:
Namespace 什么是 Namespace ? 这里的 "namespace" 指的是 Linux namespace 技术,它是 Linux 内核实现的一种隔离方案。简而言之,Linux 操作系统能够为不同的进程分配不同的 namespace,每个 namespace 都具有独立的资源分配,从 阅读全文
摘要:
client-go是什么? client-go是Kubernetes官方提供的Go语言客户端库,用于与Kubernetes API服务器交互。使用client-go,您可以编写Go语言程序来创建、修改和删除Kubernetes对象,如Pod、Deployment、Service等。 作用 clien 阅读全文
摘要:
虚拟机准备 我这里准备了三台虚拟机,分别部署一个master和两个node,操作系统位ubuntu 20.04。以下为特殊说明为三台机器都要做此操作 安装容器runtime 之前,我们用的容器runtime基本都是docker,但是docker并没有实现k8s的CRI,是在kubelet的有一个组件 阅读全文