Below you will find pages that utilize the taxonomy term “Goland”
July 28, 2023
k8s调试之 kube-apiserver 组件
"\u003cp\u003e上一节\u003ca href=\"https://blog.haohtml.com/archives/34402\"\u003e《GoLand+dlv进行远程调试》\u003c/a\u003e我们介绍了如何使用 \u003ccode\u003eGoLand\u003c/code\u003e 进行远程调试,本节我们就以 \u003ccode\u003ekube-apiserver\u003c/code\u003e 为例演示一下调试方法。\u003c/p\u003e\n\u003ch1 id=\"服务器环境\"\u003e服务器环境\u003c/h1\u003e\n\u003cp\u003e作为开发调试服务器,需要安装以下环境\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e安装 \u003ccode\u003eGolang\u003c/code\u003e 环境,国内最好设置 \u003ccode\u003eGOPROXY\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e安装 \u003ccode\u003edlv\u003c/code\u003e 调试工具\u003c/li\u003e\n\u003cli\u003e安装 \u003ccode\u003eDocker\u003c/code\u003e 环境, 同时安装 \u003ccode\u003econtainerd\u003c/code\u003e 服务(对应官方教程中的 \u003ccode\u003econtainerd.io\u003c/code\u003e 安装包)并设置代理\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch1 id=\"同步代码本地\"\u003e同步代码(本地)\u003c/h1\u003e\n\u003cp\u003e以下为我们本机环境设置。\u003c/p\u003e\n\u003cp\u003e本机下载 \u003ca href=\"https://github.com/kubernetes/kubernetes\"\u003ekubernetes\u003c/a\u003e 仓库\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-shell\" data-lang=\"shell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003egit clone --filter\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003eblob:none https://github.com/kubernetes/kubernetes.git\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cblockquote\u003e\n\u003cp\u003e这里指定 –filter=bold:none 可以实现最小化下载\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e这里 k8s 项目目录为 \u003ccode\u003e/Users/sxf/workspace/kubernetes\u003c/code\u003e, 对应远程服务器目录为 \u003ccode\u003e/home/sxf/workspace/kubernetes\u003c/code\u003e,如图所示\u003cimg src=\"https://blogstatic.haohtml.com/uploads/2023/07/d2b5ca33bd970f64a6301fa75ae2eb22-6.png\" alt=\"\"\u003e\u003c/p\u003e\n\u003cp\u003e映射关系配置\u003cimg src=\"https://blogstatic.haohtml.com/uploads/2023/07/d2b5ca33bd970f64a6301fa75ae2eb22-7.png\" alt=\"\"\u003e\u003c/p\u003e\n\u003cp\u003e同时选择自动上传 \u003ccode\u003eAutomatic upload (Always)\u003c/code\u003e 菜单,这 …\u003c/p\u003e"
July 27, 2023
Goland+dlv远程调试
"\u003cp\u003e环境\u003c/p\u003e\n\u003cp\u003e远程服务器(Linux):192.168.245.137\u003c/p\u003e\n\u003cp\u003e本地(macOS):GoLand\u003c/p\u003e\n\u003ch1 id=\"目的\"\u003e目的\u003c/h1\u003e\n\u003cp\u003e远程调试就是使用使用本地 IDE 来调试远程服务器上的服务。本地打断点,调用远程服务的接口。本地就会停在断点。\u003c/p\u003e\n\u003cp\u003e为什么需要远程调试呢?主要有以下几点原因:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e运行环境:有时候本机不具备调试环境,如开发的程序依赖太多组件,而这些组件在当前机器并不被支持\u003c/li\u003e\n\u003cli\u003e性能:一般远程服务器的配置都比较高,编译速度也比较快。而开发机器的配置相对要低一些,每次修改程序都要重新编译,非常的消耗时间。\u003c/li\u003e\n\u003cli\u003e硬盘空间:编译时产生大量的中间临时文件,多达10个G左右,如果本机硬盘空间不足的话,则根本就没有办法进行本地调试\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e我这里用的系统是macOS,硬盘只有128G大小,硬盘空间非常的紧张,vmware虚拟机占用了30个G, 在虚拟机里编译时发现期间产生的临时文件达到6个G,硬盘空间已经不远远不够,所以选择使用远程调试这种方式。\u003c/p\u003e\n\u003cp\u003e这些调试方式对于k8s 开发者来讲应该比较常见,如 \u003ca href=\"https://blog.haohtml.com/archives/34454\"\u003e调试 \u003ccode\u003ekube-apiserver\u003c/code\u003e 组件\u003c/a\u003e。\u003c/p\u003e\n\u003ch1 id=\"安装-dlv远程\"\u003e安装 dlv(远程)\u003c/h1\u003e\n\u003cp\u003e首先我们在远程服务器安装 \u003ca href=\"https://go.dev\"\u003eGolang\u003c/a\u003e 环境 和 \u003ca href=\"https://github.com/go-delve/delve\"\u003edlv\u003c/a\u003e 命令。 …\u003c/p\u003e"