如何通过 SSH 连接到 ACS Kubernetes 集群中的节点?

How do I ssh to nodes in ACS Kubernetes cluster?

我按照此处的说明创建了一个 ACS Kubernetes 集群:https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough .

我看到主节点有一个 public IP,我可以使用 azureuser ssh 进入主节点。但是常规节点没有 public IP,我不知道如何从主节点通过 ssh 进入常规节点。

如何通过 SSH 连接到常规节点?

您可以将私钥复制到您的主 VM。然后你可以使用 ssh -i <path>/id_rsa user@<agent private IP> 到 k8s 代理虚拟机。

注意:代理的用户名和私钥与主虚拟机相同。

您可以将其中一个 k8s master 用作 "bastion host" 并避免复制密钥。例如:

# 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:这里有一个检索代理私有 ip 的快捷方式,格式为 /etc/hosts

kubectl get nodes -o json | jq -r '.items[].status.addresses[].address' | paste - -

Microsoft 已在 https://docs.microsoft.com/en-us/azure/aks/ssh 发布了官方文档。这个想法是通过 SSH 进入交互式 POD 会话,并将其用作代理节点的跳转主机。