基于 Kubernetes 最简化部署 Prometheus
1、创建名称空间
- 创建命令如下
kubectl create ns monitor
2、创建ConfigMap
以下为最简化配置,根据自己需求自行添加
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
namespace: monitor
data:
prometheus.yml: |
global:
scrape_interval: 15s
evaluation_interval: 15s
3、创建deployment
- deployment配置文件如下
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus
namespace: monitor
labels:
app: prometheus
spec:
selector:
matchLabels:
app: prometheus
template:
metadata:
labels:
app: prometheus
spec:
containers:
- name: prometheus
image: prom/prometheus
ports:
- containerPort: 9090
name: prometheus
volumeMounts:
- name: config-path
mountPath: /etc/prometheus
volumes:
- name: config-path
configMap:
name: prometheus-config
- 查看pod是否启动成功
[root@k8s-master ~]# kubectl get pods -n monitor
NAME READY STATUS RESTARTS AGE
prometheus-5968476949-2qrj9 1/1 Running 0 8m43s
4、创建service
- 通过NodePort进行访问
WebUI
apiVersion: v1
kind: Service
metadata:
name: svc-prometheus
namespace: monitor
spec:
selector:
app: prometheus
type: NodePort
ports:
- name: svc-prometheus
protocol: TCP
port: 9090
targetPort: 9090
- 查看NodePort
[root@k8s-master ~]# kubectl get svc -n monitor
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc-prometheus NodePort 10.96.185.206 <none> 9090:31306/TCP 5s
NodePort 为
31306
。通过浏览器访问k8s
集群任意一台机器的此端口即可进入Prometheus
的WebUI