当 apiserver 通过 Nginx 代理后,可能会出现错误'unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request'。这个错误通常是因为 Nginx 代理配置导致的。

解决这个问题的方法是配置 Nginx 代理的转发规则,以正确处理 metrics.k8s.io 的请求。在 Nginx 的配置文件中,添加以下配置:

location /apis/metrics.k8s.io/ {
    proxy_pass http://<apiserver-address>/apis/metrics.k8s.io/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

请将<apiserver-address>替换为实际的 apiserver 地址。然后重新加载 Nginx 配置并重启 Nginx 服务。

sudo nginx -t
sudo systemctl restart nginx

重新运行kubectl api-resources命令,应该能够成功获取到 API 资源列表。

注意:这只是解决了 metrics.k8s.io/v1beta1 的请求问题,如果还有其他的 API 请求也出现类似的错误,可能需要进一步调整 Nginx 代理配置。

kubectl api-resources 错误: unable to retrieve the complete list of server APIs - Nginx 代理配置问题

原文地址: https://www.cveoy.top/t/topic/pFfJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录