k8s调试之 kube-apiserver 组件
上一节《GoLand+dlv进行远程调试》我们介绍了如何使用 GoLand
进行远程调试,本节我们就以 kube-apiserver
为例演示一下调试方法。
服务器环境
作为开发调试服务器,需要安装以下环境
- 安装
Golang
环境,国内最好设置GOPROXY
- 安装
dlv
调试工具 - 安装
Docker
环境, 同时安装containerd
服务(对应官方教程中的containerd.io
安装包)并设置代理
同步代码(本地)
以下为我们本机环境设置。
本机下载 kubernetes 仓库
git clone --filter=blob:none https://github.com/kubernetes/kubernetes.git
这里指定 –filter=bold:none 可以实现最小化下载
这里 k8s 项目目录为 /Users/sxf/workspace/kubernetes
, 对应远程服务器目录为 /home/sxf/workspace/kubernetes
,如图所示
映射关系配置
同时选择自动上传 Automatic upload (Always)
菜单,这样以后当本地文件有变更时将自动同步到远程服务器。
首次手动同步远程代码(右键Upload here
菜单)
如果文件特别多的话,首次同步将会比较慢,可以手动将本地项目打包上传到远程服务器再解压。
环境检测
首先对当前调试环境进行一系列的检查,如果条件不满足将给出提示信息
$ make verify
如果本地 Git 仓库存在未提交的文件的话,则此时将提示先提交。这一块有点不好,我这里直接终止了这个检查继续下一步。
安装Etcd
由于 kube-apiserver
依赖于 ectd
,所以必须先安装etcd。
$ cd workspace/kubernetes
$ ./hack/install-etcd.sh
Downloading https://github.com/coreos/etcd/releases/download/v3.5.7/etcd-v3.5.7-linux-amd64.tar.gz succeed
etcd v3.5.7 installed. To use:
export PATH="/home/sxf/workspace/kubernetes/third_party/etcd:${PATH}"
此时将自动从远程下载etcd二进制文件到目录 /third_party
。
By admin
read more