k8s 部署 prometheus
创建namespace
prometheus-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: ns-prometheus
拉取镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/prometheus:v2.54.0
prometheus配置文件configmap
prometheus-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
namespace: ns-prometheus
data:
prometheus.yml: |-
# Prometheus配置内容
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090', '10.0.2.13:31672']
localhost:9090
为prometheus服务自己本身的metrics;10.0.2.13:31672
为node exporter的metrics。targets是一个数组可以增加多个。
prometheus 的 Deployment
prometheus-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus
namespace: ns-prometheus
spec:
replicas: 1
selector:
matchLabels:
name: prometheus
template:
metadata:
labels:
name: prometheus
spec:
# hostNetwork: true
containers:
- name: prometheus
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/prometheus:v2.54.0
args:
- --config.file=/etc/prometheus/prometheus.yml
ports:
- containerPort: 9090
volumeMounts:
- mountPath: /etc/prometheus
name: prometheus-config
volumes:
- name: prometheus-config
configMap:
name: prometheus-config
使用Service模式部署可以注释hostNetwork: true
prometheus 的 Service
prometheus-service.yaml
apiVersion: v1
kind: Service
metadata:
name: prometheus-service
namespace: ns-prometheus
spec:
selector:
name: prometheus
ports:
- protocol: TCP
port: 9090
targetPort: 9090
nodePort: 30090
type: NodePort
启动
kubectl apply -f prometheus-namespace.yaml
kubectl apply -f prometheus-configmap.yaml
kubectl apply -f .
查看
kubectl get pod -n ns-prometheus
kubectl get svc -n ns-prometheus
访问
http://10.0.2.12:30090/
10.0.2.12
为宿主机ip,30090
为Service映射的port