本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

metrics-server 是 Kubernetes 集群的核心监控组件,用于从 Kubelet 收集资源指标(如 CPU、内存使用情况),并通过 Metrics API 在 Kubernetes API 服务器中公开这些指标。该镜像提供了 metrics-server 的容器化部署方案,方便在 Kubernetes 集群中快速部署和使用 metrics-server。
/apis/metrics.k8s.io/v1beta1 端点kubectl top 命令)docker run -d \ --name metrics-server \ --restart always \ -p 443:443 \ -v /var/run/kubernetes:/var/run/kubernetes \ -v /etc/kubernetes/pki:/etc/kubernetes/pki \ kubeasz/metrics-server:latest \ --kubelet-insecure-tls \ --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
推荐使用 Kubernetes 原生方式部署:
apiVersion: v1 kind: ServiceAccount metadata: name: metrics-server namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: system:metrics-server rules: - apiGroups: - "" resources: - pods - nodes - nodes/stats - namespaces verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: system:metrics-server roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: system:metrics-server subjects: - kind: ServiceAccount name: metrics-server namespace: kube-system --- apiVersion: v1 kind: ConfigMap metadata: name: metrics-server-config namespace: kube-system labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: EnsureExists data: NannyConfiguration: |- apiVersion: nannyconfig/v1alpha1 kind: NannyConfiguration --- apiVersion: apps/v1 kind: Deployment metadata: name: metrics-server namespace: kube-system labels: k8s-app: metrics-server kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: selector: matchLabels: k8s-app: metrics-server template: metadata: labels: k8s-app: metrics-server annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: priorityClassName: system-cluster-critical serviceAccountName: metrics-server containers: - name: metrics-server image: kubeasz/metrics-server:latest command: - /metrics-server - --kubelet-insecure-tls - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP ports: - containerPort: 443 name: https protocol: TCP resources: limits: cpu: 200m memory: 200Mi requests: cpu: 200m memory: 200Mi tolerations: - key: "CriticalAddonsOnly" operator: "Exists" --- apiVersion: v1 kind: Service metadata: name: metrics-server namespace: kube-system labels: kubernetes.io/name: "Metrics-server" kubernetes.io/cluster-service: "true" spec: selector: k8s-app: metrics-server ports: - port: 443 protocol: TCP targetPort: https --- apiVersion: apiregistration.k8s.io/v1 kind: APIService metadata: name: v1beta1.metrics.k8s.io spec: service: name: metrics-server namespace: kube-system group: metrics.k8s.io version: v1beta1 insecureSkipTLSVerify: true groupPriorityMinimum: 100 versionPriority: 100
metrics-server 支持以下主要命令行参数:
| 参数 | 描述 | 默认值 |
|---|---|---|
--kubelet-insecure-tls | 允许与 Kubelet 进行不安全的 TLS 连接(不验证证书) | false |
--kubelet-preferred-address-types | 与 Kubelet 通信时首选的节点地址类型顺序 | Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP |
--kubelet-port | Kubelet 端口号 | 10250 |
--metric-resolution | 指标收集的分辨率(采样间隔) | 60s |
--horizontal-pod-autoscaler-sync-period | HPA 同步周期 | 30s |
--requestheader-client-ca-file | 用于验证请求头中客户端证书的 CA 文件路径 | 未设置 |
--tls-cert-file | TLS 证书文件路径 | 未设置 |
--tls-private-key-file | TLS 私钥文件路径 | 未设置 |
--v | 日志详细程度级别 | 0 |
该镜像不依赖环境变量进行配置,所有配置均通过命令行参数实现。
部署完成后,可以通过以下方式验证 metrics-server 是否正常工作:
kubectl get pods -n kube-system | grep metrics-server
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
kubectl top 命令查看节点和 Pod 资源使用情况:kubectl top nodes kubectl top pods
问题:kubectl top 命令返回 "Error from server (ServiceUnavailable): the server is currently unable to handle the request"
解决:检查 metrics-server Pod 是否正常运行,查看 Pod 日志获取详细错误信息
问题:metrics-server 日志中出现证书验证错误
解决:可以临时使用 --kubelet-insecure-tls 参数禁用证书验证,或正确配置 TLS 证书
问题:metrics-server 无法连接到节点
解决:检查 --kubelet-preferred-address-types 参数配置,确保 metrics-server 能够使用正确的地址类型连接到 Kubelet
kubectl logs -n kube-system deployment/metrics-server
该镜像基于 upstream metrics-server 项目构建,具体版本信息可通过镜像标签获取。建议使用最新稳定版本以获得最佳性能和安全性。

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429