
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
metrics-server 是 Kubernetes 集群的核心监控组件,用于从 Kubelet 收集资源指标(如 CPU、内存使用情况),并通过 Metrics API 在 Kubernetes API 服务器中公开这些指标。该镜像提供了 metrics-server 的容器化部署方案,方便在 Kubernetes 集群中快速部署和使用 metrics-server。
/apis/metrics.k8s.io/v1beta1 端点kubectl top 命令)4.1.1 使用 docker run 部署(单节点测试)
bashdocker run -d \ --name metrics-server \ --restart always \ -p 443:443 \ -v /var/run/kubernetes:/var/run/kubernetes \ -v /etc/kubernetes/pki:/etc/kubernetes/pki \ docker.xuanyuan.run/kubeasz/metrics-server:latest \ --kubelet-insecure-tls \ --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
4.1.2 使用 Kubernetes 部署
推荐使用 Kubernetes 原生方式部署:
yamlapiVersion: 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: docker.xuanyuan.run/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 是否正常工作:
bashkubectl get pods -n kube-system | grep metrics-server
bashkubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
kubectl top 命令查看节点和 Pod 资源使用情况:bashkubectl 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
bashkubectl logs -n kube-system deployment/metrics-server
该镜像基于 upstream metrics-server 项目构建,具体版本信息可通过镜像标签获取。建议使用最新稳定版本以获得最佳性能和安全性。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 easzlab/metrics-server 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: