部署pvc
修改nfs-deployment.yaml
文件中的信息,然后应用YAML文件
bash
cat > /opt/k8s/prometheus/prometheus-pvc.yaml <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: prometheus-data-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: "nfs-storage"
resources:
requests:
storage: 5Gi
EOF
bash
kubectl apply -f prometheus-pvc.yaml
kubectl get pvc
部署ConfigMap
上传文件prometheus.yml 、alert.mysql.rules.yml 、alert.node.rules.yml到/opt/k8s/prometheus/file/下
bash
kubectl create configmap prometheus-config \
--from-file=prometheus.yml=/opt/k8s/prometheus/file/prometheus.yml \
--from-file=alert.mysql.rules.yml=/opt/k8s/prometheus/file/alert.mysql.rules.yml \
--from-file=alert.node.rules.yml=/opt/k8s/prometheus/file/alert.node.rules.yml
如需修改可使用kubectl edit 或者以下方式
删除现有的ConfigMap
kubectl delete configmap prometheus-config
使用新的文件重新创建ConfigMap
kubectl create configmap prometheus-config--from-file=prometheus.yml=/path/to/new/prometheus.yml
--from-file=alert.mysql.rules.yml=/path/to/new/alert.mysql.rules.yml
--from-file=alert.node.rules.yml=/path/to/new/alert.node.rules.yml
部署Deployment
修改prometheus-Deployment.yaml
文件中的信息,然后应用YAML文件
bash
cat > /opt/k8s/prometheus/prometheus-Deployment.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: prometheus-deployment
spec:
replicas: 1
selector:
matchLabels:
app: prometheus
template:
metadata:
labels:
app: prometheus
spec:
containers:
- name: prometheus
image: prom/prometheus
ports:
- containerPort: 9090
volumeMounts:
- name: prometheus-config-volume
mountPath: /etc/prometheus
readOnly: true
- name: prometheus-data
mountPath: /prometheus
volumes:
- name: prometheus-config-volume
configMap:
name: prometheus-config
- name: prometheus-data
persistentVolumeClaim:
claimName: prometheus-data-pvc
EOF
bash
kubectl apply -f prometheus-Deployment.yaml
kubectl get Deployment
部署Service
修改prometheus-Service.yaml
文件中的信息,然后应用YAML文件
bash
cat > /opt/k8s/prometheus/prometheus-Service.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
name: prometheus-service
spec:
type: NodePort
ports:
- port: 9090
targetPort: 9090
nodePort: 30090
selector:
app: prometheus
EOF
bash
kubectl apply -f prometheus-Service.yaml
kubectl get Service