Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

post/kubectl-debug-intro/ #10

Open
utterances-bot opened this issue Jun 4, 2019 · 17 comments
Open

post/kubectl-debug-intro/ #10

utterances-bot opened this issue Jun 4, 2019 · 17 comments

Comments

@utterances-bot
Copy link

简化 Pod 故障诊断: kubectl-debug 介绍

https://aleiwu.com/post/kubectl-debug-intro/

Copy link

withlin commented Jun 4, 2019

具体到实现上,一条 kubectl debug 命令背后是这样的。

该流程图是用啥工具画的?

@aylei
Copy link
Owner

aylei commented Jun 5, 2019

@withlin
手绘的

Copy link

赞!有这样一个工具会变得非常的方便。

Copy link

在第一个PR之前还没有写过GO鼓励了我,嘻嘻

Copy link

直接通过debug这个应用向apiserver发起请求? 好奇怎么把对apiserver的操作做到集群外面的。

Copy link

外面的集群和内部的服务可以直接 尝试exec这种方式进行交互也是可以吧

Copy link

wsgzao commented Sep 6, 2019

感谢不断更新和完善,年初搜索Codis的时候无意中进入你的Blog,阅读了面试经历, kubectl-debug 两篇文章,后者给我留下了更深刻的印象。如今在All in k8s的公司项目中也把你的解决方案推荐给了同事,目前算是解决了一个痛点,等项目架构成熟后还再推荐给haosong。

关于容器日志不知道你有没有推荐方案,之前一直是Scribe,目前在吐血测试EFK/ELK,Loki是我个人想尝试的方向。

@aylei
Copy link
Owner

aylei commented Oct 26, 2019

@XuHaoIgeneral
debug 是向节点上的 agent 发起请求,再由 agent 操作容器运行时启动 debug 容器

@aylei
Copy link
Owner

aylei commented Oct 26, 2019

@wsgzao
容器日志方面我是个外行,从个人体会来讲仍然是 ELK/EFK 这套最成熟,但我非常看好 Loki 的思路,现在 loki 支持 fluent-bit 了,等几个版本后 server 端能做得稳定一点是一个成本效益很好的方案

Copy link

好奇的问一下agent的设计意义是什么

Copy link

是为了集群外部的debug么

@aylei
Copy link
Owner

aylei commented May 25, 2020

@abhty822
启动 debug 容易需要与对应机器上的容器运行时(dockerd/containerd)做交互,而它们一般不暴露给外部访问,因此需要一个 agent 运行到对应机器上去做这些交互。同时,agent 也统一了不同容器运行时的差异,给客户端的 kubectl plugin 提供了统一的接口。

Copy link

zlcolin commented Nov 28, 2020

日志有下错误,需要额外安装lxcfs 吗?

/usr/bin/nsenter -m/proc/1/ns/mnt -- fusermount -u /var/lib/lxc/lxcfs
true
/usr/bin/nsenter -m/proc/1/ns/mnt -- '[' -L /etc/mtab ]
/usr/bin/nsenter -m/proc/1/ns/mnt -- mkdir -p /var/lib/lxc/lxcfs
LXCFS_USR=/usr/bin/lxcfs
LXCFS=/usr/local/bin/lxcfs
/usr/bin/nsenter -m/proc/1/ns/mnt -- '[' -f /usr/bin/lxcfs ]
grep -q io.containerd.runtime.v1.linux /proc/13560/cmdline
exec /usr/bin/nsenter -m/proc/1/ns/mnt -- /usr/local/bin/lxcfs -p /run/lxcfs-13578.pid /var/lib/lxc/lxcfs/ nsenter: can't execute '/usr/local/bin/lxcfs': No such file or directory
export 'KCTLDBG_CONTAINERDV1_SHIM=io.containerd.runc.v1'
/bin/debug-agent No config file provided. Using all default values. 2020/11/28 09:35:56 server.go:38: Listening on 0.0.0.0:10027 2020/11/28 09:35:59 server.go:70: receive debug request

@aylei
Copy link
Owner

aylei commented Dec 10, 2020

日志有下错误,需要额外安装lxcfs 吗?

/usr/bin/nsenter -m/proc/1/ns/mnt -- fusermount -u /var/lib/lxc/lxcfs
true
/usr/bin/nsenter -m/proc/1/ns/mnt -- '[' -L /etc/mtab ]
/usr/bin/nsenter -m/proc/1/ns/mnt -- mkdir -p /var/lib/lxc/lxcfs
LXCFS_USR=/usr/bin/lxcfs
LXCFS=/usr/local/bin/lxcfs
/usr/bin/nsenter -m/proc/1/ns/mnt -- '[' -f /usr/bin/lxcfs ]
grep -q io.containerd.runtime.v1.linux /proc/13560/cmdline
exec /usr/bin/nsenter -m/proc/1/ns/mnt -- /usr/local/bin/lxcfs -p /run/lxcfs-13578.pid /var/lib/lxc/lxcfs/ nsenter: can't execute '/usr/local/bin/lxcfs': No such file or directory
export 'KCTLDBG_CONTAINERDV1_SHIM=io.containerd.runc.v1'
/bin/debug-agent No config file provided. Using all default values. 2020/11/28 09:35:56 server.go:38: Listening on 0.0.0.0:10027 2020/11/28 09:35:59 server.go:70: receive debug request

DaemonSet 模式需要更新 agent, 可以试试 --agentless 模式使用插件中预定义的镜像

Copy link

请问kube-debug不支持挂载目录吗?我需要本地机器的一些头文件。想挂载进容器。

Copy link

qyk1995 commented Nov 5, 2021

大佬,可以列一下代码目录说明吗?

Copy link

lixf168 commented Mar 2, 2022

大佬,报这个错是啥原因?一直定位不出来。
Type Reason Age From Message


Warning PodFitsHostPorts 8m27s kubelet, docker-9 Predicate PodFitsHostPorts failed

pod状态如下:
debug-agent-lb24p 1/1 Running 0 5m50s
debug-agent-m46hl 1/1 Running 0 5m50s
debug-agent-pod-71deb2a8-9a0f-11ec-b073-005056bfc8c5 0/1 PodFitsHostPorts 0 3m3s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests