k8s的HAP组件prometheus-adapter部署

发布时间:2020年03月02日 阅读:139 次

我们k8s环境中一般都选择去部署kube-prometheus,但是kube-prometheus的prometheus-adapters是不启用 custom或外部metricsAPI的。

所以得需要部署/k8s-prometheus-adapter来注册启开v1beta1.custom.metrics.k8s.io API接口的

部署直接按照adapter的k8s-prometheus-adapter/deploy/manifests/的apply就行,但是需要证书,为了跟apiserver的信任我们使用k8s的CA根证书来签发


创建证书文件和Secret

#!/bin/bash

TEMP_WORK_DIR="/tmp/work"
cd ${TEMP_WORK_DIR}

cat << EOF > custom-metrics-apiserver-csr.json
{
  "CN": "custom-metrics-apiserver",      #CN可以写service名称
  "hosts": [                             #hosts写service的DNS名称,鉴于IP会变所以不建议写IP地址
      "custom-metrics-apiserver.custom-metrics.svc"   
  ],
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "HangZhou",
      "L": "XS",
      "O": "k8s",
      "OU": "System"
    }
  ]
}
EOF

# 会产生 custom-metrics-apiserver.pem  custom-metrics-apiserver-key.pem
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=kubernetes custom-metrics-apiserver-csr.json | cfssljson -bare custom-metrics-apiserver

# 创建secret
kubectl create secret generic cm-adapter-serving-certs --from-file=serving.crt=./custom-metrics-apiserver.pem --from-file=serving.key=./custom-metrics-apiserver-key.pem -n custom-metrics


# 这个是连接prometheus的地址,它这里写的是prometheus service的域名
- --prometheus-url=http://prometheus.kube-system.svc:9090/

部署kubectl apply -f  https://github.com/DirectXMan12/k8s-prometheus-adapter/tree/master/deploy/manifests  部署完后检查api有没有注册进apiserver

$ kubectl get apiservices -n monitoring | grep metrics
v1beta1.custom.metrics.k8s.io          monitoring/custom-metrics-apiserver   True        12h
v1beta1.metrics.k8s.io                 monitoring/prometheus-adapter         True        43h

kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1"    #会get出资源信息了

WX20200302-173952@2x.png




Tag:k8s hpa
相关文章

发表评论: