K8s 开启临时容器功能

1、开始

k8s 在1.16以后加入了debug 功能,开启临时容器(EphemeralContainers)特性后,就可以调式容器。因为是此功能处于alpha阶段,默认不会启用,下面说下开启方法:

在管理节点编辑如下两个文件:

  • /etc/kubernetes/manifests/kube-apiserver.yaml
  • /etc/kubernetes/manifests/kube-scheduler.yaml

command 部分加入如下代码:--feature-gates=EphemeralContainers=true

这样在接下来创建的新pod 就可以使用临时容器功能。

2、使用

##进程共享模式
~ $ kubectl run some-app --image=nginx --restart=Never
~ $ kubectl debug -it some-app --image=busybox --share-processes --copy-to=some-app-debug

##注入pod 检查网络类问题
## 在1.21.2上测试,运行debug后一直不显示命令行,暂时不可用
~ $ kubectl run distroless-python --image=martinheinz/distroless-python --restart=Never
kubectl debug -it distroless-python --image=praqma/network-multitool --target=distroless-python -- sh

##node 节点调式
##如要调式的node节点名称为work2,这样会创建一个pod,node的/文件在/host目录下
kubectl debug node/work2 -it --image=centos

Leave a Reply

Your email address will not be published. Required fields are marked *