我按照此处的说明创建了一个 ACS Kubernetes 集群:https ://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough 。
我看到主节点有一个公共 IP,我可以使用 ssh 进入主节点azureuser
。但是常规节点没有公共 IP,我看不到如何从主节点 ssh 进入常规节点。
如何通过 SSH 连接到常规节点?
我按照此处的说明创建了一个 ACS Kubernetes 集群:https ://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough 。
我看到主节点有一个公共 IP,我可以使用 ssh 进入主节点azureuser
。但是常规节点没有公共 IP,我看不到如何从主节点 ssh 进入常规节点。
如何通过 SSH 连接到常规节点?
您可以将其中一个 k8s 主机用作“堡垒主机”,避免复制密钥。例如:
# In ~/.ssh/config
Host agent1_private_ip agent2_private_ip ....
IdentityFile ~/.ssh/<your_k8s_cluster_key>
ProxyCommand ssh user@master_public_ip -W %h:%p
现在只是ssh user@agent1_private_ip
在此处查看更多信息:http: //blog.scottlowe.org/2015/11/21/using-ssh-bastion-host/
PS:这是检索您的代理私有 ips 的快速方法,/etc/hosts
格式为:
kubectl get nodes -o json | jq -r '.items[].status.addresses[].address' | paste - -
您可以将私钥复制到您的主 VM。然后你可以使用ssh -i <path>/id_rsa user@<agent private IP>
k8s 代理虚拟机。
注意:代理的用户名和私钥与主虚拟机相同。
微软在https://docs.microsoft.com/en-us/azure/aks/ssh发布了官方文档。这个想法是将 SSH 连接到交互式 POD 会话中,并将其用作代理节点的跳转主机。