az 使用自定义 ssh 密钥获取凭据?

az aks get-credentials with custom ssh key?

所以我们有自己的 ssh 密钥对 (mykey.pub / mykey)。 用户 A 使用以下方法创建集群:

az aks create --resource-group XXX --name zzz --ssh-key-value c:\mykey.pub

现在用户 A 可以使用以下方式访问集群:

az aks get-credentials

现在用户B要访问集群怎么办?没有像 acs 这样的 --ssh-key-file 参数 - 我需要在哪里复制密钥才能使 az aks get-credentials 工作?

谢谢 -

让用户 B 访问集群的一种方法是在您的 Azure 订阅中添加用户 B。添加后,用户 B 可以使用

以类似方式访问集群
 az aks get-credentials -n "Name of the cluster" -g "Name of the Resourcegroup"

So the ssh key is only used to create the cluster and then it can be thrown away?

你是对的,在 Azure ASK 中,ssh 密钥仅用于创建 AKS 节点并通过 ssh 连接到它们。

在 Azure ACS 中,我们需要使用 ssh 密钥访问 k8s master VM 以将凭据下载到您的本地 PC。

az acs kubernetes get-credentials --resource-group=<cluster-resource-group> --name=<cluster-name>

此命令将集群凭据下载到 $HOME/.kube/config,与使用 scp 将文件从主 VM 上的 $HOME/.kube/config 安全地复制到本地计算机相同。像这样:

mkdir $HOME/.kube
scp azureuser@<master-dns-name>:.kube/config $HOME/.kube/config

AKS 由 Azure 平台管理,get-credentials 命令只是 GET 来自 Azure 的凭证,API 像这样:

GET https://management.azure.com/subscriptions/<your-subscription>/resourceGroups/<your-resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-name>/accessProfiles/clusterUser?api-version=2017-08-31

使用 Azure AD 令牌 获取该凭据,因此在 AKS 中,我们无需 SSH 密钥即可获取凭据。

顺便说一句,你可以使用这个命令来了解它是如何工作的:
az aks get-credentials --resource-group <resource-group> --name <cluster-name> --debug

此外,如果您想允许其他成员通过 SSH 连接到 AKS 节点,您应该将您的 SSH 密钥发送给他们:)

希望这对您有所帮助。