通过 kubelogin 进行非交互式登录 AKS

作者:半吊子全栈工匠2024.02.23 13:33浏览量:4

简介:在 Azure Kubernetes Service (AKS) 的使用中,有时我们需要进行非交互式登录,例如在脚本或持续集成/持续部署 (CI/CD) 流程中。kubelogin 是一个用于非交互式获取认证信息的工具,通过它我们可以实现这一点。

首先,需要安装kubelogin工具。kubelogin是Kubernetes官方发布的一个工具,它提供了通过cli获取和刷新kubeconfig的能力。安装命令如下:

  1. pip install kubelogin

安装完成后,可以通过以下步骤进行非交互式登录:

  1. 使用az login命令进行交互式登录,获取token和refresh token。
  1. az login

执行上述命令后,系统会提示输入Azure的用户名和密码。输入正确的用户名和密码后,系统会返回两个token:access token和refresh token。这两个token是后续非交互式登录的关键。

  1. 将上面获取的两个token通过kubelogin工具保存到本地的kubeconfig文件。
  1. kubelogin convert-kubeconfig -l azurecli > ~/.kube/config

上述命令中,-l azurecli参数指定login的方式为azure cli。执行完成后,当前目录下会生成一个kubeconfig文件,这个文件包含了登录AKS所需的认证信息。

  1. 使用生成的kubeconfig文件进行非交互式登录。
  1. kubectl config use-context <context>

上述命令中,<context>是kubeconfig文件中定义的一个上下文名称。执行该命令后,kubectl就会使用指定的kubeconfig文件进行非交互式登录。

至此,我们已经完成了通过kubelogin进行非交互式登录AKS的过程。请注意,每次更换Azure的user或者需要刷新kubeconfig时,都需要重新执行上述步骤中的第1步和第2步。