SSH到Azure的Kubernetes托管主节点

时间:2017-11-22 07:49:58

标签: azure docker service kubernetes containers

我刚刚使用Azure容器服务部署了托管的Kubernetes集群。我的部署包括托管群集上的单个代理机器以及连接到它的Azure磁盘以进行持久存储。

我面临的问题是我不知道如何ssh这个代理服务器。我读过你应该能够ssh主节点并从那里连接到代理,但是当我使用托管的Kubernetes master时,我找不到这样做的方法。

有什么想法吗?提前谢谢。

3 个答案:

答案 0 :(得分:5)

  

我面临的问题是我不知道如何ssh这个代理   服务器

你的意思是你创建了AKS并且找不到主VM吗?

如果我理解正确,这是一种设计行为,AKS 提供对群集的直接访问(例如使用SSH)。

如果要SSH到代理节点,作为解决方法,我们可以将公共IP地址关联此公共IP地址创建到代理的NIC,然后我们可以通过SSH连接到这个代理。

以下是我的步骤:

1. 通过Azure门户创建公共IP地址:

enter image description here

2. 将公共IP地址与代理VM的NIC关联

enter image description here

使用此公共IP地址

3. SSH 到此VM:

enter image description here

注意:

默认情况下,我们在尝试创建AKS时可以找到ssh密钥,如下所示:

enter image description here

答案 1 :(得分:0)

基本上,您甚至不必为该节点创建公共IP。只需使用Azure CLI将公共ssh密钥添加到所需的节点即可:

az vm user update --resource-group <NODE_RG> --name <NODE_NAME> --username azureuser --ssh-key-value ~/.ssh/id_rsa.pub

然后使用(不要忘记在kubernetes配置中切换到所需的名称空间)运行临时pod:

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

将ssh私钥复制到该pod:

kubectl cp ~/.ssh/id_rsa <POD_NAME>:/id_rsa

最后,从Pod到私有IP连接到AKS节点:

ssh -i id_rsa azureuser@<NODE_PRIVATE_IP>

通过这种方式,您不必为公共IP付费,而且,从安全角度来看,这很好。

答案 2 :(得分:0)

最简单的方法是使用以下内容,这将在节点上创建一个微型priv pod,并使用nsenter访问该节点。

https://github.com/mohatb/kubectl-wls