shell - k8s 腾讯云exporter

2023-04-04
#!/bin/bash
basepath=$(cd $(dirname $0); pwd)
namespace="monitoring"
k8s_cluster="k8s-tools"
products="QCE/CMONGO QCE/LB_PUBLIC QCE/CKAFKA QCE/POSTGRES QCE/REDIS_MEM QCE/CYNOSDB_MYSQL QCE/LB_PRIVATE QCE/LB QCE/COS QCE/WAF QCE/VPNGW QCE/NAT_GATEWAY QCE/CES QCE/MARIADB QCE/TDMQ"
#regions="ap-shanghai ap-beijing"
regions="ap-shanghai"
#kinds="configmap deployment service"
kinds="deployment"
#products="QCE/CMONGO"
for region in ${regions}
do
    for product in ${products}
    do
        tproduct=$(echo ${product} | tr 'A-Z' 'a-z' | sed 's/\//-/g' | sed 's/_/-/g')
        file_name="${tproduct}-${region}.yaml"
        for kind in ${kinds}
        do
            cp ${basepath}/${kind}/demo ${basepath}/${kind}/${file_name}
            sed -i "s/__REGION__/${region}/g" ${basepath}/${kind}/${file_name}
            sed -i "s/__TPRODUCT__/${tproduct}/g" ${basepath}/${kind}/${file_name}
            sed -i "s:__PRODUCT__:${product}:g" ${basepath}/${kind}/${file_name}
            kubectl --kubeconfig ~/.kube/${k8s_cluster} -n ${namespace} apply -f ${basepath}/${kind}/${file_name}
            sleep 1
        done
    done
done
apiVersion: v1
kind: ConfigMap
metadata:
  name: configmap-__TPRODUCT__-__REGION__
  namespace: monitoring
data:
  __TPRODUCT__-__REGION__.yaml: |
    credential:
      access_key: "xxx"  #云API的SecretId
      secret_key: "yyy"  #云API的SecretKey
      region: "__REGION__"      #实例所在区域信息
    rate_limit: 40             #云监控拉数据接口最大限制, 20/秒, 1200/分钟, https://cloud.tencent.com/document/product/248/31014
    products:
      - namespace: __PRODUCT__
        all_metrics: true
        all_instances: true
#        extra_labels: [InstanceId]
apiVersion: apps/v1
kind: Deployment
metadata:
  generation: 5
  labels:
    app: __TPRODUCT__-__REGION__
  name: deployment-__TPRODUCT__-__REGION__
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: __TPRODUCT__-__REGION__
  template:
    metadata:
      labels:
        app: __TPRODUCT__-__REGION__
    spec:
      volumes:
      - name: __TPRODUCT__-__REGION__
        configMap:
          name: configmap-__TPRODUCT__-__REGION__
      containers:
        - args:
            - '--config.file=/usr/local/etc/__TPRODUCT__-__REGION__.yaml'
          image: 'ppio-harbor-registry.tencentcloudcr.com/developer/tencent-exporter:latest'
          imagePullPolicy: Always
          name: __TPRODUCT__-__REGION__
          ports:
            - containerPort: 9123
              name: web-normal
              protocol: TCP
          resources:
            limits:
              cpu: "4"
              memory: 200Mi
            requests:
              cpu: "0.02"
              memory: 20Mi
          volumeMounts:
          - mountPath: /usr/local/etc/
            name: __TPRODUCT__-__REGION__
            readOnly: true
apiVersion: v1
kind: Service
metadata:
  labels:
    app: qcloud-exporter
  name: service-__TPRODUCT__-__REGION__
  namespace: monitoring
spec:
  ports:
    - name: qcloud-exporter-metrics
      port: 9123
      protocol: TCP
      targetPort: 9123
  selector:
    app: __TPRODUCT__-__REGION__

标题:shell - k8s 腾讯云exporter
地址:https://blog.njqhome.com:8443/articles/2023/04/04/1680598822040.html