0

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

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

我的同事可以用这个做大部分事情,但不能kubectl exec,因为它需要 ssh 访问 minions/agents。

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

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

4

2 回答 2

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 名称列表(只要您的 ACS 集群是资源组中唯一的东西):

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

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

我不确定这是执行此操作的“规定”方式,但它会起作用。

于 2017-05-24T08:43:37.083 回答
1

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

尝试遵循本指南:如何通过 Master 登录 DC-OS slave

于 2017-05-09T19:55:22.707 回答