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

Kubernetes,kubelogin ,AKS,Azure · 浏览次数 : 9

小编点评

是可以的!通过使用 kubelogin 工具可以实现非交互式登录。 **步骤 1:修改 kubeconfig 文件** 将 `login` 属性的值修改为 `azurecli`: ``` kubectl config config set --global default.authentication.auth-mode azurecli ``` **步骤 2:执行 kubectl 连接AKS** 使用以下命令连接 AKS: ``` kubectl exec -it -n kubectl login --insecure azuread --kubeconfig-arg default.authentication.auth-mode= --no-proxy-auth ``` **步骤 3:验证登录状态** 在连接成功后,您可以使用 `kubectl get nodes` 等命令检查节点状态。 **步骤 4:退出容器** 退出容器,以便您可以在下次连接时避免交互式登录。 **其他提示** * 您可以在 `~/.kube/config` 文件中设置默认的 kubeconfig 文件路径。 * 您可以使用 `kubectl config view` 命令查看您的配置。 * 您可以在 Kubernetes Dashboard 中设置 Azure AD 认证。

正文

问题描述

当对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​​ 

 

与【Azure Kubernetes】通过 kubelogin 进行非交互式登录AKS相似的内容:

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

问题描述 当对AKS的登录方式(认证和授权)从“Local Account with Kubernetes RBAC ”改变为“Azure AD authentication with Azure RBAC”. 通过 kubectl 连接AKS会要求交互式登录,需要通过浏览器输入认证码后关联azur

【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)

问题描述 使用Azure Kubernetes服务(AKS),可以通过kubectl连接 pod 中查看日志,但是如何来查看节点的系统日志呢?如是否有ubuntu系统升级的记录? 问题解答 是的,可以进入AKS的节点查看系统文件,如日志文件(/var/log) 或者由应用生产的其他日志。 具体的操作

【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)

问题描述 在Azure Kubernetes 服务中,创建一个Internal Load Balancer服务,使用以下yaml内容: internallb.yaml apiVersion: v1 kind: Service metadata: name: ilb-myapp annotations

【Azure K8S】AKS升级 Kubernetes version 失败问题的分析与解决

问题描述 创建Azure Kubernetes Service服务后,需要升级AKS集群的 kubernetes version。在AKS页面的 Cluster configuration 页面中,选择新的版本 1.25.5,确认升级。等待50分钟左右,却等到了升级失败的消息: Failed to

【Azure K8S | AKS】在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例

问题描述 在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例 问题解答 在Azure Kubernetes Service(AKS)的官方网站中,关于存储的选项介绍中,并没有具体的yaml实例来创建PV, PVC。特别是使用自定

【Azure K8S】记录AKS VMSS实例日志收集方式

问题描述 如何从AKS的VMSS集群中收集实例日志? 参考步骤 第一步:登陆VMSS实例 参考官网步骤:使用 SSH 连接到 Azure Kubernetes 服务 (AKS) 群集节点以进行维护或故障排除: https://docs.azure.cn/zh-cn/aks/ssh#configure

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)

在前一篇文章中,我们是把.NET 8应用读取SSL证书(X509)示例部署在App Service Windows环境中,那么如果部署在Linux环境,以及Linux Container中呢? 根据前文中的第一种方法,直接在把证书文件包含在源文件中,通过相对路径读取证书文件的方式,经测试,可以正常工

【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)

在使用App Service服务部署业务应用,因为有些第三方的接口需要调用者携带TLS/SSL证书(X509 Certificate),在官方文档中介绍了两种方式在代码中使用证书: 1) 直接使用证书文件路径加载证书 new X509Certificate2 2) 从系统的证书库中通过指纹加载...

Azure Service Principals ----- Azure 上最好保守的秘密的服务

一,引言 Azure Service Principals 是 Azure Active Directory (AAD) 中的一种标识,代表应用程序,服务,自动化流程。Service Principals 支持各种 Azure 服务和资源之家的安全通信,为应用程序提供了一种进行身份验证并于 Azur

【Azure Developer】如何通过Azure Portal快速获取到对应操作的API并转换为Python代码

问题描述 对于Azure资源进行配置操作,门户上可以正常操作。但是想通过Python代码实现,这样可以批量处理。那么在没有SDK的情况下,是否有快速办法呢? 问题解答 当然可以,Azure Portal上操作的所有资源都是通过REST API来实现的,所以只要找到正确的API,就可以通过浏览器中抓取