我是一个小团队的一员,我们希望使用自己的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。
有办法做到这一点吗?即使它需要一些手工工作?
答案 0 :(得分:1)
您可以使用在创建群集时输入的主要ssh密钥通过主服务器访问代理(如果您已在主服务器中删除了该密钥,则需要再次添加该密钥)。
答案 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;这样做的方法,但它会工作。