K8s外联应急排查思路全解析

admin 2025年6月3日09:53:20评论34 views字数 1346阅读4分29秒阅读模式

🛠️K8s外联应急排查思路全解析

🤔K8S删除pod之后又自动新建一个pod?

查看所有pod

kubectl get pods -A -owide

删除pod

kubectl delete pod <podname> -n <namespace>

执行上述操作后,再查看所有pod,会发现又新建了一个pod。这是因为deployment.yaml文件中定义了副本数量,所以还需要删除副本。

查看所有deployment

kubectl get deployment -A

删除副本

kubectl delete deployment <name> -n <namespace>

删除副本后,此时对应的pod也会被删除。

原因分析

在yaml中设置了副本数量,当pod被删除时,K8S就会根据配置创建新的pod来保证副本数量达到设定值。

K8s外联应急排查思路全解析K8s外联应急排查思路全解析

💪K8S强制删除pod的方法

kubectl get rc

有rc的情况

如果存在rc,需要先删除rc,再删除pod。

无rc的情况

如果没有rc,直接执行以下命令:

kubectl delete pod <name> --grace-period=0 --force -n <namespace>

🕵️‍♂️K8S排查外联思路整理

🌟思路一:开启coreDNS解析日志

找到coredns所在的容器

kubectl get pods -A -o wide | grep dns
K8s外联应急排查思路全解析
相关图片

默认情况下,coredns未开启日志,执行logs命令不会有解析记录。注意:执行命令要带上-n kube-system(命名空间)。

K8s外联应急排查思路全解析
相关图片

修改coredns配置文件加入log

kubectl edit configmap coredns -n kube-system
K8s外联应急排查思路全解析
相关图片

coredns默认配置:K8s外联应急排查思路全解析

加入log,不添加配置会有默认规则。修改配置后,coredns会自动重启。

注意开启日志可能的影响

  • 重启coredns可能短暂影响集群域名解析。
  • 域名解析量大,开启日志可能会影响到服务性能。
K8s外联应急排查思路全解析
相关图片

测试域名解析来自哪个pod?

开启日志后,使用另一个容器发起dns请求,可以看到对应的容器ip。

K8s外联应急排查思路全解析
相关图片

🌟思路二:tcpdump抓包

在coredns的宿主机上抓53端口的流量,但需要结合恶意请求的告警定位到准确时间的报文信息。

在K8S场景下,容器内部很多命令都是没有的,这个时候就需要用到nsenter进入容器内部的网络空间进行抓包。

nsenter 安装

nsenter位于util-linux包中,一般常用的Linux发行版都已经默认安装。如果系统没有安装,可以使用以下命令进行安装:

yum install util-linux -y

nsenter 进入容器网络空间

nsenter -t <PID> -n bash
K8s外联应急排查思路全解析
相关图片

抓包命令

tcpdump -i any port 53 -C 20 -W 200 -w /tmp/client_dns.pcap

在正常情况下,抓包对业务无影响,仅会增加小部分的CPU负载和磁盘写入。该命令会对抓取到的包进行rotate,最多可以写200个20 MB的.pcap文件。

如果不想要完整的数据包,可以用下面的命令,此时也能捕获到coredns内部的域名请求ip。

tcpdump -i any port 53 -vvv | tee -a /tmp/dns.log
K8s外联应急排查思路全解析
相关图片

原文始发于微信公众号(事件响应回忆录):K8s外联应急排查思路全解析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月3日09:53:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   K8s外联应急排查思路全解析https://cn-sec.com/archives/4115898.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息