相当于“minikube ssh”与docker-for-desktop Kubernetes节点

问题描述 投票:0回答:1

我使用的是Docker for Mac,但目前仅将其用于Kubernetes集群。 Kubernetes集群的单个节点名为docker-for-desktop。

我目前正在阅读关于Persistent Volumes(https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/)的Kubernetes教程,作为其中的一部分,我正在设置一个hostPath持久卷。看起来它的工作方式是,您在Kubernetes节点上创建一个路径,您可以将其用作持久性卷以进行开发和测试。

为此,本教程指示您通过SSH连接到Kubernetes节点并创建一个可以转换为持久卷的路径。唯一的问题是,我不知道如何直接SSH到Kubernetes节点本身(不是容器)。 minikube的等价物就是minikube ssh。我可以kubectl describe节点,但我只获得一个内部IP地址,而不是外部IP地址。所以我不知道如何在ssh命令中解决它。

有任何想法吗?

docker kubernetes
1个回答
-1
投票

更新:

如果节点是由docker-machine使用VirtualBox创建的,则类似于minikube,使用以下命令:

docker-machine ssh default

如果您使用默认的HyperKit驱动程序用于MAC,则不存在类似VirtualBox的VM,但您应该能够使用以下命令打开shell:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

原版的:

如果您可以直接访问节点和证书,它就像这样的命令一样简单:

ssh -i certificatename 10.0.0.1

要么

ssh -i certificatename [email protected]

看看this的帖子。

如果您在云提供程序中运行Kubernetes,则应使用提供程序工具执行此操作。

一个例子是您将使用的Google Cloud:

gcloud compute ssh <NODE_NAME> --zone <ZONE>

Azure和Aws也有类似的选项,您也可以使用它们的门户网站。

另一种方法是,在集群中使用bastian \ helper容器连接到节点而不设置网络权限,它可以在云或本地集群上运行。

就像是:

kubectl run -it --rm aks-ssh --image=debian

这将使用bash运行一个容器,然后你必须安装ssh客户端apt-get update && apt-get install openssh-client -y将客户端证书复制到容器并ssh进入节点,如ssh -i id_rsa [email protected]

AKS docs有一个很好的例子

© www.soinside.com 2019 - 2024. All rights reserved.