背景
一般我们使用hpa需要部署metric-server,但是metric-server采集的数据是没有持久化的
一般我们会部署prometheus来采集pod,node等指标和metric-server采集的数据是重复的
所以可以部署一个prometheus-adaptor来替换metric-server
准备k8s集群(此处用kind)
准备cluster yaml
创建文件dev.yaml,内容如下
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
- role: worker
创建集群
kind create cluster --image kindest/node:v1.29.0 --name dev --config dev.yaml
部署prometheus operator
参考https://www.jianshu.com/p/52b013d01ea3
部署prometheus-adaptor
下载prometheus adaptor manifest
git clone https://github.com/kubernetes-sigs/prometheus-adapter.git
部署
如果之前配置了metric-server,记得删除metric-server对应的apiservice
kubectl apply -f deploy/manifests/
验证
查看node
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes/dev-worker"
或
kubectl top node dev-worker
查看pod
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/namespaces/kube-system/pods/kube-apiserver-dev-control-plane"
或
kubectl top pod -n kube-system kube-apiserver-dev-control-plane
补充
如果要支持custom metric,需要修改configmap的adapter-config中的 config.yaml,测试的话可以用config-gen来生成配置文件
go run cmd/config-gen/main.go>conf
网友评论