我有一个 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
并且位于当前命名空间中。第二个命令给出了通用格式。
示例ubuntu
pod 定义:
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