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 的能力,了解代码逻辑才能事半功倍!欢迎关注本人,敬请期待!

相关推荐
AugustSkys2 小时前
从 Docker 到 Containerd:Kubernetes 时代容器运行时完全指南
docker·容器·kubernetes·containerd
前端世界7 小时前
Linux服务器实战:NTP时间同步、SELinux权限与rsyslog日志管理,一次搞懂三大运维问题
linux·运维·服务器
Android系统攻城狮7 小时前
Linux Gstreamer深度解析之gst_audio_converter_new调用流程与实战(二十)
linux·运维·服务器·gstreamer音视频·音视频进阶
莫陌尛.7 小时前
Docker MySQL 删表卡死、执行超时(MDL锁阻塞)问题复盘与根治方案
mysql·docker·容器
海宇服务7 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化供应商准入网关
运维·人工智能·架构·自动化
Blockbuater_drug7 小时前
FreeSASA: 开源 SASA 计算库,pip 一条命令替代 NACCESS
c语言·开源·sasa·freesasa·溶剂可及表面积·naccess·python api
上海云盾-小余7 小时前
BGP 高防底层原理:TCP 异常流量识别与清洗机制
运维·网络·tcp/ip
天天喝旺仔7 小时前
Go 并发编程:Goroutine 与 Channel 实战
云原生·性能优化·架构·go
言乐68 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
冬奇Lab9 小时前
一天一个开源项目(第217篇):free-for-dev —— 137k Star 的开发者免费服务终极宝库
开源·资讯