通过 SSH 进入 GKE Kubernetes 集群?

通过 SSH 进入 GKE Kubernetes 集群?

我有一个 GKE Kubernetes 集群需要调试。

是否可以使用例如ubuntu图像在集群内启动容器并以完全权限通过 SSH 进入它,这样我就能够在其中安装软件apt并运行各种调试命令?

答案1

首先,可以部署一个pod包含ubuntu命名空间甚至节点的单个容器。

与使用 SSH 连接它(可以使用LoadBalancer或暴露的广泛组合NodePort)相比,使用该kubectl工具更容易。

如果您正在使用Cloud Shell已安装的版本或使用本地笔记本电脑,则必须使用该gcloud工具进行安装。

我建议使用以下语法直接连接到容器:

# Run bash on Ubuntu container
kubectl exec -it ubuntu -- bash

# General syntax
kubectl -n {namespace} exec -it {pod-name} -- {command}

第一个命令假设容器名称为ubuntu并且位于当前命名空间中。第二个命令给出了通用格式。

示例ubuntupod 定义:

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu
  labels:
    app: ubuntu
spec:
  containers:
  - image: ubuntu
    command:
      - "sleep"
      - "604800"
    imagePullPolicy: IfNotPresent
    name: ubuntu
  restartPolicy: Always

您可以添加一个namespace,或者在应用之前确保您具有正确的上下文。例如:

kubectl apply -f path/to/yaml/file

相关内容