简介
version-checker是一个k8s的小工具,可以把k8s中运行的pods镜像版本和远程的镜像仓库的版本进行对比,来提示你镜像是不是最新的
目前支持的上游仓库
- ACR
- Docker Hub
- ECR
- GCR (inc gcr facades such as k8s.gcr.io)
- Quay
- Self Hosted (Docker V2 API compliant registries, e.g. registry, artifactory etc.). Multiple self hosted registries can be configured at once.
因为中国网络的特殊性,所以如果你使用gcr或者quay等镜像仓库,体验可能不会很好
项目地址
https://github.com/jetstack/version-checker
部署
首先version-checker是没有arm64版本的目前,所以我需要clone到本地然后使用droneci去构建,如果你也是和我一样的可以参考下面的drone ci配置
---
kind: pipeline
type: kubernetes
name: version-check
platform:
os: linux
steps:
- name: build
image: dockerproxy.com/library/golang:latest
commands:
- export GO111MODULE=on
- export GOPROXY=https://goproxy.cn
- export CGO_ENABLED=0
- mkdir ./build/
- go build -o ./build/version-checker ./cmd/.
- name: docker
image: plugins/docker
privileged: true
settings:
username: user
password: pass
repo: git.bboysoul.cn/container/version-checker
registry: git.bboysoul.cn
tags:
- latest
- v0.2.1
之后就是部署
所有的yaml可以在这里找到
https://github.com/jetstack/version-checker/tree/master/deploy/yaml
修改镜像为自己编译之后的镜像部署就好了
然后在prometheus中加入一个job
- job_name: 'version-checker'
static_configs:
- targets: ['version-checker.version-checker.svc.cluster.local:8080']
官方提供了一个grafana的面板
https://grafana.com/grafana/dashboards/12833-version-checker/
注意的是如果默认,version-check只会检查annotation中带有
enable.version-checker.io/*my-container*
的pods,如果你想检查所有pods可以在yaml中加入-a参数
serviceAccountName: version-checker
containers:
- image: git.bboysoul.cn/container/version-checker:v0.2.1
imagePullPolicy: Always
ports:
- containerPort: 8080
name: version-checker
command: ["version-checker","-a"]
欢迎关注我的博客www.bboy.app
Have Fun