我刚刚使用Azure容器服务部署了托管的Kubernetes集群。我的部署包括托管群集上的单个代理机器以及连接到它的Azure磁盘以进行持久存储。
我面临的问题是我不知道如何ssh这个代理服务器。我读过你应该能够ssh主节点并从那里连接到代理,但是当我使用托管的Kubernetes master时,我找不到这样做的方法。
有什么想法吗?提前谢谢。
答案 0 :(得分:5)
我面临的问题是我不知道如何ssh这个代理 服务器
你的意思是你创建了AKS并且找不到主VM吗?
如果我理解正确,这是一种设计行为,AKS 不提供对群集的直接访问(例如使用SSH)。
如果要SSH到代理节点,作为解决方法,我们可以将公共IP地址和关联此公共IP地址创建到代理的NIC,然后我们可以通过SSH连接到这个代理。
以下是我的步骤:
1. 通过Azure门户创建公共IP地址:
2. 将公共IP地址与代理VM的NIC关联:
使用此公共IP地址3. SSH 到此VM:
注意:
默认情况下,我们在尝试创建AKS时可以找到ssh密钥,如下所示:
答案 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访问该节点。