kubernetes配備prometheusノート(一)
3360 ワード
後で忘れないようにメモをとる
1.glusterfsをバックエンドとして記憶するglusterfs volumeを作成する.
2.namespace monitoring-namespacesを作成する.yaml:
3.glusterfs endpoint,monitoring-endpointsを作成する.json:
kubectl create -f monitoring-endpoints.json
4.PV、monitoring-pvを作成する.yaml:
5.pvc,glusterfs-prometheus-pvcを作成する.yaml:
pvcの状態がboundであることがわかりますが、
root@node10:~/prometheus# kubectl get pvc -n monitoringNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEgluster-prometheus Bound gluster-monitoring-volume 500Gi RWX 1h
6.準備yaml:
7.サービスを作成し、アクセスポートprometheus-サービスを暴露する.yaml:
NodeIP:30000でgrafana dashboardにアクセスできます.
注意事項:
1.err="Opening storage failed open DB in/prometheus/:open/prometheus/67340982:permission denied"このエラーを報告する解決策はprometheusである.yamlに追加
1.glusterfsをバックエンドとして記憶するglusterfs volumeを作成する.
2.namespace monitoring-namespacesを作成する.yaml:
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
kubectl create -f monitoring-namespaces.yaml 3.glusterfs endpoint,monitoring-endpointsを作成する.json:
{
"kind": "Endpoints",
"apiVersion": "v1",
"metadata": {
"name": "glusterfs-monitoring",
"namespace": "monitoring"
},
"subsets": [
{
"addresses": [
{
"ip": "10.0.115.14"
}
],
"ports": [
{
"port": 24007
}
]
},
{
"addresses": [
{
"ip": "10.0.115.15"
}
],
"ports": [
{
"port": 24007
}
]
}
]
}
kubectl create -f monitoring-endpoints.json
4.PV、monitoring-pvを作成する.yaml:
apiVersion: v1
kind: PersistentVolume
metadata:
name: gluster-monitoring-volume
namespace: monitoring
spec:
capacity:
storage: 500Gi
accessModes:
- ReadWriteMany
glusterfs:
endpoints: "glusterfs-monitoring"
path: "monitoring-volume" -- glusterfs volume
readOnly: false
5.pvc,glusterfs-prometheus-pvcを作成する.yaml:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: gluster-prometheus
namespace: monitoring
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
pvcの状態がboundであることがわかりますが、
root@node10:~/prometheus# kubectl get pvc -n monitoringNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEgluster-prometheus Bound gluster-monitoring-volume 500Gi RWX 1h
6.準備yaml:
kind: Deployment
metadata:
name: prometheus-deployment
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels:
app: prometheus-server
template:
metadata:
labels:
app: prometheus-server
spec:
securityContext:
runAsUser: 0
containers:
- name: prometheus
image: prom/prometheus:v2.2.0
args:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus/"
ports:
- containerPort: 9090
volumeMounts:
- name: gluster-volume
mountPath: /prometheus/
volumes:
- name: gluster-volume
persistentVolumeClaim:
claimName: gluster-prometheus
7.サービスを作成し、アクセスポートprometheus-サービスを暴露する.yaml:
apiVersion: v1
kind: Service
metadata:
name: prometheus-service
namespace: monitoring
spec:
selector:
app: prometheus-server
type: NodePort
ports:
- port: 8080
targetPort: 9090
nodePort: 30000
NodeIP:30000でgrafana dashboardにアクセスできます.
注意事項:
1.err="Opening storage failed open DB in/prometheus/:open/prometheus/67340982:permission denied"このエラーを報告する解決策はprometheusである.yamlに追加
securityContext:
runAsUser: 0
2. pv,pvc,podは同じnamespaceで