前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【赵渝强老师】Pod中的临时容器

【赵渝强老师】Pod中的临时容器

原创
作者头像
赵渝强老师
发布2024-08-13 10:19:20
580
发布2024-08-13 10:19:20
举报
文章被收录于专栏:容器技术

  Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。

  临时容器是一种特殊的容器,它在现有的Pod中临时运行,以便完成用户发起的操作,例如故障排查和性能诊断等。由于临时容器没有端口配置,并且资源分配是不可变的,因此它不适用于构建应用程序。

  视频讲解如下:

视频内容

  使用临时调试容器来进行调试是临时容器的最大用途。因为当Pod中的容器异常退出或者容器镜像不包含调试工具时,例如没有shell时,会导致命令“kubectl exec”无法使用。这时候临时容器对于交互式故障排查很有用。

  下面是Kubernetes官方提供的一个临时容器是示例。

(1)使用镜像“k8s.gcr.io/pause:3.1”创建一个Pod。

代码语言:powershell
复制
kubectl run ephemeral-demo --image=k8s.gcr.io/pause:3.1 --restart=Never

提示:这里使用镜像“k8s.gcr.io/pause:3.1”是因为它不包含任何的调试程序,如:shell。

(2)使用命令“kubectl exec”创建shell进入容器。

代码语言:powershell
复制
kubectl exec -it ephemeral-demo -- sh

提示:由于镜像不包含任何的调试程序,因此将出现下面的错误信息。 OCI runtime exec failed: exec failed:container_linux.go:346: starting container process caused "exec:"sh": executable file not found in $PATH": unknown

(3)使用命令“kubectl debug”为容器“ephemeral-demo”添加一个临时容器,以达到调试的目的。

代码语言:powershell
复制
kubectl debug -it ephemeral-demo --image=busybox --target=ephemeral-demo

提示:这里使用busybox的镜像来创建临时容器,Kubernetes将自动启动临时容器的控制台。 Defaulting debug container name to debugger-8xzrl. If you don't see a command prompt, try pressing enter. / #

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档