K8s EphemeralContainer临时容器解读

 更新时间:2025年08月14日 09:57:36   作者:大新屋  
Kubernetes临时容器用于调试无shell容器,通过shareProcessNamespace参数实现安全登录与故障排查,排查后可删除,版本1.25及以上默认启用,需使用预装debug工具的镜像(如busybox)

提示:kubernetes 官网EphemeralContainer临时容器说明文档 https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/

EphemeralContainer临时容器主要用于临时登录Pod中没有bash或sh命令的容器,临时容器debug-tools工具通过shareProcessNamespace参数临时登录到Pod资源的容器进行故障排查问题等操作,临时容器排查完故障后,可立即删除该临时容器,提高了K8s安全性。

一、临时容器功能开启

提示:如果K8s 版本小于1.25需要手动开启临时容器功能,如果K8s版本大于1.25(包括1.25版本)默认已开启临时容器功能

1、开启临时容器(二进制方式安装的K8s)

### K8s版本小于1.25开启临时容器功能操作
vim /usr/lib/systemd/system/kube-apiserver.service
# 添加以下参数并保存
-feature-gates=EphemeralContainers=true

vim /etc/kubernetes/kubelet-conf.yml
# 添加以下参数并保存
featureGates:
EphemeralContainers: true

# 重启所有服务kube-apiserver和kubelet
systemctl restart kube-apiserver
sytemctl restart kubelet

2、开启临时容器(kubeadm方式安装的K8s)

### K8s版本小于1.25开启临时容器功能操作
vim /etc/kubernetes/manifests/kube-apiserver.yam
# 添加以下参数并保存
--feature-gates=EphemeralContainers=true

vim /var/lib/kubelet/config.yaml
# 添加以下参数并保存
featureGates:
EphemeralContainers: true

# 重启kubelet
sytemctl restart kubelet

二、临时容器使用

注意:Pod资源的容器已被注入了临时容器只要Pod重启后临时容器自动会消失

提示:busybox镜像已安装了debug-tools工具,没有debug-tools工具的镜像是无法注入临时容器到Pod资源的容器里

### 使用kubectl create命令创建一个Deployment
kubectl create deploy nginx-deploy -n default --image=registry.cn-shenzhen.aliyuncs.com/dockerghost/nginx:1.24
kubectl get deploy -n default
kubectl get pods -n default

### 测试Nginx容器中没有wget命令
kubectl exec nginx-deploy-77f75cbd7f-nmvzj -n default -- wget www.baidu.com

### 注入busybox临时容器到Pod资源的容器里
kubectl debug nginx-deploy-77f75cbd7f-nmvzj -it --image=registry.cn-shenzhen.aliyuncs.com/dockerghost/busybox -n default

### 此时Nginx容器可以使用wget命令
wget www.baidu.com

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Rainbond上部署API Gateway Kong及环境配置教程

    Rainbond上部署API Gateway Kong及环境配置教程

    这篇文章主要为大家介绍了Rainbond上部署API Gateway Kong及环境配置教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 阿里云kubernetes查找镜像中jar包的方法(docker查看镜像中的jar)

    阿里云kubernetes查找镜像中jar包的方法(docker查看镜像中的jar)

    这篇文章主要给大家介绍了关于阿里云kubernetes查找镜像中jar包的方法,也就是在docker查看镜像中的jar,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 某集团任意文件下载到虚拟主机getshell的方法

    某集团任意文件下载到虚拟主机getshell的方法

    这篇文章主要介绍了某集团任意文件下载到虚拟主机getshell的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • 在 k8s 中部署Jenkins的实践指南(最新推荐)

    在 k8s 中部署Jenkins的实践指南(最新推荐)

    本文介绍了在Kubernetes(K8s)中部署Jenkins的方法和步骤,包括准备K8s集群、选择Jenkins镜像、创建存储资源、账号授权、部署Jenkins、创建Service以及访问测试,Jenkins在K8s中的部署可以实现动态资源管理、提高可靠性和容错能力、快速响应变化和统一环境等优势
    2025-03-03
  • Kubernetes中使用临时容器进行故障排查的方法

    Kubernetes中使用临时容器进行故障排查的方法

    在使用Kubernetes时,用户常常会遇到一些错误和迷惑,下面这篇文章主要给大家介绍了关于Kubernetes中使用临时容器进行故障排查的相关资料,需要的朋友可以参考下
    2022-03-03
  • Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进

    Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进

    本文介绍了Hadoop3版本中添加的新功能,Hadoop 2和Hadoop 3的区别,在这篇文章中,我们将讨论Hadoop 2.x与Hadoop 3.x之间的比较。感兴趣的朋友跟随小编一起看一下
    2018-09-09
  • 如何给k8s集群里的资源打标签

    如何给k8s集群里的资源打标签

    k8s集群,节点如果有多个角色,需要标记出来,可以给对应的节点打上标签,方便后续了解节点的功能,这篇文章主要介绍了如何给k8s集群里的资源打标签,需要的朋友可以参考下
    2023-02-02
  • 如何把k8s容器里的文件复制到本地

    如何把k8s容器里的文件复制到本地

    这篇文章主要介绍了如何把k8s容器里的文件复制到本地方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • k8s kubectl启动成功,但执行命令时报错解决:The connection to the server localhost:8080 was refused - did you specify

    k8s kubectl启动成功,但执行命令时报错解决:The connection to&

    用户使用kubectl时出现连接拒绝错误,排查发现配置文件名非admin.conf,修改后问题解决,提示需使用kubernetes-admin配置文件以确保正确性
    2025-08-08
  • 在CentOS上如何安装Singularity高性能容器

    在CentOS上如何安装Singularity高性能容器

    Singularity是劳伦斯伯克利国家实验室专门为大规模、跨节点HPC和DL工作负载而开发的容器化技术,具备轻量级、快速部署、方便迁移等优势,且支持从Docker镜像格式转换为Singularity镜像格式,本文给大家介绍在CentOS上如何安装Singularity高性能容器,感兴趣的朋友一起看看吧
    2024-05-05

最新评论