使用kubectl访问Azure AKS遇问题及代理配置咨询
问题现象
执行kubectl时出现以下警告:
W0111 13:21:23.866650 172 azure.go:92] WARNING: the azure auth plugin is deprecated in v1.22+, unavailable in v1.26+; use https://github.com/Azure/kubelogin instead. To learn more, consult https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins
- 在cmd、PowerShell、Git-Bash、Azure Shell、VS Code终端及Azure Portal Web Shell中均出现该提示,kubectl无法正常访问AKS
- 仅Mirantis Lens终端中kubectl可正常工作,已在Lens中配置HTTP代理
- 已通过系统高级设置添加代理环境变量,但终端会话未生效
- 已完成前置验证:
- 已安装kubelogin
- 代理进程正在运行(通过
Get-Process px*确认) - 代理环境变量已正确配置(通过
ls $env:确认)
核心问题:
- 如何让终端会话使用HTTP代理以通过kubectl访问AKS?
- 如何检查终端是否正在使用HTTP代理?
一、让终端会话使用HTTP代理的方法
1. 临时生效(仅当前终端会话)
根据终端类型执行对应命令:
- PowerShell:
$env:HTTP_PROXY="http://你的代理IP:端口" $env:HTTPS_PROXY="http://你的代理IP:端口" # 若代理需认证 $env:HTTP_PROXY="http://用户名:密码@你的代理IP:端口" $env:HTTPS_PROXY="http://用户名:密码@你的代理IP:端口" - cmd:
set HTTP_PROXY=http://你的代理IP:端口 set HTTPS_PROXY=http://你的代理IP:端口 # 若代理需认证 set HTTP_PROXY=http://用户名:密码@你的代理IP:端口 set HTTPS_PROXY=http://用户名:密码@你的代理IP:端口 - Git Bash:
export HTTP_PROXY=http://你的代理IP:端口 export HTTPS_PROXY=http://你的代理IP:端口 # 若代理需认证 export HTTP_PROXY=http://用户名:密码@你的代理IP:端口 export HTTPS_PROXY=http://用户名:密码@你的代理IP:端口
2. 永久生效(所有新终端会话)
- PowerShell:
编辑用户配置文件$PROFILE(不存在则创建),添加以下内容后执行. $PROFILE使当前会话生效:$env:HTTP_PROXY="http://你的代理IP:端口" $env:HTTPS_PROXY="http://你的代理IP:端口" - cmd:
若系统环境变量已设置但未生效,可重启终端或执行refreshenv命令刷新;也可编辑autoexec.bat文件添加set命令。 - Git Bash:
编辑用户目录下的.bashrc或.bash_profile文件,添加export命令,执行source ~/.bashrc生效。
3. 针对kubectl单独配置代理
无需全局设置代理,可在kubectl配置文件~/.kube/config中添加代理配置:
apiVersion: v1 clusters: - cluster: proxy-url: http://你的代理IP:端口 server: https://你的AKS API服务器地址 name: 你的AKS集群名称 # 其他配置保持不变
二、检查终端是否正在使用HTTP代理的方法
查看环境变量:
- PowerShell:
echo $env:HTTP_PROXY; echo $env:HTTPS_PROXY - cmd:
echo %HTTP_PROXY%; echo %HTTPS_PROXY% - Git Bash:
echo $HTTP_PROXY; echo $HTTPS_PROXY
能输出正确代理地址则说明已设置。
- PowerShell:
测试代理连通性:
替换为你的AKS API地址,执行命令测试:- PowerShell:
Invoke-WebRequest -Uri https://你的AKS API服务器地址 -Proxy http://你的代理IP:端口 - Git Bash/cmd:
curl -x http://你的代理IP:端口 https://你的AKS API服务器地址
能成功返回响应则说明代理正常工作。
- PowerShell:
检查kubectl请求路径:
开启kubectl调试日志,查看请求是否走代理:kubectl get nodes -v=6在日志中搜索
proxy或connect关键字,确认请求是否通过代理发送。
内容的提问来源于stack exchange,提问作者Ourjamie
相关产品推荐
相关产品推荐

