【Azure Kubernetes】通过 kubelogin 进行非交互式登录AKS

发布时间 2023-09-06 21:40:23作者: 路边两盏灯

问题描述

当对AKS的登录方式(认证和授权)从“Local Account with Kubernetes RBAC ”改变为“Azure AD authentication with Azure RBAC”.

通过 kubectl 连接AKS会要求交互式登录,需要通过浏览器输入认证码后关联azure登录用户。

那么,是否有办法可以避免这种交互式登录呢? 

 

问题解答

答案是可以的!在Azure K8S的官方文档中,介绍了非交互式登录的方式 --- 使用 kubelogin 工具。

因为 kubectl 使用的是 kubelogin 命令登录获取认证信息。

  • 默认情况下,login的方式为 devicecode。
  • 通过 kubelogin convert-kubeconfig -l azurecli  修改后,login方式就变为 azure cli。
  • azure cli 可以通过az login -u <user name> -p <pwd> 来实现非交互式登录。

修改登录方式前后 kube config文件的对比如下:

 

当然,kubelogin还支持更多的登录方式,如:Service Principal, Identity... 详见: ​​https://azure.github.io/kubelogin/concepts/login-modes.html​​ 

PS: 如果您本机执行 kubelogin工具提示说 这个命令没有注册,Windows系统中需要先安装,然后设置环境变量路径(PATH)。

 

 

参考资料

通过 kubelogin 进行非交互式登录:​​https://docs.azure.cn/zh-cn/aks/managed-azure-ad#non-interactive-sign-in-with-kubelogin​

Azure Kubelogin with Azure CLI: ​​https://azure.github.io/kubelogin/concepts/login-modes/azurecli.html​​