K8s 源码剖析及debug实战(一):Minikube 安装及源码准备

文章目录

  • [0. 引言](#0. 引言)
  • [1. 什么是 Minikube](#1. 什么是 Minikube)
  • [2. 安装 Minikube](#2. 安装 Minikube)
  • [3. 下载 Go](#3. 下载 Go)
  • [4. 下载 Goland](#4. 下载 Goland)
  • [5. 下载 K8s 源码](#5. 下载 K8s 源码)
  • [6. 后续](#6. 后续)

0. 引言

欢迎关注本专栏,本专栏主要从 K8s 源码出发,深入理解 K8s 一些组件底层的代码逻辑,同时借助 debug Minikube 来进一步了解 K8s 底层的代码运行逻辑细节,帮助我们更好的了解不为人知的运行机制,让自己学会如何调试源码,玩转 K8s。

本专栏适合于运维、开发以及希望精进 K8s 细节的同学。同时本人水平有限,尽量将本人理解的内容最大程度的展现给大家~

1. 什么是 Minikube

Minikube 是一种轻量化的 Kubernetes 集群,是 Kubernetes 社区为了帮助开发者和学习者能够更好学习和体验 K8s 功能而推出的。借助个人 PC 的虚拟化环境就可以实现 Kubernetes 的快速构建启动,以简化本地开发和测试环境。

Minikube 目前在 macOS、Linux、Windows 平台上利用各类本地虚拟化环境作为驱动运行,能够实现 Kubernetes 集群在个人电脑上的快速部署和运行。用户可以使用 Minikube CLI 管理虚拟机上的 Kubernetes 环境,例如启动、停止、删除、获取状态等。一旦 Minikube 虚拟机启动,用户就可以使用熟悉的 Kubectl CLI 在 Kubernetes 集群上执行操作。

Minikube 的配置需求包括至少2核的 CPU、2G 空闲的内存和 20G 空闲的磁盘空间。它可以在容器或虚拟机底座上运行,如 Docker、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox、VMWare 等。

2. 安装 Minikube

参考之前写过的一篇有关于安装 Minikube 的文章, 《Mac 安装 Minikube 》,对于 Mac 可以按照上面的文章去安装 Minikube。对于 Windows 的安装大同小异,由于本人是 Mac,没有 Windows 的实践经验,网上此类文章很多,有些内容依然可参考上述文章,其他的不再赘述。

3. 下载 Go

Go 官网下载链接

下载完成后打开压缩包,并将解压出来的文件夹重命名为"go",并移动到希望放的位置(如 /usr/local 目录下)。

依次执行以下命令配置环境:

bash 复制代码
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bash_profile
source ~/.bash_profile
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

4. 下载 Goland

Goland 是由 JetBrains 公司专为 Go 语言开发的跨平台商业 IDE,旨在为Go 开发者提供符合人体工程学的 IDE。Goland 整合了 IntelliJ 平台(一个用于 Java 语言开发的集成环境,也可用于其他开发语言),提供了针对Go语言的编码辅助和工具集成。

在 Go 语言的 IDE 的选择方面首推 Goland, 就本人使用体验而言,功能强大、 使用方便快捷,在各个大厂用得较多。

Goland 官网下载链接,安装完后配置好 GOROOT、GOPATH 等。

5. 下载 K8s 源码

bash 复制代码
git clone https://github.com/kubernetes/kubernetes.git

如果官方的代码无法下载,可以尝试下载我的代码,K8s 1.16 的源码,里面有些自己的中文注解:

bash 复制代码
git clone git@github.com:leilei11/kubernetes.git

6. 后续

本文先准备一些必要的依赖,后面一篇文章会介绍如何 debug K8s,下面是本人在本地 debug 的界面,有了本地 debug 的能力,了解代码逻辑才能事半功倍!欢迎关注本人,敬请期待!

相关推荐
@LetsTGBot搜索引擎机器人2 分钟前
2025 Telegram 最新免费社工库机器人(LetsTG可[特殊字符])搭建指南(含 Python 脚本)
数据库·搜索引擎·机器人·开源·全文检索·facebook·twitter
DigitalOcean28 分钟前
DigitalOcean容器注册表推出多注册表支持功能
容器
necessary6531 小时前
使用Clion查看linux环境中的PG源码
linux·运维·服务器
Mr_sun.3 小时前
微服务框架课程
微服务·云原生·架构
江湖有缘3 小时前
Jump个人仪表盘Docker化部署教程:从0到 搭建专属导航页
运维·docker·容器
FL16238631293 小时前
win11+WSL+Ubuntu-xrdp+远程桌面闪退+黑屏闪退解决
linux·运维·ubuntu
大厂技术总监下海3 小时前
根治LLM胡说八道!用 Elasticsearch 构建 RAG,给你一个“有据可查”的AI
大数据·elasticsearch·开源
星浩AI3 小时前
Google 官方发布:让你的 AI 编程助手"边写、边看、边调",像人类开发者一样工作
人工智能·后端·开源
挖土机_0084 小时前
Kubernetes 1.35 原地扩容(In-Place Pod Resize)完整解析:机制、差异与实战示例
docker·kubernetes
AOwhisky4 小时前
Linux逻辑卷管理:从“固定隔间”到“弹性存储池”的智慧
linux·运维·服务器