helm repo add openebs https://openebs.github.io/charts
helm repo update
helm install openebs --namespace openebs openebs/openebs --create-namespace
Shell
복사
kubectl get sc | grep openebs
Shell
복사
kubectl label node ip-10-0-3-92.ap-northeast-2.compute.internal node=prometheus
Shell
복사
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
Shell
복사
cat << EOF > values.yaml
prometheus:
prometheusSpec:
retention: 10d
storageSpec:
volumeClaimTemplate:
spec:
storageClassName: openebs-hostpath
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 50Gi
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node
operator: In
values:
- prometheus
EOF
Shell
복사
helm upgrade --install \
-n promtheus-stack --create-namespace \
-f values.yaml \
operator \
prometheus-community/kube-prometheus-stack
Shell
복사
kubectl get po -n promtheus-stack
Shell
복사
apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus
namespace: argocd
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus
rules:
- apiGroups: [""]
resources:
- nodes
- nodes/metrics
- services
- endpoints
- pods
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources:
- configmaps
verbs: ["get"]
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: prometheus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: prometheus
subjects:
- kind: ServiceAccount
name: prometheus
namespace: argocd
YAML
복사
kubectl apply -f serviceaccount_with_role.yaml
Shell
복사
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-metrics
namespace: argocd
labels:
release: prometheus-argocd
spec:
selector:
matchLabels:
app.kubernetes.io/name: argocd-metrics
endpoints:
- port: metrics
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-server-metrics
namespace: argocd
labels:
release: prometheus-argocd
spec:
selector:
matchLabels:
app.kubernetes.io/name: argocd-server-metrics
endpoints:
- port: metrics
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-repo-server-metrics
namespace: argocd
labels:
release: prometheus-argocd
spec:
selector:
matchLabels:
app.kubernetes.io/name: argocd-repo-server
endpoints:
- port: metrics
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-applicationset-controller-metrics
namespace: argocd
labels:
release: prometheus-argocd
spec:
selector:
matchLabels:
app.kubernetes.io/name: argocd-applicationset-controller
endpoints:
- port: metrics
YAML
복사
kubectl apply -f argocd-metrics.yaml
Shell
복사
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: prometheus-argocd
namespace: argocd
spec:
serviceAccountName: prometheus
serviceMonitorNamespaceSelector: {}
serviceMonitorSelector:
matchLabels:
release: prometheus-argocd
podMonitorSelector: {}
resources:
requests:
memory: 400Mi
YAML
복사
kubectl apply -f prometheus-crd.yaml
Shell
복사
kubectl -n argocd get prometheus
kubectl -n argocd get po -l prometheus=prometheus-argocd
Shell
복사
8080 Port any open
kubectl -n promtheus-stack port-forward --address 0.0.0.0 service/operator-grafana 8080:80 >/dev/null 2>&1 &
Shell
복사
# 관리자 계정
kubectl -n promtheus-stack get secret operator-grafana -o jsonpath='{.data.admin-user}' | base64 -d; echo
# 관리자 비밀번호
kubectl -n promtheus-stack get secret operator-grafana -o jsonpath='{.data.admin-password}' | base64 -d; echo
Shell
복사
http://prometheus-operated.argocd.svc:9090
Markdown
복사