赞
踩
更多奇技淫巧欢迎订阅博客:https://fuckcloudnative.io
前言
众所周知,Docker 官方仓库(Docker Hub)从今年 11 月份起就启用了限速功能,主要针对免费用户和匿名用户:
匿名用户:每 6 小时,允许 Pull 100 次。
免费用户:每 6 小时,允许 Pull 200 次
具体的限速方式是基于对 DockerHub 上镜像 manifest 的请求数量;其次它区分的账户类型是根据拉取镜像的帐号来的,而不是根据镜像所有者进行限制;最后, 对于匿名用户/未登录用户,则是根据其单个 IP 进行限制的。
这对于咱白嫖党来说简直是晴天霹雳啊,虽然影响不大(应用数量巨多的大佬除外),但总感觉心里慌慌的,不知道何时会触发限制。得像个法子来监控一下呀,这样心里就有底了,也好忽悠领导啊。幸好国外有位小哥写了个 Prometheus Exporter,还打包成了 Helm Chart(好感动),咱直接装就得了。
首先克隆官方仓库:
- $ git clone https://github.com/viadee/docker-hub-rate-limit-exporter.git
-
- $ cd docker-hub-rate-limit-exporter
如果你的 Kubernetes 集群使用的是需要通过 Docker Hub 认证的私有镜像,则需要将 Docker Hub 的用户名和密码填入 chart/values.yaml
中的 dockerhubUsername
和 dockerhubPassword
字段。建议 dockerhubPassword
字段填入 token,而不是密码。
如果你拉取的都是公共镜像,可以略过这一段。
下面直接通过 helm 来部署 exporter:
$ helm -n monitoring install docker-rate-limit-exporter chart -f chart/values.yaml
查看部署结果:
- $ kubectl -n monitoring get pod -l app.kubernetes.io/name=docker-hub-rate-limit-exporter
- NAME READY STATUS RESTARTS AGE
- docker-rate-limit-exporter-docker-hub-rate-limit-exporter-zr6qg 1/1 Running 0 83m
现在就可以看到监控指标了:
总共只有两个指标:
max_requests_total : 6 小时内允许 pull 的总次数。
remaining_requests_total : 6 小时内剩余的 pull 次数。如果这个值为 0
,说明你当前受到了限制。
装好 Exporter 之后,就可以使用 Prometheus
来监控了。如果你使用 Prometheus Operator 来部署管理 Prometheus,可以直接创建 ServiceMonitor 来抓取指标:
servicemonitor.yaml
- apiVersion: monitoring.coreos.com/v1
- kind: ServiceMonitor
- metadata:
- name: docker-hub-rate-limit-exporter
- namespace: monitoring
- labels:
- app: docker-hub-rate-limit-exporter
- spec:
- selector:
- matchLabels:
- app.kubernetes.io/name: docker-hub-rate-limit-exporter
- endpoints:
- - port: http
- path: "/"
- interval: 10s
- jobLabel: docker-hub-rate-limit-exporter
- namespaceSelector:
- matchNames:
- - monitoring
使用上面的部署清单创建 ServiceMonitor:
$ kubectl apply -f servicemonitor.yaml
在浏览器中输入 Prometheus Server 的 URL 打开 Web 页面(这个就不用我教了吧?port-forward、ingress 什么的都行),就可以看到指标已经抓取到了:
最后就是装逼环节,没有监控的 Dashboard 怎么向领导展示工作成果?难不成用游标卡尺向领导演示自己的 YAML 是如何缩进的?那肯定不行,还是整个 Dashboard 才能让领导放心,看,它来了:
如果你也想向领导展示工作成果,可以扫描下方二维码关注公众号:
然后在公众号后台回复 dl 即可获取装逼 Dashboard!
你可能还喜欢
点击下方图片即可阅读
云原生是一种信仰 ????
扫码关注公众号
后台回复◉k8s◉获取史上最方便快捷的 Kubernetes 高可用部署工具,只需一条命令,连 ssh 都不需要!
点击 "阅读原文" 获取更好的阅读体验!
❤️给个「在看」,是对我最大的支持❤️
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。