本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
k8s metrics adapter是一个Kubernetes指标适配器,旨在扩展Kubernetes原生指标API,支持自定义指标和外部指标的接入。通过该适配器,用户可将外部监控系统(如Prometheus、云服务监控)或业务系统的自定义指标集成到Kubernetes指标体系,供Horizontal Pod Autoscaler(HPA)等控制器使用,实现基于非原生指标的自动扩缩容能力。
以下是使用Deployment部署k8s metrics adapter的示例配置,包含RBAC权限配置:
apiVersion: v1 kind: ServiceAccount metadata: name: metrics-adapter namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: metrics-adapter rules: - apiGroups: [""] resources: ["pods", "nodes"] verbs: ["get", "list", "watch"] - apiGroups: ["custom.metrics.k8s.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["external.metrics.k8s.io"] resources: ["*"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: metrics-adapter subjects: - kind: ServiceAccount name: metrics-adapter namespace: kube-system roleRef: kind: ClusterRole name: metrics-adapter apiGroup: rbac.authorization.k8s.io --- apiVersion: apps/v1 kind: Deployment metadata: name: metrics-adapter namespace: kube-system spec: replicas: 1 selector: matchLabels: app: metrics-adapter template: metadata: labels: app: metrics-adapter spec: serviceAccountName: metrics-adapter containers: - name: metrics-adapter image: k8smetricsadapter:latest # 替换为实际镜像名称和版本 args: - --metrics-config=prometheus:/etc/adapter/prometheus-config.yaml # 指标源配置 - --log-level=info ports: - containerPort: 8080 volumeMounts: - name: config-volume mountPath: /etc/adapter volumes: - name: config-volume configMap: name: metrics-adapter-config # 包含指标源配置的ConfigMap
| 参数 | 描述 | 默认值 |
|---|---|---|
--metrics-config | 指标源配置,格式为<源类型>:<配置文件路径>,支持多源配置 | 无 |
--log-level | 日志级别,可选值:debug、info、warn、error | info |
--secure-port | HTTPS服务端口 | 8443 |
--healthz-port | 健康检查端口 | 8081 |
--kubeconfig | kubeconfig文件路径(非集群内部署时使用) | 无 |
创建ConfigMap配置Prometheus指标源:
apiVersion: v1 kind: ConfigMap metadata: name: metrics-adapter-config namespace: kube-system data: prometheus-config.yaml: | rules: - seriesQuery: 'http_requests_total{namespace!="",pod!=""}' # Prometheus指标查询 resources: overrides: namespace: {resource: "namespace"} pod: {resource: "pod"} name: matches: "^(.*)_total" as: "${1}_per_second" metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[5m])) by (<<.GroupBy>>)' # 指标计算规则
部署完成后,通过以下命令验证指标API是否正常提供指标:
# 查看自定义指标 kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta2/namespaces/default/pods/*/http_requests_per_second" # 查看外部指标(如有配置) kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1/namespaces/default/cloudsql_connections"
成功获取指标后,即可在HPA中使用自定义指标进行扩缩容:
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: example-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: example-deployment minReplicas: 2 maxReplicas: 10 metrics: - type: Pods pods: metric: name: http_requests_per_second target: type: AverageValue averageValue: 100 # 目标值:平均每个Pod每秒100个请求
免费版仅支持 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