获得对 Kubernetes pod 的 shell 访问权限

获得对 Kubernetes pod 的 shell 访问权限

我正在对第三方创建的 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 podsSSH将要不是正在跑步。因此,我们将使用以下kubectl命令获取 shell,并指定我们要访问的 pod 的名称:

kubectl exec -it my-release-wordpress -- /bin/bash

相关内容