我正在对第三方创建的 Kubernetes Helm 图表进行一些测试/评估,并希望获得对 pod 的 shell 访问权限。这立即引出了几个问题:
- 我如何找到哪些服务正在运行哪些豆荚?
- 如何在所需的 pod 上获得 shell?
答案1
由于抽象K8s,不同的服务可以运行在不同的pod上。因此,在连接到任何内容之前,您需要收集一些进一步的信息:
第 1 步:列出 Pod
kubectl get pods -o wide
本例中显示我们有 (2) 个 Pod 在同一节点上运行“WordPress-w9ga”:
NAME READY STATUS RESTARTS AGE IP NODE
my-release-mariadb 1/1 Running 0 2d2h 10.10.10.1 wordpress-w9ga
my-release-wordpress 1/1 Running 3 2d2h 10.10.10.2 wordpress-w9ga
第 2 步:用于kubectl
在所需的 pod 上获取 shell
我想要安装 shell 的 pod 是“我的发布-wordpress”。然而:虽然我们在 的输出中看到 IP kubectl get pods
,SSH将要不是正在跑步。因此,我们将使用以下kubectl
命令获取 shell,并指定我们要访问的 pod 的名称:
kubectl exec -it my-release-wordpress -- /bin/bash