使用VS code 调试 Kubernetes 源代码

VS Code 远程开发:多容器环境下的调试优化 根据CNCF 2023年报告,78%的开发者遇到容器间调试延迟问题,主要源于编排框架与IDE的协议不兼容(CNCF, 2023)。),实现了对Pod、Service等资源的实时监控,其调试器支持通过gRPC协议直接调用容器运行时(Docker、containerd)的调试接口(Microsoft, 2022)。综上所述,VS Code在多容器调试优化方面已取得显著进展,但仍需在协议标准化、性能优化、安全机制等方面持续突破。:核心业务容器使用原生调试工具,辅助容器采用轻量化调试方案,同时建立跨团队协作规范( 阅读详情

请参照 我的另一篇文章 使用 VS Code 阅读 Kubernetes 代码 配置好环境

打开Shell 并且设置 GOPATH 和 GOROOT

export GOPATH=~/k8s
export GOROOT=/usr/local/go

安装Delve和其他Go 工具

go get -u -v github.com/derekparker/delve/cmd/dlv
go get -u -v github.com/ramya-rao-a/go-outline  
go get -u -v github.com/acroca/go-symbols   
go get -u -v github.com/nsf/gocode  
go get -u -v github.com/rogpeppe/godef  
go get -u -v golang.org/x/tools/cmd/godoc   
go get -u -v github.com/zmb3/gogetdoc   
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/fatih/gomodifytags
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v github.com/cweill/gotests/...
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/josharian/impl
go get -u -v github.com/haya14busa/goplay/cmd/goplay
使用 VS Code打开代码

code $GOPATH

设置断点

~/k8s/src/k8s.io/kubernetes/cmd/hyperkube/main.go 

114行

编辑 launch.json, 

下面的示例开始调试Kubelet, 请替换 ReplaceWithYourName 为系统当前的用户名


{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "exec",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "/home/ReplaceWithYourName/k8s/src/k8s.io/kubernetes/cmd/hyperkube/hyperkube",
            "env": {},
            "args": ["kubelet",
            "--cluster-dns=10.96.0.10",
            "--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf",
            "--kubeconfig=/etc/kubernetes/kubelet.conf",
            "--v=2"],
            "showLog": true
        }
    ]
}

F5 开始调试



VS Code Python远程调试核心原理与排错指南 Python远程调试本质是将本地IDE的调试能力通过DAP协议完整投射至远程执行环境,其技术基础在于debugpy作为标准调试后端与VS Code前端的跨网络协同。理解调试器启动模式(Attach/Launch)、路径映射(pathMappings)和SSH隧道保活机制,是实现断点命中、变量可读、调用栈准确的前提。该能力广泛应用于Kubernetes服务调试、容器化开发、金融级后台运维等需在生产近似环境中精准定位问题的工程场景,本文聚焦环境一致性、协议可达性与权限穿透性三大刚性约束,系统拆解debugpy部 阅读详情

相关推荐

Kubernetes原生开发:用Okteto实现集群内实时编码与调试

在Kubernetes上进行应用开发面临声明式系统与交互式需求的根本矛盾——开发者需要热重载、断点调试、本地IDE直连,而K8s默认提供的是不可变部署与终态管理。Okteto通过在集群内动态创建带开发工具链的专属Pod,实现文件实时同步、端口自动映射和IDE无缝集成,本质是将开发环境‘下沉’至真实生产上下文。它复用原生K8s资源模型(如ServiceAccount、Secret、NetworkPolicy),不代理、不封装kubectl,而是以CLI为入口构建低延迟双向通道。适用于微服务调试、真依赖联调、G

469

kubernetes源码调试环境搭建

在阅读kubernetes源码的时候,首先需要能进行源码的debug,这样才能跟着代码一步步梳理其逻辑。下面就先介绍一下kubernetes的源码调试的环境搭建。

李浩好好学习 1841

kubernetes-PlantUML:使用VS Code的Kubernetes图

Kubernetes-PlantUML 这些是用于使用Kubernetes组件创建PlantUML图的PlantUML子画面,宏和构造型。 可以在找到官方的Kubernetes图标集(基于此工作) 此仓库在很大程度上受Ricardo Niepel在上工作的影响 目录 入门 TL; DR-如果您熟悉PlantUML,那么您需要: ' Kubernetes ! define KubernetesPuml http s: // raw.githubusercontent. com /dcasati/ kubernetes - PlantUML /master/ dist ' global definition ! includeurl KubernetesPuml/kubernetes_Common.puml ! includeurl KubernetesPuml/kubernetes_

《k8s-1.13版本源码分析》-源码调试

源码分析系列文章已经开源到github,地址如下: github:https://github.com/farmer-hutao/k8s-source-code-analysis gitbook:https://farmer-hutao.github.io/k8s-source-code-analysis 源码调试 概述 k8s环境 配置goland 写在后面 ...

weixin_30781107的博客 276

Linux密码破解(使用hydra工具和使用john暴力破解)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、使用hydra离线破解linux密码1.准备实验环境2.创建用户名字典3.hydra密码爆破二、复制shadow文件,使用john暴力破解1.实验环境1.复制linux的shadow文件2.john暴力破解 一、使用hydra离线破解linux密码 1.准备实验环境 ①攻击机:kali_linux 2021.2(ifconfig查询IP地址:192.168.119.132) ②靶机:Ubantu 16.04(ifconfig

weixin_46447549的博客 2万+

(04730)半导体器件之基本放大器工作原理(一)

放大器是构成各种电子线路的基本单元电路。所谓“放大”,就是将输入的微弱信号(微弱变化的电压或电流等)去控制直流电源提供的能量,并使输出按照输入的小信号变化规律而变化的过程。所以放大器的本质是能量转换器。本节重点学习基本放大电路的工作原理和基本分析方法及主要性能指标。

黄先生的博客 3005

使用 VS Code 阅读 Kubernetes 代码

问题:无法跳转到定义在其他文件的方法 (如下图所示) 解决方法: 打开 shell安装 GO sudo apt-get update sudo apt install -y wget sudo wget https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz sudo tar

cloudnativeapp的博客 4156

ArcGIS插值可视化气象数据

前言 地图底图的制作和气象数据的预处理见我上两篇博客 ArcGIS精美中国地图制作(详解) python处理日值气象数据 在前面我们已经将日值的地温数据处理成了年均地温,添加了站点经纬度坐标并导出为excel格式。 得到如下数据: 导入数据 在Arcmap中 文件-添加XY数据 将年均地温和站点位置数据导入。 注意:excel表格的格式要另存为97-2003工作簿形式,否则会有"arcgi...

江北20190411的博客 2万+

k8s源码debug

本文将linux k8s 源码编译及单集群测试基础上,对k8s源码如何调试做详细的说明(包括命令行与visual studio code调试)。

流月up的博客 2514

《电磁兼容设计》专栏说明

本专栏自2024年1月起开始更新,仅设此一个电磁兼容相关知识专栏,并将一直持续更新下去,无期限

linkking27的博客 791

基于STM32的浴室环境智能控制系统设计

摘要:本文设计了一款基于STM32F103的智能卫浴系统,通过多传感器协同检测浴室环境参数。系统采用DS18B20检测环境与卫浴温度,DHT11监测湿度,MQ-135检测空气质量,光敏电阻测量光照强度,D203S人体热释电模块检测人员存在。当检测到异常参数时,系统自动启动相应调节功能:温度异常时控制加热/制冷继电器,湿度过高时启动通风除湿,空气质量差时进行换气,光照不足且有人时自动开灯。系统支持按键、蓝牙APP和语音三种控制方式,可手动设置参数阈值、切换防雾模式、控制音乐播放等功能。实验结果表明,该系统能有

3254968421的博客 483

k8s源码分析 pdf_k8s1.13版本源码分析 kubeproxy 服务框架

源码分析系列文章已经开源到github,地址如下:github:https://github.com/farmer-hutao/k8s-source-code-analysisgitbook:https://farmer-hutao.github.io/k8s-source-code-analysisProxy 服务框架简介程序入口与初始化Proxy Server创建Proxy Serv...

weixin_39919948的博客 263

AIPex:AI + 自然语言驱动的浏览器自动化扩展

AIPex是一款革命性的Chrome扩展,通过AI技术实现自然语言驱动的浏览器自动化。它支持30多种自动化工具,包括智能标签页管理(分组、切换、批量操作)、页面内容提取(文本、链接、元数据)、交互元素操作(点击、滚动)以及表单智能填写等功能。用户只需用自然语言下达指令,即可快速完成复杂的浏览器操作,大幅提升工作效率。AIPex特别适合需要处理大量重复性网页操作的用户,如数据分析师、产品经理等。

blues_C的博客 1127

Squash完全指南:在VS Code中实时调试Kubernetes容器

Squash(KubeSquash)是一款专为微服务设计的调试工具,能够帮助开发者在VS Code中轻松实现Kubernetes容器的实时调试。无论是本地开发环境还是云端集群,Squash都能提供无缝的调试体验,让微服务调试不再困难。 ## 为什么选择Squash进行Kubernetes容器调试? 在微服务架构中,容器化应用的调试一直是开发者面临的挑战。传统的调试方法往往需要复杂的环境配置和繁

gitblog_00652的博客 609

TriCore架构-基于TC397在SOTA过程中AB-SWAP切换底层原理

TC397的SOTA升级机制通过硬件地址重映射实现,利用MMU将逻辑地址动态映射到不同物理地址。其PFlash支持标准/备用地址映射,通常使用PF0+PF1+PF4空间以便于OTA处理。升级时,新固件自动写入非活动分区(A/B分区切换),由地址转换函数完成逻辑地址到物理地址的转换。系统重启后根据寄存器选择启动区域,实现安全无缝的固件更新。

xiandang8023的博客 490

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

如何使用VS Code与Delve实现Operator SDK远程调试:完整配置指南

Operator SDK作为Kubernetes Operator开发框架,简化了应用程序的部署、管理和升级流程。在开发复杂的Operator时,远程调试能力至关重要。本文将详细介绍如何使用VS Code与Delve工具链,快速搭建Operator SDK的远程调试环境,解决开发过程中的调试难题。 ## 📋 调试环境准备 在开始配置前,请确保环境中已安装以下工具: - Go 1.16+(推荐

gitblog_00599的博客 1084

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Okteto实现Kubernetes原生开发:Golang服务实时热重载与集群调试

Kubernetes本地开发长期面临环境割裂、构建延迟与调试失真等核心痛点。其本质是开发态与运行态的抽象断层——传统方案如minikube仅模拟集群,而Okteto通过深度集成Kubernetes API与容器运行时,将IDE直连真实集群Pod,实现配置、网络、服务发现与Secret/ConfigMap的零差异同步。技术价值在于跳过Docker构建与镜像推送,以文件级增量同步+进程热替换(如go run)达成毫秒级生效,并支持VS Code远程调试、okteto exec深度诊断及多服务协同开发。典型应用于

weixin_33743703的博客 382

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Okteto:让 Kubernetes 开发回归本地调试体验

Kubernetes 作为声明式编排系统,天然与开发者所需的热重载、实时调试、本地 IDE 集成等敏捷开发实践存在张力。传统方案如 kubectl exec 仅提供临时 shell,缺乏文件同步、端口透传和调试器支持;而本地集群(minikube/kind)仍需镜像构建与部署,迭代延迟高。Okteto 通过构建‘本地-远程双向开发隧道’,在真实 K8s 环境中复现本地开发语义——源码实时同步、VS Code 断点直连、Go 模块缓存隔离、Kubernetes 原生服务发现,显著降低 kubernetes菜鸟

congjukun0600的博客 429

VS Code + MCP生产部署全链路实践(从本地调试到K8s灰度发布的终极手册)

掌握VS Code与MCP深度集成方法,实现本地调试到K8s灰度发布的全链路生产环境部署。本教程涵盖MCP与VS Code插件集成教程、CI/CD流水线配置、服务网格治理及渐进式发布策略,提升研发效能与系统稳定性。值得收藏。

CodePulse的博客 232

Squash微服务调试器:革命性Kubernetes调试解决方案

Squash是一款专为微服务架构设计的革命性调试工具,它为Kubernetes环境中的微服务应用提供了强大的实时调试能力。这款开源的**微服务调试器**让开发者能够在应用运行时直接在终端或IDE中进行调试,彻底改变了传统微服务调试的复杂流程。💡 ## 为什么需要Squash微服务调试器? 在传统的单体应用中,开发者可以使用现代调试器设置断点、跟踪变量值、单步执行代码,并在运行时修改变量值。然

gitblog_00233的博客 960

WSL Container API C 核心类详解:Session、Container 与 Process 完整使用指南

本文围绕 WSL 开源仓库中 [C# 容器 API 参考](https://link.gitcode.com/i/428da279374018f6932c6214ba81e911) 的 **Core Classes(核心类)** 章节展开,系统讲解 `Microsoft.WSL.Containers` 命名空间中三个最核心的 C# 类——`Session`、`Container` 与 `Proce

gitblog_00018的博客 942

秒级体验本地调试远程 k8s 中的服务

点击上方蓝色字体,选择“设为星标”回复”云原生“获取基础架构实践背景在这个以k8s为云os的时代,程序员在日常的开发过程中,肯定会遇到各种问题,比如:本地开发完,需要部署到远程k8s集群,本地如何直接操作呢?又如:提测到测试环境发现有问题,或者nightly环境本身没过,这时候,可能需要一些调试。下面介绍一款开源已久的产品来体验秒级体验下本地操作远程k8s、直接在调试远程代码。借助 Nocalho...

wangsofa的博客 1373

CubiFS开发IDE配置:VS Code与GoLand优化指南

CubiFS是一个开源的分布式文件系统,专门用于数据存储和管理,支持多种数据存储模型和云原生环境。对于开发者来说,配置一个高效的开发环境至关重要。本指南将详细介绍如何在VS Code和GoLand中优化配置CubiFS开发环境,让您的开发工作更加流畅高效!🚀 ## 开发环境准备工作 在开始配置IDE之前,需要先完成CubiFS项目的基础环境搭建: 1. **克隆项目仓库**: ```

gitblog_00083的博客 509

Okteto:在Kubernetes集群中实现本地级热重载开发

Kubernetes开发长期面临环境不一致、调试困难、反馈延迟等核心痛点。其本质是开发态与运行态割裂——本地代码无法直连集群服务,热重载依赖镜像重建,IDE调试无法命中远程Pod进程。Okteto通过轻量边车容器、双向gRPC通道和原生资源复用,在不修改应用部署结构的前提下,将本地IDE、文件同步、进程控制与集群运行时深度耦合。它不是部署工具,而是面向开发者的工作流增强层,让FastAPI热重载、VS Code远程断点、多服务DNS互通等能力在真实K8s环境中秒级生效,真正 bridging the gap

weixin_30633405的博客 356

从1小时部署到30秒热更新:Skaffold+Cloud Code重塑K8s开发流程

你是否还在忍受Kubernetes开发的"三重痛苦":改一行代码要等5分钟构建?调试必须SSH进容器?配置文件管理像拆弹?本文将通过Skaffold与Cloud Code的深度集成方案,带你实现从"编码-构建-部署-调试"全流程的无缝衔接,将传统开发周期压缩90%以上。 读完本文你将掌握: - 3分钟完成Skaffold与Cloud Code环境配置 - 实现React应用的毫秒级热重载(附完整...

gitblog_00187的博客 1205
上一篇: 使用 VS Code 阅读 Kubernetes 代码
下一篇: 使用Kubeadm部署 Kubernetes 集群
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值