当 Kubernetes Pod 中运行多个容器时,如何使用 kubectl exec 登录

我叫寺冈,是一名基础设施工程师。
这次我们要讲的是 Kubernetes。

正如下面的 URL 中所述,我们
通过在运行多个容器的 Pod 上运行 kubectl exec 来
登录任何容器

https://kubernetes.io/ja/docs/tasks/debug-application-cluster/get-shell-running-container/

启动 Pod

首先,让我们根据下面的清单启动一个 Pod。
这是一个简单的方法,使用部署控制器来启动运行 Nginx 容器的 Pod。

apiVersion: apps/v1 种类: 部署元数据: 名称: example-web 命名空间: 默认规范: 选择器: matchLabels: app: example-web 副本: 1 模板: 元数据: 标签: app: example-web 规范: 容器: - 名称: nginx 图像:nginx:最新 imagePullPolicy:始终端口:-containerPort:80

反映清单。

$ Kubectl apply -f deployment_example_web.yaml

检查 Pod 是否已启动。

$ kubectl get pods NAME READY STATUS RESTARTS AGE example-web-59fccdb6d4-slrkv 1/1 Running 0 13s

你已经站起来了。
如果您想登录到此 Pod 中运行的容器,请使用

$ kubectl exec -it example-web-59fccdb6d4-slrkv bash root@example-web-59fccdb6d4-slrkv:/# 

然后就可以登录了。
接下来,让我们稍微编辑一下清单文件。

apiVersion: apps/v1 种类: 部署元数据: 名称: example-web 命名空间: 默认规范: 选择器: matchLabels: app: example-web 副本: 1 模板: 元数据: 标签: app: example-web 规范: 容器: - 名称: nginx 图像:nginx:最新 imagePullPolicy:始终端口:-containerPort:80 -名称:php-fpm 图像:php:7.4-fpm imagePullPolicy:始终端口:-containerPort:9000

还添加了 PHP-FPM 容器。
反映的命令和之前一样,所以我就省略了,但是
当你启动Pod时,READY部分变成了2/2。

$ kubectl get pods NAME READY STATUS RESTARTS AGE example-web-85cd8dbd8d-24rx4 2/2 Running 0 69s

让我们像以前一样运行相同的 kubectl exec。

$ kubectl exec -it example-web-85cd8dbd8d-24rx4 bash 将容器名称默认为 nginx。

显示了一些消息。
这意味着“默认容器名称是 nginx,因此请使用 kubectl describe 检查所有容器信息。”
也就是说,如果你想登录PHP-FPM容器,则无法使用上述命令。
您可以使用 --container 选项登录,如下所示。

$ kubectl exec -it example-web-85cd8dbd8d-24rx4 --container php-fpm bash root@example-web-85cd8dbd8d-24rx4:/var/www/html# 

我能够登录!

概括

这似乎是显而易见的,但我会将其作为备忘录留下。
了解有关 Kubernetes 的更多信息。 。 。

如果您觉得这篇文章有帮助,请点赞!
4
加载中...
4 票,平均:1.00 / 14
10,364
X Facebook 哈特纳书签 口袋

写这篇文章的人

关于作者

寺冈由纪

于 2016 年加入 Beyond,目前是他担任基础设施工程师
MSP 的第六个年头,他负责排除故障,同时
使用 AWS 等公共云设计和构建基础设施。
最近,我
一直在使用 Terraform 和 Packer 等 Hashicorp 工具作为构建 Docker 和 Kubernetes 等容器基础设施以及自动化操作的一部分,并且我
还扮演了在外部学习小组和研讨会上发言的传播者的角色。

・GitHub
https://github.com/nezumisannn

・演示历史
https://github.com/nezumisannn/my-profile

・演示材料(SpeakerDeck)
https://speakerdeck.com/nezumisannn

・认证:
AWS认证解决方案架构师-
谷歌云专业云架构师