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__