当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命令时当直连apiserver的地址时访问正常当apiserver通过nginx代理后会有报错error unable to retrieve the complete list of server APIs metricsk8siov1beta1 the server is currently unable to handle the request为什

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

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