Azure ACS:kubectl的多个SSH密钥

时间:2017-05-09 14:02:07

标签: azure-container-service

我是一个小团队的一员,我们希望使用自己的ssh密钥来管理kubernetes集群。

我使用--generate-ssh-keys来获取我的id_rsa.pub是〜/ .ssh,然后我使用az acs kubernetes get-credentials --resource-group $group --name $k8s_name来获取我的更新kubectl配置文件。

我的同事可以用此做大部分事情,但不能kubectl exec,因为它需要ssh访问仆从/代理人。

使用我的密钥,我可以进入主服务器,但似乎无法联系代理部署额外的authorized_key。

有办法做到这一点吗?即使它需要一些手工工作?

2 个答案:

答案 0 :(得分:1)

您可以使用在创建群集时输入的主要ssh密钥通过主服务器访问代理(如果您已在主服务器中删除了该密钥,则需要再次添加该密钥)。

请尝试遵循本指南:How to login into DC-OS slave through Master

答案 1 :(得分:1)

我们这样做的方法是让您的同事使用以下方式更新主人的k8s用户帐户的authorized_keys:

az vm user update -u azureuser --ssh-key-value "$(< ~/.ssh/id_rsa.pub)" -n <<master vm name>> -g <<k8s acs resource group>>

然后他们应该能够运行kubectl命令。

我还没有遇到任何需要在代理上执行此操作的kubectl命令,但您可以通过获取vm名称并运行每个命令来编写脚本。类似下面的内容将为您提供vm名称列表(只要您的ACS群集是资源组中唯一的东西):

az vm list -g ONEKAY --query "[*].osProfile.computerName"

您应该能够使用第一个命令运行此列表来添加公钥。

我不确定这是否是规定的&#39;这样做的方法,但它会工作。