Kubernetes环境下的各种调试方法

k8s入门学习教程3--资源对象文件编写,Configmap映射,持久化存储PV/PVC 资源对象文件 资源对象文件:kubenetes通过RC/RS管理POD,在RC中定义了如何启动POD,如何运行,启动几副本等功能,如果我们创建的文件在其中使用Yaml的语法格式描述了上面的信息,这个文件就是我们的资源对象文件. 资源对象文件的作用:可以创建,删除,管理资源对象 资源对象从哪里来: 资源对象文件一般由用户根据需求编写,我可以查询一个资源对象文件,包括json,yaml,wide kubectl get 资源对象 资源名 -o 格式 一般的话,我们创建资源对象会选择deployme. 阅读详情

作者:Jack47

转载请保留作者和原文出处

欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源。

本文介绍在Kubernetes环境下的调试方法
  1. 启动单个容器 不使用Pod或Replication Controller,启动单个容器:

    $ kubectl run webserver --image=nginx
  2. 想更改镜像,又不想升级版本?
    每次修改之后,需要更新镜像的版本也好烦人啊。每次构建出新的镜像,Push到Docker Registry时,可以使用一个固定的版本,然后让Kubernetes在启动某个镜像时,无论本地是否有镜像,都去Docker Registry拉取镜像就好了。
    ImagePullPolicy从默认的 IfNotPresent,改为 Always。

  3. 想直接修改容器里的程序,又不想更新镜像?

    什么,还能这样做?在容器内部修改,比如修改了脚本,或者直接替换二进制程序,然后使用docker restart container-id。我尝试过此时使用docker commit提交修改,但是下次启动时,Kubernets就会报错。应该是有完整性校验的原因。

  4. Pod重启了,如何看重启之前的日志?
    下面的命令只能看到当前Pod的日志:

    $ kubectl logs zookeeper-1

    通过 –previous参数可以看之前Pod的日志

    $ kubectl logs zookeeper-1 --previous
  5. 查看Pod生命周期的事件
    通过如下命令,看命令末尾 events 一节,查看kubelet给APIServer发送的Pod生命周期里发生的事件

    $ kubectl describe pod podname
  6. 没有看到任何事件,但是Pod重启了?
    依然通过describe命令,Containers.[*].Last State部分:

    $ kubectl describe pod podname
    Name:       kafka-1 
    ...
    
    Containers:
      kafka:
        ...
        State:      Running
           Started:     Sat, 08 Apr 2017 02:29:04 +0000
        Last State:     Terminated
           Reason:      OOMKilled
          Exit Code:    0
           Started:     Fri, 07 Apr 2017 11:06:56 +0000
          Finished:     Sat, 08 Apr 2017 02:29:04 +0000
        Ready:      True
       Restart Count:   1
    ...

    可以看到 Kafka-1 这个Container因为内存消耗太多,达到内存的上限(Memory Resource Limit)而被干掉了。如果看到 Reason: Completed,说明是容器内部pid为1的程序主动退出的。

  7. 查看资源(CPU/Memory)使用情况

    资源使用最多的节点

    $ kubectl top nodes

    资源使用最多的Pod

    $ kubectl top pods

    查看节点的资源使用情况

    $ kubectl describe nodes | grep -A 2 -e "^\\s*CPU Requests"
  8. 如何摘下某个Pod进行Debug
    使用label机制,对Pod进行标记。在Service定义中,我们添加 status: serving字段。当需要摘下某个Pod做Debug,而又不影响整个服务,可以:

    $ kubectl get pods --selector="status=serving"
    $ kubectl label pods webserver-rc-lxag2 --overwrite status=debuging

    此时kubelet就会把这个Pod从Service的后端列表中删掉。等到Debug完,想恢复?再改回去就好了:

    $ kubectl label pods webserver-rc-lxag2 --overwrite status=serving

References:

Spring Cloud Kubernetes存在的问题 1、跨命名空间访问服务的问题 https://www.jianshu.com/p/9cf85449c63c 2、configmap热更新问题 3、Windows开发环境调用K8S服务问题 阅读详情

相关推荐

Kubernetes临时容器调试:原理、实践与生产环境应用

容器调试是云原生技术栈中的关键环节,传统exec方式在Kubernetes动态环境中存在明显局限。通过Linux命名空间隔离和cgroups资源控制等底层机制,临时容器技术实现了运行时动态注入调试环境的能力。这种技术显著提升了分布式系统的可观测性,特别适用于金融交易、电商大促等高并发场景下的瞬时故障诊断。作为K8s调试的热门方案,临时容器支持挂载/proc等敏感目录进行JVM堆外内存分析,配合netshoot等工具链可实现网络隔离测试。实际工程中需结合PodSecurityPolicy进行安全管控,并维护标

weixin_32288959的博客 317

Kubernetes Pod的生命周期(Lifecycle)

文章目录Pod LifeclePod的阶段:Pod phase容器的状态:Container states容器的探针:Container probes重启策略:restartPolicy参考资料 Pod Lifecle Pod的阶段:Pod phase phase用于表示一个Pod处于其生命周期的哪个阶段,有且仅有以下5个可能的取值: Pending:Pod已经被k8s系统接受,但Pod中还有容器没有被创建。Pod被调度前和下载容器镜像的时候都处于这个阶段 Running:Pod已经被调度到Node上,所

祈晴小义 7425

Go-kubectl-debug是一个简单的kubectl插件能够帮助你便捷地进行Kubernetes上的Pod排障诊断.

kubectl-debug 是一个简单的 kubectl 插件, 能够帮助你便捷地进行 Kubernetes 上的 Pod 排障诊断.

kubernetes原生pipeline

Tekton Pipeline,是一个k8s native的pipeline, 任务跑在pod中,通过自定义CRD去管理任务与工作流等等,我看完tekton之后感觉是功能很强大,但是有点过度设计了,没有drone的简约大方灵活之感。 Task Tekton Pipelines的主要目标是单独运行您的任务或作为管道的一部分运行。每个任务都在Kubernetes集群上作为Pod运行,每个步骤都作...

weixin_43226231的博客 643

USB2.0物理层实战:手把手教你用示波器抓取D+/D-信号(附波形分析)

本文是一份针对硬件工程师的USB2.0物理层信号调试实战指南。文章详细讲解了如何使用示波器捕获和分析D+/D-差分信号,从基础设置、核心信号状态解读,到信号完整性分析与常见问题排查,手把手教你定位USB通信故障。内容涵盖USB2.0协议物理层关键概念,并附有基础解码思路,旨在提升工程师的底层调试能力。

s8t9u0v1w的博客 455

目前最新NIST随机数测试软件下载、安装、及使用教程

最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载...

Miracle.Zhao的博客 3万+

Kubernetes Pod生命周期(十七)

前面我们已经了解了 Pod 的设计原理,接下来我们来了解下 Pod 的生命周期。下图展示了一个 Pod 的完整生命周期过程,其中包含 Init Container、Pod Hook、健康检查 三个主要部分,接下来我们就来分别介绍影响 Pod 生命周期的部分: 首先在介绍 Pod 的生命周期之前,我们先了解下 Pod 的状态,因为 Pod 状态可以反应出当前我们的 Pod 的具体状态信息,也是我...

非法小恋 560

ArcGIS小白必看:5分钟搞定WGS_1984到Krasovsky_1940_Albers投影转换(附详细步骤)

本文为ArcGIS初学者提供了从WGS_1984地理坐标系转换到Krasovsky_1940_Albers投影坐标系的详细实战指南。文章深入剖析了投影变换与基准面转换的核心区别,通过分步详解创建自定义地理变换、执行投影等关键操作,并附带了常见问题排查与批量处理脚本,旨在帮助用户高效、准确地完成坐标系统转换,为后续空间分析奠定基础。

weixin_29305337的博客 641

【kubernetes/k8s源码分析】 rook operator cluster controller源码分析之二

接着上篇,這篇分析mgr的啓動 mgr工作原理 工作的模式是事件驱动型的,意思就是等待事件,事件来了则处理事件返回结果,又继续等待 负责跟踪运行时间指标和Ceph群集的当前状态,包括存储利用率,当前性能指标和系统负载。 Ceph Manager守护程序还托管基于python的插件来管理和公开Ceph集群信息,包括基于Web的仪表板和REST API。 ...

zhonglinzhang 1784

基于FFT的轴承故障诊断 - MATLAB代码和详细解释

最后,我们可以根据异常特征的位置和特征分析来确定轴承故障的类型。最后,我们可以根据异常特征的位置和特征分析来确定轴承故障的类型。因此,通过分析频谱图,我们可以识别轴承故障的特征。因此,通过分析频谱图,我们可以识别轴承故障的特征。我们可以选择适当的阈值,并在频谱图上标记异常特征。通过这种基于FFT的轴承故障诊断方法,我们可以快速、准确地检测和诊断轴承故障。接下来,我们将应用FFT来获取振动信号的频谱信息,频谱显示了信号在不同频率上的能量分布。通过将异常特征标记在频谱图上,我们可以直观地识别轴承故障的存在。

COWizard的博客 613

【N32L40X】学习笔记08-定时器的基本定时功能-超时功能

【代码】【N32L40X】学习笔记08-定时器的基本定时功能-超时功能。

Car12 829

调试与监控:Python Project Blueprint中的Kubernetes调试工具与日志管理

在现代Python项目开发中,高效的调试与监控是确保应用稳定运行的关键环节。Python Project Blueprint作为一个功能完善的项目模板,集成了强大的Kubernetes调试工具与日志管理机制,帮助开发者轻松定位问题、优化性能。本文将详细介绍如何利用这些工具实现无缝调试和全面监控,让你的Python应用在Kubernetes环境中保持最佳状态。 ## 📊 项目结构概览:调试与监控

gitblog_01057的博客 412

0.1 专栏导读:为什么需要从 MM 理解 HMM

本文探讨了GPU计算框架中CPU与GPU内存管理的困境,介绍了Linux内核的HMM(Heterogeneous Memory Management)解决方案。传统显式拷贝模型存在编程复杂、指针失效等问题,而HMM通过共享虚拟地址空间、自动页面迁移等机制实现透明内存管理。文章分析了HMM依赖的Linux内存管理基础设施,包括页表遍历、MMU通知、ZONE_DEVICE等核心组件,并梳理了从经典MM到支持异构设备的进化历程。最后给出了学习HMM的8层知识体系,强调理解底层MM机制是掌握HMM的关键。

图形/计算GPU的驱动与虚拟化技术分享园地 769

谷歌工程师如何在 K8S 线上环境调试问题?

背景 Kubernetes(K8S)是目前市场占有率最高的开源 Docker 编排和运行平台,K8S 前身是谷歌内部的容器平台 Borg 衍生出来的开源 Docker 运行平台,具备企业级容器编排的能力,深受国内外 Docker 用户喜爱。 随着 K8S 的普及,如何在生产环境调试 K8S 的问题成为了大家普遍关注的问题。在 JFrog SwampUp 2017 用

WillieLiu的专栏 1815

基于 STM32 的校园电动车充电桩智能计费与过载保护系统设计与实现

本系统基于 STM32F103 主控,通过 HLW8032 电能计量芯片实现精准计费,配合继电器实现过载保护,RC522 模块完成刷卡身份识别,整体方案成本低、可靠性高,适合校园电动车集中充电场景的批量部署。软件采用状态机设计,逻辑清晰,可扩展多路充电口、远程监控等功能。

weixin_42300449的博客 63

【2025最新版】Open3D 区域生长分割(python详细过程版)

点云区域生长分割算法的python详细过程版实现。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 9529

k8s的部署

k8s的简单部署

weixin_73943382的博客 1733

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

k8s调试方法

本地数据库连接: mysql -h127.0.0.1 -P 3306 -uroot -p<PASSWORLD> 常用 k8s kubectl 命令 kubectl get po # 查看目前所有的pod kubectl get rs # 查看目前所有的replica set kubectl describe po my-nginx # 查看my-nginx pod的详细状态 kubectl describe rs my-nginx # 查看my-nginx replica set的详细..

布谷鸟 1248

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

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Kubernetes调试利器Nsenter

在k8s云环境中,我们需要在容器内抓包进行Debug, 但通常大多容器都没有安装tcpdump以及其他网络工具;在托管k8s中我们想登录node,不是没权限就是步骤太麻烦。本文的主角nsenter正是很擅长解决这些问题,nsenter可以进入指定namespace的工具,一般用来在容器环境中进行调试。调试容器网络通过nsenter可以轻松在宿主机进入容器的网络命令空间,命令如下:# 设置conta...

u012516914的专栏 818

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Kubernetes 学习(八)Kubernetes 源码阅读之初级篇------源码及依赖下载

0. 前言 阅读了一段时间 Golang 开源代码,准备正式阅读 Kubernetes 项目代码(工作机 Golang 版本为 Go 1.12) 参照 《k8s 源码阅读》选择 1.13 版本 参考原文:100 - k8s源码分析-准备工作 1. 方法论 第一步:熟悉 k8s 的基本功能,理解各个组件的分工,做到心中有数,但是不拘泥于掌握每一个功能细节,因为很多特性在日常开...

weixin_30747253的博客 394

K8s新手系列之K8s中的资源

目录在这里嗷~,如有问题请私信我进行修改~

weixin_41156900的博客 63

K8S入门学习

k8s学习总结_齐天大圣数据候的博客-优快云博客_k8s学习

Java后端技术栈 1579

《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

干货丨Kubernetes 中分析调试网络流量的4种方法

本文章转自@twt社区 【摘要】Kubernetes 中的应用出了问题, 往往需要进行网络抓包分析. 本文介绍了在Kubernetes 中网络调试分析的4种方法。 【作者】崔凯东 前言 在当今世界,分布式系统,微服务/SOA架构遍地,服务之间的许多交互和通信都不再是同一主机的不同线程或进程,而是跨主机,甚至跨网络区域。那么一旦相关服务出现问题,我们就会需要调试服务间的通讯、主机间的网络…… Kubernetes 中的应用出了问题,往往需要进行网络抓包分析。本文介绍了在 Kubernetes 中网络调试分析

weixin_54750412的博客 1024
上一篇: 使用 let's encrypt certbot部署https网站
下一篇: 使用pandoc xelatex转换md文档为pdf
anteoy
博客等级 码龄10年 24粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值