Kubernetes 容器调试与多容器部署实践
1. 并非所有容器都支持运行 Shell
应用程序的容器镜像通常包含许多重要的调试工具,但并非每个容器镜像都是如此。为了保持镜像小巧并提高容器的安全性,生产环境中使用的大多数容器除了主进程所需的二进制文件外,不包含其他任何文件。这显著减少了攻击面,但也意味着无法在生产容器中运行 Shell 或其他工具。不过,Kubernetes 的一项新功能——临时容器允许通过将调试容器附加到正在运行的容器来对其进行调试。需要注意的是,临时容器目前是一个 Alpha 特性,可能随时更改或移除。
2. 连接到正在运行的容器
kubectl attach 命令是与正在运行的容器进行交互的另一种方式,它会连接到容器中主进程的标准输入、输出和错误流。通常,该命令仅用于与从标准输入读取数据的应用程序进行交互。
2.1 使用 kubectl attach 查看应用程序输出
如果应用程序不从标准输入读取数据, kubectl attach 命令只是流式传输应用程序日志的另一种方式,因为这些日志通常会写入标准输出和错误流,该命令的功能与 kubectl logs -f 类似。
操作步骤如下:
1. 运行以下命令连接到 kubia 容器:
$ kubectl attach kubia
Defaulting container name to kubia.
Use 'kubec
超级会员免费看
订阅专栏 解锁全文
1449

被折叠的 条评论
为什么被折叠?



