升级K8s至1.26后,Microk8s安装Metrics-server出现警告求解决
解决Kubernetes 1.26(Microk8s)Metrics-server的
metrics.k8s.io/v1beta1警告问题 警告原因
Kubernetes 1.26版本已完全移除metrics.k8s.io/v1beta1 API组(该API从1.24版本开始弃用),但你的集群中仍有组件(Metrics-server自身或其他客户端)在尝试请求这个已被移除的旧API版本,从而触发警告。虽然Metrics-server核心功能正常,但残留的旧API调用会持续产生该警告。
解决步骤
1. 重新安装适配K8s 1.26的Metrics-server插件
Microk8s的插件会匹配当前K8s版本提供适配的配置,先移除旧插件再重新安装,确保使用兼容1.26的版本:
microk8s disable metrics-server microk8s enable metrics-server
2. 确认Metrics-server镜像版本兼容性
检查当前Metrics-server使用的镜像版本,确保是支持K8s 1.26的版本(推荐v0.6.4及以上,该版本支持metrics.k8s.io/v1 API):
microk8s kubectl get deployment metrics-server -n kube-system -o jsonpath='{.spec.template.spec.containers[0].image}'
如果版本过低,手动更新镜像:
microk8s kubectl set image deployment/metrics-server metrics-server=k8s.gcr.io/metrics-server/metrics-server:v0.6.4 -n kube-system
3. 检查并更新集群内的旧API客户端
部分自定义监控工具、HPA配置或脚本可能仍在调用v1beta1版本的Metrics API,需要逐一排查并更新:
- 对于HPA配置,确保其
apiVersion为autoscaling/v2或autoscaling/v2beta2(这两个版本使用新的Metrics API规范),替换旧的autoscaling/v2beta1版本。 - 检查所有自定义控制器、脚本中调用Metrics API的代码,将API版本从
metrics.k8s.io/v1beta1替换为metrics.k8s.io/v1beta2或metrics.k8s.io/v1。
4. 验证修复效果
重启Metrics-server Pod并查看日志,确认警告已消除:
microk8s kubectl rollout restart deployment metrics-server -n kube-system microk8s kubectl logs -n kube-system deployment/metrics-server
如果日志中不再出现couldn't get resource list for metrics.k8s.io/v1beta1的警告,说明修复完成。
内容的提问来源于stack exchange,提问作者Hirushan Jayasooriya
相关产品推荐
相关产品推荐

