From 73e1bca2b8ddaa9637adda9ecebbd66165844f80 Mon Sep 17 00:00:00 2001 From: irteam su-account Date: Wed, 25 Jun 2025 11:31:11 +0900 Subject: [PATCH] after csi --- gpulive/cert/public/gpulive.crt | 40 ++ gpulive/cert/public/gpulive.key | 29 ++ .../base/grafana/cm.yaml | 0 .../base/grafana/deploy.yaml | 0 gpulive/grafana/base/grafana/gateway.yaml | 47 +++ .../base/grafana/ingress.yaml} | 8 +- .../base/grafana/kustomization.yaml | 5 +- gpulive/grafana/base/grafana/pv.yaml | 18 + .../base/grafana/pvc.yaml | 7 +- .../base/grafana/role.yaml | 0 .../base/grafana/sa.yaml | 0 .../base/grafana/secret.yaml | 0 .../base/grafana/service.yaml | 0 .../overlays/default/auth | 0 .../default/grafana/kustomization.yaml | 0 .../overlays/default/grafana/patch-cm.yaml | 0 .../default/grafana/patch-deploy.yaml | 0 .../grafana/patch-ingress_grafana.yaml | 0 .../default/grafana/patch-secret.yaml | 0 .../overlays/default/kustomization.yaml | 0 .../default/prometheus/kustomization.yaml | 0 .../patch-cm-prometheus-server.yaml | 0 .../default/prometheus/patch-deploy.yaml | 0 .../patch-ingress_alertmanager.yaml | 0 .../prometheus/patch-ingress_prometheus.yaml | 0 .../overlays/vm/grafana/kustomization.yaml | 7 +- .../overlays/vm/grafana/patch-cm.yaml | 0 .../overlays/vm}/grafana/patch-deploy.yaml | 0 .../overlays/vm}/grafana/patch-secret.yaml | 0 .../overlays/vm/kustomization.yaml | 8 +- gpulive/grafana/overlays/vm/test.yaml | 336 ++++++++++++++++ gpulive/harbor_2.9.1/vm/3_apply/gateway.yaml | 2 +- .../base/prometheus/ingress_alertmanager.yaml | 9 +- .../base/prometheus/ingress_prometheus.yaml | 9 +- .../base/prometheus/kustomization.yaml | 1 + gpulive/prometheus/base/prometheus/pv.yaml | 36 ++ gpulive/prometheus/base/prometheus/pvc.yaml | 6 +- .../base/prometheus/state_full_set.yaml | 2 +- .../prometheus/overlays/vm/kustomization.yaml | 5 - .../patch-ingress_alertmanager.yaml | 9 +- .../base/prometheus/cluster_role.yaml | 248 ------------ gpulive/vm-monitoring/base/prometheus/cm.yaml | 375 ------------------ .../prometheus/cm_custom_alert_rules.yaml | 194 --------- .../base/prometheus/daemonset.yaml | 135 ------- .../vm-monitoring/base/prometheus/deploy.yaml | 290 -------------- .../base/prometheus/ingress_alertmanager.yaml | 29 -- .../base/prometheus/ingress_prometheus.yaml | 29 -- .../base/prometheus/kustomization.yaml | 19 - .../base/prometheus/namespace.yaml | 6 - .../vm-monitoring/base/prometheus/pvc.yaml | 19 - gpulive/vm-monitoring/base/prometheus/sa.yaml | 76 ---- .../base/prometheus/service.yaml | 151 ------- .../base/prometheus/state_full_set.yaml | 90 ----- gpulive/vm-monitoring/overlays/default/auth | 1 - .../default/grafana/kustomization.yaml | 29 -- .../overlays/default/grafana/patch-cm.yaml | 32 -- .../grafana/patch-ingress_grafana.yaml | 24 -- .../overlays/default/kustomization.yaml | 17 - .../default/prometheus/kustomization.yaml | 34 -- .../patch-cm-prometheus-server.yaml | 335 ---------------- .../default/prometheus/patch-deploy.yaml | 19 - .../patch-ingress_alertmanager.yaml | 29 -- .../prometheus/patch-ingress_prometheus.yaml | 22 - gpulive/vm-monitoring/overlays/vm/auth | 1 - .../overlays/vm/grafana/patch-deploy.yaml | 20 - .../overlays/vm/grafana/patch-secret.yaml | 17 - .../overlays/vm/prometheus/kustomization.yaml | 34 -- .../patch-cm-prometheus-server.yaml | 335 ---------------- .../overlays/vm/prometheus/patch-deploy.yaml | 19 - .../patch-ingress_alertmanager.yaml | 29 -- .../prometheus/patch-ingress_prometheus.yaml | 22 - 71 files changed, 531 insertions(+), 2733 deletions(-) create mode 100644 gpulive/cert/public/gpulive.crt create mode 100644 gpulive/cert/public/gpulive.key rename gpulive/{vm-monitoring => grafana}/base/grafana/cm.yaml (100%) rename gpulive/{vm-monitoring => grafana}/base/grafana/deploy.yaml (100%) create mode 100644 gpulive/grafana/base/grafana/gateway.yaml rename gpulive/{vm-monitoring/overlays/vm/grafana/patch-ingress_grafana.yaml => grafana/base/grafana/ingress.yaml} (77%) rename gpulive/{vm-monitoring => grafana}/base/grafana/kustomization.yaml (89%) create mode 100644 gpulive/grafana/base/grafana/pv.yaml rename gpulive/{vm-monitoring => grafana}/base/grafana/pvc.yaml (57%) rename gpulive/{vm-monitoring => grafana}/base/grafana/role.yaml (100%) rename gpulive/{vm-monitoring => grafana}/base/grafana/sa.yaml (100%) rename gpulive/{vm-monitoring => grafana}/base/grafana/secret.yaml (100%) rename gpulive/{vm-monitoring => grafana}/base/grafana/service.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/auth (100%) rename gpulive/{prometheus => grafana}/overlays/default/grafana/kustomization.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/grafana/patch-cm.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/grafana/patch-deploy.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/grafana/patch-ingress_grafana.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/grafana/patch-secret.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/kustomization.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/prometheus/kustomization.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/prometheus/patch-cm-prometheus-server.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/prometheus/patch-deploy.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/prometheus/patch-ingress_alertmanager.yaml (100%) rename gpulive/{prometheus => grafana}/overlays/default/prometheus/patch-ingress_prometheus.yaml (100%) rename gpulive/{vm-monitoring => grafana}/overlays/vm/grafana/kustomization.yaml (75%) rename gpulive/{vm-monitoring => grafana}/overlays/vm/grafana/patch-cm.yaml (100%) rename gpulive/{vm-monitoring/overlays/default => grafana/overlays/vm}/grafana/patch-deploy.yaml (100%) rename gpulive/{vm-monitoring/overlays/default => grafana/overlays/vm}/grafana/patch-secret.yaml (100%) rename gpulive/{vm-monitoring => grafana}/overlays/vm/kustomization.yaml (60%) create mode 100644 gpulive/grafana/overlays/vm/test.yaml create mode 100644 gpulive/prometheus/base/prometheus/pv.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/cluster_role.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/cm.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/cm_custom_alert_rules.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/daemonset.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/deploy.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/ingress_alertmanager.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/ingress_prometheus.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/kustomization.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/namespace.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/pvc.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/sa.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/service.yaml delete mode 100644 gpulive/vm-monitoring/base/prometheus/state_full_set.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/auth delete mode 100644 gpulive/vm-monitoring/overlays/default/grafana/kustomization.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/grafana/patch-cm.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/grafana/patch-ingress_grafana.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/kustomization.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/prometheus/kustomization.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/prometheus/patch-cm-prometheus-server.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/prometheus/patch-deploy.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_alertmanager.yaml delete mode 100644 gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_prometheus.yaml delete mode 100644 gpulive/vm-monitoring/overlays/vm/auth delete mode 100644 gpulive/vm-monitoring/overlays/vm/grafana/patch-deploy.yaml delete mode 100644 gpulive/vm-monitoring/overlays/vm/grafana/patch-secret.yaml delete mode 100644 gpulive/vm-monitoring/overlays/vm/prometheus/kustomization.yaml delete mode 100644 gpulive/vm-monitoring/overlays/vm/prometheus/patch-cm-prometheus-server.yaml delete mode 100644 gpulive/vm-monitoring/overlays/vm/prometheus/patch-deploy.yaml delete mode 100644 gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_alertmanager.yaml delete mode 100644 gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_prometheus.yaml diff --git a/gpulive/cert/public/gpulive.crt b/gpulive/cert/public/gpulive.crt new file mode 100644 index 0000000..4451b97 --- /dev/null +++ b/gpulive/cert/public/gpulive.crt @@ -0,0 +1,40 @@ +-----BEGIN CERTIFICATE----- +MIIG8TCCBdmgAwIBAgIQOeJ9xOx5YP7AUV8ZEo0nzTANBgkqhkiG9w0BAQsFADCB +lTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMT0wOwYDVQQD +EzRTZWN0aWdvIFJTQSBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBTZWN1cmUgU2Vy +dmVyIENBMB4XDTI1MDYyMzAwMDAwMFoXDTI2MDcyNDIzNTk1OVowXjELMAkGA1UE +BhMCS1IxFDASBgNVBAgTC0d5ZW9uZ2dpLWRvMRgwFgYDVQQKEw9OSE4gQ29ycG9y +YXRpb24xHzAdBgNVBAMMFiouZ3B1bGl2ZS5uaG5jbG91ZC5jb20wggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSVEmunUiLR4PYyxlfYXbhN7vWFalhqAh7 +DDlTiChKrV6vap4gSiYc1mXI/BO1McrkX9zYKmUpCxDGwMGFzkkUx35BQlJgqVej +7gnWT+gOSzx2+fL5dUOVvNVUp+jgyorxiA0XpV37IW3DHnagR9G+i7RUQ5iyi8Kt +DtyoPBs6gDV4n2vOX+5jRotAZSdjKJzFtaV4EhFzASK5C1qeYb57A+DBriryFwKp +M/kcrYBdOqM13yAEBYQJKEoGxHjommYUFvqs1asq6ty5wIYoatQ32WohJRDG5LfT +KWxiLU7Payu9VOK6Z9UpoFVoyMe10w0i1JDj6ORzxQrnq+eVgx4fAgMBAAGjggNx +MIIDbTAfBgNVHSMEGDAWgBQX2dYlJ2f5McJJQ9kwNkSMbKlP6zAdBgNVHQ4EFgQU +pALe+uJj65++VT325zXelHyShsYwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQC +MAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEoGA1UdIARDMEEwNQYM +KwYBBAGyMQECAQMEMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20v +Q1BTMAgGBmeBDAECAjBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLnNlY3Rp +Z28uY29tL1NlY3RpZ29SU0FPcmdhbml6YXRpb25WYWxpZGF0aW9uU2VjdXJlU2Vy +dmVyQ0EuY3JsMIGKBggrBgEFBQcBAQR+MHwwVQYIKwYBBQUHMAKGSWh0dHA6Ly9j +cnQuc2VjdGlnby5jb20vU2VjdGlnb1JTQU9yZ2FuaXphdGlvblZhbGlkYXRpb25T +ZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3Rp +Z28uY29tMDcGA1UdEQQwMC6CFiouZ3B1bGl2ZS5uaG5jbG91ZC5jb22CFGdwdWxp +dmUubmhuY2xvdWQuY29tMIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgDYCVU7 +lE96/8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZee8tuiAAAEAwBHMEUCIQDe +krCnoAhwJvOh5bEn635rGE7XuS7+Ow8YGI+bkCp/AgIgZ8SZ11QtG7HKnRaKnblx +ojJT4kRhBjmpDEieOs5auXEAdgCsqzBwbOvshDH0E9L0kV8RHkIkQ7HypoxPPCs7 +px4CwwAAAZee8tt/AAAEAwBHMEUCIA1ILtdgGC3jf3fueN4QssdbRKwlYthKATyc +CAQvMZGLAiEA42joeMgiU2Z+Zkwbeh4RLCuB3O3TMdFqoGfh6o83p0gAdgDXbX0Q +0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZee8tuOAAAEAwBHMEUCIQDn +7eeh1WNxEzAwsgskG93x3Twb6IstvOLCeRhzPR5q4QIgUh6yZ6+wtkstBVR1OQqB +AicPDVJccO3X+FRqU2pRBa0wDQYJKoZIhvcNAQELBQADggEBACfbJO1O5LbBRSAU +t7qz4Y15d/K2vgW8xiltL6F73mhpw96zpw+k5NqArCEXCyJ6YptzVByQN7f+kjKr +KEkez4cyURzza8dMFtnMOaNL5F7a4N3xbCa28erBKqcC4NQJnaYfj2Xwm+PV+aUa +EA0xEVJcxRlIWSrs4AXwOclmKxFK3Vq/NzG6+6BG49uh60uGB/GKZvOt/nyBRRaq +uNXhuZ4t0XcIVv/HQ2WBdHK3PFPzY+4aMrMxdyvL5uHaJeoFswmPVFA8HHOlHBHw +ry54Z2opysHXqdh++JLZOUe9KiB2ds4Hu88u31vGbVJO3ivPjjGU2815e3dh4FTv +hXEWRXI= +-----END CERTIFICATE----- diff --git a/gpulive/cert/public/gpulive.key b/gpulive/cert/public/gpulive.key new file mode 100644 index 0000000..8271ae0 --- /dev/null +++ b/gpulive/cert/public/gpulive.key @@ -0,0 +1,29 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDSVEmunUiLR4PY +yxlfYXbhN7vWFalhqAh7DDlTiChKrV6vap4gSiYc1mXI/BO1McrkX9zYKmUpCxDG +wMGFzkkUx35BQlJgqVej7gnWT+gOSzx2+fL5dUOVvNVUp+jgyorxiA0XpV37IW3D +HnagR9G+i7RUQ5iyi8KtDtyoPBs6gDV4n2vOX+5jRotAZSdjKJzFtaV4EhFzASK5 +C1qeYb57A+DBriryFwKpM/kcrYBdOqM13yAEBYQJKEoGxHjommYUFvqs1asq6ty5 +wIYoatQ32WohJRDG5LfTKWxiLU7Payu9VOK6Z9UpoFVoyMe10w0i1JDj6ORzxQrn +q+eVgx4fAgMBAAECggEAYgEvciNMvcV9jKOad4S5OZlYN5nRWrVK+lcIUUF1ENL2 +90L1WnNijfZi6EN5RWllsoNuqvUaPQUwdIQ1yI0GJZ4NWQg3zV2q/jI5ODj0ltB8 +5K10B8QZ0WhzeSZiT3hhRMlR3G5MO+voMs57lRTSCXkcdlUnDi8sb6oorGWRhHCH +GgteQt5vxXWR5ClA+PwVa0JiwciwvjBckbNydz+LL4rOcGstsl2O231zjVmge0Uv +CJDTh4xUdSxe0Yr+GRFH8tAgeZIoHpCC0v4k31j+JqODnHrL4SvblhD19OEIUOMs +Z7iSvdx4wM3WzzpehuCo19PtJ0+J2S7o58JnFCqDoQKBgQDUFCHoW6geniHtkmJQ +90zaHXAtbNuunRY4Jw/ugv5fdfBnhE0SU9/Buri5Okz+nJLjgydbfU9JNXNrSMQg +QqCzbwqUZGnNzGKalDh7hPT9TkIdOtLRTYTPMP2EHEgmoUJ76jOKN+AbRAYsPQ0c +18KunO8jFxzcJyFcLetVlwGyIQKBgQD942gyYIQ9126i1m3dLAQlngqYEfUFxXCR +Az8cSzBQce1NF5/12CumRl8w2uBzoLoJzHr7E4qTFrsrinNqjM5YJM+ca2Ycv4QC +UlKhKXdCrTOju3WGffu+r1Y6uPZPuFRxv51Pyav/wFFCl5W17l0G5xErBr1YBWjv +3HOeYB9IPwKBgQCMO4+8PDcrn7ahh+T40r1/kG2nq86LZJXXpYS0WuvmpW7ElEf+ +MXXIfTY+TJ2y0keSpxu0NGTj7LMYIrKE/mmSnH8rZkZL7bTZr961VlJE2KWA/G+A +NLj349YOsEDJQmJa258e6xmGDfHi+K+d/dFecqjx1AuiS0GU2Uw+eS6G4QKBgQD1 +jTDksFaWXTsjARMm+4BTRaRnac66Mzho+GPcoJfs5hMmIbhTFS06VwuP+9Fj48qq +2XsEROUc17pVJUX1gpO7ynaFiZYsLcqmWCqUtr8i3NN6Az9qwYRu67QRfXy0o8oA +bdvfJGVXKREuv99LI2wT1f3TyGPusuTIQEYOolb/DwKBgGD+VrIx83I4MjpV1FGr +AGAw/1lAnQ/aHM7lSZxbBY2ZFX0JS8x6frCFW4M2BHXHXMtlX76itMlGXHjWLiC2 +rJHwd2s8i9YSWVZ8Wr7luhw+Yjwe90L2y4avZoeADD8cbeQt6YvSzLXQwMa29cK1 +NK6a+9bW9jSGbAW7DGXl54ck +-----END PRIVATE KEY----- + diff --git a/gpulive/vm-monitoring/base/grafana/cm.yaml b/gpulive/grafana/base/grafana/cm.yaml similarity index 100% rename from gpulive/vm-monitoring/base/grafana/cm.yaml rename to gpulive/grafana/base/grafana/cm.yaml diff --git a/gpulive/vm-monitoring/base/grafana/deploy.yaml b/gpulive/grafana/base/grafana/deploy.yaml similarity index 100% rename from gpulive/vm-monitoring/base/grafana/deploy.yaml rename to gpulive/grafana/base/grafana/deploy.yaml diff --git a/gpulive/grafana/base/grafana/gateway.yaml b/gpulive/grafana/base/grafana/gateway.yaml new file mode 100644 index 0000000..a8011ac --- /dev/null +++ b/gpulive/grafana/base/grafana/gateway.yaml @@ -0,0 +1,47 @@ +# Gateway.yaml +apiVersion: networking.istio.io/v1alpha3 +kind: Gateway +metadata: + name: grafana-gateway + namespace: grafana +spec: + # The selector matches the ingress gateway pod labels. + # If you installed Istio using Helm following the standard documentation, this would be "istio=ingress" + selector: + istio: ingressgateway + servers: + - port: + number: 80 + name: http + protocol: HTTP + hosts: + - monitoring.gpulive.nhncloud.com + tls: + httpsRedirect: true # sends 301 redirect for http requests + - port: + number: 443 + name: https + protocol: HTTPS + hosts: + - monitoring.gpulive.nhncloud.com + tls: + mode: SIMPLE # enables HTTPS on this port + credentialName: gpulive-new-ssl +--- +# virtual-service.yaml +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: grafana-vs + namespace: grafana +spec: + hosts: + - "monitoring.gpulive.nhncloud.com" + gateways: + - grafana-gateway + http: + - route: + - destination: + port: + number: 80 + host: grafana diff --git a/gpulive/vm-monitoring/overlays/vm/grafana/patch-ingress_grafana.yaml b/gpulive/grafana/base/grafana/ingress.yaml similarity index 77% rename from gpulive/vm-monitoring/overlays/vm/grafana/patch-ingress_grafana.yaml rename to gpulive/grafana/base/grafana/ingress.yaml index 6839329..665ea2a 100644 --- a/gpulive/vm-monitoring/overlays/vm/grafana/patch-ingress_grafana.yaml +++ b/gpulive/grafana/base/grafana/ingress.yaml @@ -6,7 +6,7 @@ metadata: spec: ingressClassName: nginx rules: - - host: grafana.nhngpuaas.com + - host: grafana.sample.com http: paths: - backend: @@ -18,7 +18,5 @@ spec: pathType: Prefix tls: - hosts: - - grafana.nhngpuaas.com - secretName: nhngpuaas-ssl - - \ No newline at end of file + - grafana.sample.com + secretName: ssl-cc \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/grafana/kustomization.yaml b/gpulive/grafana/base/grafana/kustomization.yaml similarity index 89% rename from gpulive/vm-monitoring/base/grafana/kustomization.yaml rename to gpulive/grafana/base/grafana/kustomization.yaml index 815106d..7fbe565 100644 --- a/gpulive/vm-monitoring/base/grafana/kustomization.yaml +++ b/gpulive/grafana/base/grafana/kustomization.yaml @@ -12,6 +12,7 @@ resources: - sa.yaml - secret.yaml - service.yaml - - ingress.yaml + - pv.yaml + - gateway.yaml - pvc.yaml - \ No newline at end of file + diff --git a/gpulive/grafana/base/grafana/pv.yaml b/gpulive/grafana/base/grafana/pv.yaml new file mode 100644 index 0000000..55d0482 --- /dev/null +++ b/gpulive/grafana/base/grafana/pv.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: grafana-pvc-pv + labels: + name: grafana-pvc-pv +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 10Gi + csi: + driver: exa.csi.ddn.com + volumeHandle: exa1:/grafana + volumeAttributes: # volumeAttributes are the alternative of storageClass params for static (precreated) volumes. + # mountOptions: ro, noflock # list of options for `mount` command + bindMount: "false" # Determines, whether volume will bind mounted or as a separate lustre mount. + diff --git a/gpulive/vm-monitoring/base/grafana/pvc.yaml b/gpulive/grafana/base/grafana/pvc.yaml similarity index 57% rename from gpulive/vm-monitoring/base/grafana/pvc.yaml rename to gpulive/grafana/base/grafana/pvc.yaml index 9a0cc28..522c8f1 100644 --- a/gpulive/vm-monitoring/base/grafana/pvc.yaml +++ b/gpulive/grafana/base/grafana/pvc.yaml @@ -10,4 +10,9 @@ spec: - "ReadWriteOnce" resources: requests: - storage: "10Gi" \ No newline at end of file + storage: "10Gi" + selector: + matchLabels: + # to create 1-1 relationship for pod - persistent volume use unique labels + name: grafana-pvc-pv + diff --git a/gpulive/vm-monitoring/base/grafana/role.yaml b/gpulive/grafana/base/grafana/role.yaml similarity index 100% rename from gpulive/vm-monitoring/base/grafana/role.yaml rename to gpulive/grafana/base/grafana/role.yaml diff --git a/gpulive/vm-monitoring/base/grafana/sa.yaml b/gpulive/grafana/base/grafana/sa.yaml similarity index 100% rename from gpulive/vm-monitoring/base/grafana/sa.yaml rename to gpulive/grafana/base/grafana/sa.yaml diff --git a/gpulive/vm-monitoring/base/grafana/secret.yaml b/gpulive/grafana/base/grafana/secret.yaml similarity index 100% rename from gpulive/vm-monitoring/base/grafana/secret.yaml rename to gpulive/grafana/base/grafana/secret.yaml diff --git a/gpulive/vm-monitoring/base/grafana/service.yaml b/gpulive/grafana/base/grafana/service.yaml similarity index 100% rename from gpulive/vm-monitoring/base/grafana/service.yaml rename to gpulive/grafana/base/grafana/service.yaml diff --git a/gpulive/prometheus/overlays/default/auth b/gpulive/grafana/overlays/default/auth similarity index 100% rename from gpulive/prometheus/overlays/default/auth rename to gpulive/grafana/overlays/default/auth diff --git a/gpulive/prometheus/overlays/default/grafana/kustomization.yaml b/gpulive/grafana/overlays/default/grafana/kustomization.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/grafana/kustomization.yaml rename to gpulive/grafana/overlays/default/grafana/kustomization.yaml diff --git a/gpulive/prometheus/overlays/default/grafana/patch-cm.yaml b/gpulive/grafana/overlays/default/grafana/patch-cm.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/grafana/patch-cm.yaml rename to gpulive/grafana/overlays/default/grafana/patch-cm.yaml diff --git a/gpulive/prometheus/overlays/default/grafana/patch-deploy.yaml b/gpulive/grafana/overlays/default/grafana/patch-deploy.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/grafana/patch-deploy.yaml rename to gpulive/grafana/overlays/default/grafana/patch-deploy.yaml diff --git a/gpulive/prometheus/overlays/default/grafana/patch-ingress_grafana.yaml b/gpulive/grafana/overlays/default/grafana/patch-ingress_grafana.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/grafana/patch-ingress_grafana.yaml rename to gpulive/grafana/overlays/default/grafana/patch-ingress_grafana.yaml diff --git a/gpulive/prometheus/overlays/default/grafana/patch-secret.yaml b/gpulive/grafana/overlays/default/grafana/patch-secret.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/grafana/patch-secret.yaml rename to gpulive/grafana/overlays/default/grafana/patch-secret.yaml diff --git a/gpulive/prometheus/overlays/default/kustomization.yaml b/gpulive/grafana/overlays/default/kustomization.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/kustomization.yaml rename to gpulive/grafana/overlays/default/kustomization.yaml diff --git a/gpulive/prometheus/overlays/default/prometheus/kustomization.yaml b/gpulive/grafana/overlays/default/prometheus/kustomization.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/prometheus/kustomization.yaml rename to gpulive/grafana/overlays/default/prometheus/kustomization.yaml diff --git a/gpulive/prometheus/overlays/default/prometheus/patch-cm-prometheus-server.yaml b/gpulive/grafana/overlays/default/prometheus/patch-cm-prometheus-server.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/prometheus/patch-cm-prometheus-server.yaml rename to gpulive/grafana/overlays/default/prometheus/patch-cm-prometheus-server.yaml diff --git a/gpulive/prometheus/overlays/default/prometheus/patch-deploy.yaml b/gpulive/grafana/overlays/default/prometheus/patch-deploy.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/prometheus/patch-deploy.yaml rename to gpulive/grafana/overlays/default/prometheus/patch-deploy.yaml diff --git a/gpulive/prometheus/overlays/default/prometheus/patch-ingress_alertmanager.yaml b/gpulive/grafana/overlays/default/prometheus/patch-ingress_alertmanager.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/prometheus/patch-ingress_alertmanager.yaml rename to gpulive/grafana/overlays/default/prometheus/patch-ingress_alertmanager.yaml diff --git a/gpulive/prometheus/overlays/default/prometheus/patch-ingress_prometheus.yaml b/gpulive/grafana/overlays/default/prometheus/patch-ingress_prometheus.yaml similarity index 100% rename from gpulive/prometheus/overlays/default/prometheus/patch-ingress_prometheus.yaml rename to gpulive/grafana/overlays/default/prometheus/patch-ingress_prometheus.yaml diff --git a/gpulive/vm-monitoring/overlays/vm/grafana/kustomization.yaml b/gpulive/grafana/overlays/vm/grafana/kustomization.yaml similarity index 75% rename from gpulive/vm-monitoring/overlays/vm/grafana/kustomization.yaml rename to gpulive/grafana/overlays/vm/grafana/kustomization.yaml index 2f05aa9..77bbfd6 100644 --- a/gpulive/vm-monitoring/overlays/vm/grafana/kustomization.yaml +++ b/gpulive/grafana/overlays/vm/grafana/kustomization.yaml @@ -4,7 +4,7 @@ kind: Kustomization resources: - ../../../base/grafana -namespace: monitoring +namespace: grafana patches: - target: @@ -22,8 +22,3 @@ patches: name: grafana namespace: monitoring path: patch-deploy.yaml - - target: - kind: Ingress - name: grafana-ingress - namespace: monitoring - path: patch-ingress_grafana.yaml \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/vm/grafana/patch-cm.yaml b/gpulive/grafana/overlays/vm/grafana/patch-cm.yaml similarity index 100% rename from gpulive/vm-monitoring/overlays/vm/grafana/patch-cm.yaml rename to gpulive/grafana/overlays/vm/grafana/patch-cm.yaml diff --git a/gpulive/vm-monitoring/overlays/default/grafana/patch-deploy.yaml b/gpulive/grafana/overlays/vm/grafana/patch-deploy.yaml similarity index 100% rename from gpulive/vm-monitoring/overlays/default/grafana/patch-deploy.yaml rename to gpulive/grafana/overlays/vm/grafana/patch-deploy.yaml diff --git a/gpulive/vm-monitoring/overlays/default/grafana/patch-secret.yaml b/gpulive/grafana/overlays/vm/grafana/patch-secret.yaml similarity index 100% rename from gpulive/vm-monitoring/overlays/default/grafana/patch-secret.yaml rename to gpulive/grafana/overlays/vm/grafana/patch-secret.yaml diff --git a/gpulive/vm-monitoring/overlays/vm/kustomization.yaml b/gpulive/grafana/overlays/vm/kustomization.yaml similarity index 60% rename from gpulive/vm-monitoring/overlays/vm/kustomization.yaml rename to gpulive/grafana/overlays/vm/kustomization.yaml index 09bb902..91277d0 100644 --- a/gpulive/vm-monitoring/overlays/vm/kustomization.yaml +++ b/gpulive/grafana/overlays/vm/kustomization.yaml @@ -2,16 +2,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: monitoring +namespace: grafana resources: - - prometheus - grafana generatorOptions: disableNameSuffixHash: true -secretGenerator: - - name: basic-auth - files: - - auth - type: Opaque \ No newline at end of file diff --git a/gpulive/grafana/overlays/vm/test.yaml b/gpulive/grafana/overlays/vm/test.yaml new file mode 100644 index 0000000..b0f8833 --- /dev/null +++ b/gpulive/grafana/overlays/vm/test.yaml @@ -0,0 +1,336 @@ +apiVersion: v1 +automountServiceAccountToken: false +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana + namespace: grafana +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana + namespace: grafana +rules: [] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana-clusterrole +rules: [] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana + namespace: grafana +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: grafana +subjects: +- kind: ServiceAccount + name: grafana + namespace: grafana +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana-clusterrolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: grafana-clusterrole +subjects: +- kind: ServiceAccount + name: grafana + namespace: grafana +--- +apiVersion: v1 +data: + grafana.ini: | + [analytics] + check_for_updates = true + [grafana_net] + url = https://grafana.net + [log] + mode = console + [paths] + data = /var/lib/grafana/ + logs = /var/log/grafana + plugins = /var/lib/grafana/plugins + provisioning = /etc/grafana/provisioning + [server] + domain = 'monitoring.gpulive.nhncloud.com' + root_url = 'https://monitoring.gpulive.nhncloud.com' + [auth.anonymous] + enabled = true + org_name = Main Org. + org_role = Viewer +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana + namespace: grafana +--- +apiVersion: v1 +data: + admin-password: bmhuIUAjMTIz + admin-user: YWRtaW4= + ldap-toml: "" +kind: Secret +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana + namespace: grafana +type: Opaque +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana + namespace: grafana +spec: + ports: + - name: service + port: 80 + protocol: TCP + targetPort: 3000 + selector: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + type: ClusterIP +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + labels: + name: grafana-pvc-pv + name: grafana-pvc-pv +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 10Gi + csi: + driver: exa.csi.ddn.com + volumeAttributes: + bindMount: "false" + volumeHandle: exa1:/grafana +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app.kubernetes.io/name: grafana + name: grafana-pvc + namespace: grafana +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + selector: + matchLabels: + name: grafana-pvc-pv +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + name: grafana + namespace: grafana +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + strategy: + type: RollingUpdate + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: grafana + labels: + app.kubernetes.io/instance: grafana + app.kubernetes.io/name: grafana + app.kubernetes.io/version: 11.5.1 + helm.sh/chart: grafana-8.10.0 + spec: + automountServiceAccountToken: true + containers: + - env: + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: GF_SECURITY_ADMIN_USER + valueFrom: + secretKeyRef: + key: admin-user + name: grafana + - name: GF_SECURITY_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + key: admin-password + name: grafana + - name: GF_PATHS_DATA + value: /var/lib/grafana/ + - name: GF_PATHS_LOGS + value: /var/log/grafana + - name: GF_PATHS_PLUGINS + value: /var/lib/grafana/plugins + - name: GF_PATHS_PROVISIONING + value: /etc/grafana/provisioning + image: docker.io/grafana/grafana:11.5.1 + imagePullPolicy: Always + livenessProbe: + failureThreshold: 10 + httpGet: + path: /api/health + port: 3000 + initialDelaySeconds: 60 + timeoutSeconds: 30 + name: grafana + ports: + - containerPort: 3000 + name: grafana + protocol: TCP + - containerPort: 9094 + name: gossip-tcp + protocol: TCP + - containerPort: 9094 + name: gossip-udp + protocol: UDP + - containerPort: 6060 + name: profiling + protocol: TCP + readinessProbe: + httpGet: + path: /api/health + port: 3000 + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 250m + memory: 256Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /var/lib/grafana + name: storage + - mountPath: /etc/grafana/grafana.ini + name: config + subPath: grafana.ini + enableServiceLinks: true + nodeSelector: + nodegroup: nd + securityContext: + fsGroup: 472 + runAsGroup: 472 + runAsNonRoot: true + runAsUser: 472 + serviceAccountName: grafana + shareProcessNamespace: false + volumes: + - name: storage + persistentVolumeClaim: + claimName: grafana-pvc + - configMap: + name: grafana + name: config +--- +apiVersion: networking.istio.io/v1alpha3 +kind: Gateway +metadata: + name: grafana-gateway + namespace: grafana +spec: + selector: + istio: ingressgateway + servers: + - hosts: + - monitoring.gpulive.nhncloud.com + port: + name: http + number: 80 + protocol: HTTP + tls: + httpsRedirect: true + - hosts: + - monitoring.gpulive.nhncloud.com + port: + name: https + number: 443 + protocol: HTTPS + tls: + credentialName: nhngpuaas-ssl + mode: SIMPLE +--- +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: grafana-vs + namespace: grafana +spec: + gateways: + - grafana-gateway + hosts: + - monitoring.gpulive.nhncloud.com + http: + - route: + - destination: + host: grafana + port: + number: 80 diff --git a/gpulive/harbor_2.9.1/vm/3_apply/gateway.yaml b/gpulive/harbor_2.9.1/vm/3_apply/gateway.yaml index c6d4df8..5e1d859 100644 --- a/gpulive/harbor_2.9.1/vm/3_apply/gateway.yaml +++ b/gpulive/harbor_2.9.1/vm/3_apply/gateway.yaml @@ -19,7 +19,7 @@ spec: protocol: HTTPS tls: mode: SIMPLE - credentialName: gpulive-ssl # 반드시 istio-system namespace에 존재해야 함 + credentialName: gpulive-new-ssl # 반드시 istio-system namespace에 존재해야 함 hosts: - registry.gpulive.nhncloud.com --- diff --git a/gpulive/prometheus/base/prometheus/ingress_alertmanager.yaml b/gpulive/prometheus/base/prometheus/ingress_alertmanager.yaml index 87afe8d..7a4fa71 100644 --- a/gpulive/prometheus/base/prometheus/ingress_alertmanager.yaml +++ b/gpulive/prometheus/base/prometheus/ingress_alertmanager.yaml @@ -3,13 +3,6 @@ kind: Ingress metadata: name: prometheus-alertmanager-ingress namespace: monitoring - annotations: - # 인증 방법 설정: basic auth - nginx.ingress.kubernetes.io/auth-type: basic - # basic auth 사용자가 들어있는 secret 설정 - nginx.ingress.kubernetes.io/auth-secret: basic-auth - # 인증 요청시 나오는 메세지 설정 - nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin' spec: ingressClassName: nginx rules: @@ -26,4 +19,4 @@ spec: tls: - hosts: - prometheus.cone-chain.com - secretName: ssl-cc \ No newline at end of file + secretName: ssl-cc diff --git a/gpulive/prometheus/base/prometheus/ingress_prometheus.yaml b/gpulive/prometheus/base/prometheus/ingress_prometheus.yaml index c56bae2..ad7e26c 100644 --- a/gpulive/prometheus/base/prometheus/ingress_prometheus.yaml +++ b/gpulive/prometheus/base/prometheus/ingress_prometheus.yaml @@ -3,13 +3,6 @@ kind: Ingress metadata: name: prometheus-ingress namespace: monitoring - annotations: - # 인증 방법 설정: basic auth - nginx.ingress.kubernetes.io/auth-type: basic - # basic auth 사용자가 들어있는 secret 설정 - nginx.ingress.kubernetes.io/auth-secret: basic-auth - # 인증 요청시 나오는 메세지 설정 - nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin' spec: ingressClassName: nginx rules: @@ -26,4 +19,4 @@ spec: tls: - hosts: - prometheus.cone-chain.com - secretName: ssl-cc \ No newline at end of file + secretName: ssl-cc diff --git a/gpulive/prometheus/base/prometheus/kustomization.yaml b/gpulive/prometheus/base/prometheus/kustomization.yaml index 027f1b7..330dec7 100644 --- a/gpulive/prometheus/base/prometheus/kustomization.yaml +++ b/gpulive/prometheus/base/prometheus/kustomization.yaml @@ -5,6 +5,7 @@ namespace: monitoring resources: - namespace.yaml + - pv.yaml - sa.yaml - cluster_role.yaml - cm.yaml diff --git a/gpulive/prometheus/base/prometheus/pv.yaml b/gpulive/prometheus/base/prometheus/pv.yaml new file mode 100644 index 0000000..d6520b1 --- /dev/null +++ b/gpulive/prometheus/base/prometheus/pv.yaml @@ -0,0 +1,36 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: prometheus-server-pv + labels: + name: prometheus-server-pv +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 2000Gi + csi: + driver: exa.csi.ddn.com + volumeHandle: exa1:/prometheus-server + volumeAttributes: # volumeAttributes are the alternative of storageClass params for static (precreated) volumes. + # mountOptions: ro, noflock # list of options for `mount` command + bindMount: "false" # Determines, whether volume will bind mounted or as a separate lustre mount. +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: storage-prometheus-alertmanager-0 + labels: + name: storage-prometheus-alertmanager-0 +spec: + accessModes: + - ReadWriteOnce + capacity: + storage: 8Gi + csi: + driver: exa.csi.ddn.com + volumeHandle: exa1:/prometheus-alert + volumeAttributes: # volumeAttributes are the alternative of storageClass params for static (precreated) volumes. + # mountOptions: ro, noflock # list of options for `mount` command + bindMount: "false" # Determines, whether volume will bind mounted or as a separate lustre mount. + diff --git a/gpulive/prometheus/base/prometheus/pvc.yaml b/gpulive/prometheus/base/prometheus/pvc.yaml index 70a8a29..3203bca 100644 --- a/gpulive/prometheus/base/prometheus/pvc.yaml +++ b/gpulive/prometheus/base/prometheus/pvc.yaml @@ -16,4 +16,8 @@ spec: - ReadWriteOnce resources: requests: - storage: "8Gi" \ No newline at end of file + storage: "2000Gi" + selector: + matchLabels: + # to create 1-1 relationship for pod - persistent volume use unique labels + name: prometheus-server-pv diff --git a/gpulive/prometheus/base/prometheus/state_full_set.yaml b/gpulive/prometheus/base/prometheus/state_full_set.yaml index f02a1c6..e00e461 100644 --- a/gpulive/prometheus/base/prometheus/state_full_set.yaml +++ b/gpulive/prometheus/base/prometheus/state_full_set.yaml @@ -87,4 +87,4 @@ spec: - ReadWriteOnce resources: requests: - storage: 2Gi \ No newline at end of file + storage: 8Gi diff --git a/gpulive/prometheus/overlays/vm/kustomization.yaml b/gpulive/prometheus/overlays/vm/kustomization.yaml index 8e3646b..1e306a7 100644 --- a/gpulive/prometheus/overlays/vm/kustomization.yaml +++ b/gpulive/prometheus/overlays/vm/kustomization.yaml @@ -9,8 +9,3 @@ resources: generatorOptions: disableNameSuffixHash: true -secretGenerator: - - name: basic-auth - files: - - auth - type: Opaque diff --git a/gpulive/prometheus/overlays/vm/prometheus/patch-ingress_alertmanager.yaml b/gpulive/prometheus/overlays/vm/prometheus/patch-ingress_alertmanager.yaml index d21488b..b2df5e5 100644 --- a/gpulive/prometheus/overlays/vm/prometheus/patch-ingress_alertmanager.yaml +++ b/gpulive/prometheus/overlays/vm/prometheus/patch-ingress_alertmanager.yaml @@ -3,13 +3,6 @@ kind: Ingress metadata: name: prometheus-alertmanager-ingress namespace: monitoring - annotations: - # 인증 방법 설정: basic auth - nginx.ingress.kubernetes.io/auth-type: basic - # basic auth 사용자가 들어있는 secret 설정 - nginx.ingress.kubernetes.io/auth-secret: basic-auth - # 인증 요청시 나오는 메세지 설정 - nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin' spec: ingressClassName: nginx rules: @@ -26,4 +19,4 @@ spec: tls: - hosts: - alert.nhngpuaas.com - secretName: nhngpuaas-ssl \ No newline at end of file + secretName: nhngpuaas-ssl diff --git a/gpulive/vm-monitoring/base/prometheus/cluster_role.yaml b/gpulive/vm-monitoring/base/prometheus/cluster_role.yaml deleted file mode 100644 index abcd2d6..0000000 --- a/gpulive/vm-monitoring/base/prometheus/cluster_role.yaml +++ /dev/null @@ -1,248 +0,0 @@ -# Source: prometheus/charts/kube-state-metrics/templates/role.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - helm.sh/chart: kube-state-metrics-5.28.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: kube-state-metrics - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "2.14.0" - name: prometheus-kube-state-metrics -rules: - -- apiGroups: ["certificates.k8s.io"] - resources: - - certificatesigningrequests - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - configmaps - verbs: ["list", "watch"] - -- apiGroups: ["batch"] - resources: - - cronjobs - verbs: ["list", "watch"] - -- apiGroups: ["extensions", "apps"] - resources: - - daemonsets - verbs: ["list", "watch"] - -- apiGroups: ["extensions", "apps"] - resources: - - deployments - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - endpoints - verbs: ["list", "watch"] - -- apiGroups: ["autoscaling"] - resources: - - horizontalpodautoscalers - verbs: ["list", "watch"] - -- apiGroups: ["extensions", "networking.k8s.io"] - resources: - - ingresses - verbs: ["list", "watch"] - -- apiGroups: ["batch"] - resources: - - jobs - verbs: ["list", "watch"] - -- apiGroups: ["coordination.k8s.io"] - resources: - - leases - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - limitranges - verbs: ["list", "watch"] - -- apiGroups: ["admissionregistration.k8s.io"] - resources: - - mutatingwebhookconfigurations - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - namespaces - verbs: ["list", "watch"] - -- apiGroups: ["networking.k8s.io"] - resources: - - networkpolicies - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - nodes - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - persistentvolumeclaims - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - persistentvolumes - verbs: ["list", "watch"] - -- apiGroups: ["policy"] - resources: - - poddisruptionbudgets - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - pods - verbs: ["list", "watch"] - -- apiGroups: ["extensions", "apps"] - resources: - - replicasets - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - replicationcontrollers - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - resourcequotas - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - secrets - verbs: ["list", "watch"] - -- apiGroups: [""] - resources: - - services - verbs: ["list", "watch"] - -- apiGroups: ["apps"] - resources: - - statefulsets - verbs: ["list", "watch"] - -- apiGroups: ["storage.k8s.io"] - resources: - - storageclasses - verbs: ["list", "watch"] - -- apiGroups: ["admissionregistration.k8s.io"] - resources: - - validatingwebhookconfigurations - verbs: ["list", "watch"] - -- apiGroups: ["storage.k8s.io"] - resources: - - volumeattachments - verbs: ["list", "watch"] ---- -# Source: prometheus/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - name: prometheus-server -rules: - - apiGroups: - - "" - resources: - - nodes - - nodes/proxy - - nodes/metrics - - services - - endpoints - - pods - - ingresses - - configmaps - verbs: - - get - - list - - watch - - apiGroups: - - "extensions" - - "networking.k8s.io" - resources: - - ingresses/status - - ingresses - verbs: - - get - - list - - watch - - apiGroups: - - "discovery.k8s.io" - resources: - - endpointslices - verbs: - - get - - list - - watch - - nonResourceURLs: - - "/metrics" - verbs: - - get ---- -# Source: prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - helm.sh/chart: kube-state-metrics-5.28.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: kube-state-metrics - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "2.14.0" - name: prometheus-kube-state-metrics -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: prometheus-kube-state-metrics -subjects: -- kind: ServiceAccount - name: prometheus-kube-state-metrics - namespace: monitoring ---- -# Source: prometheus/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - name: prometheus-server -subjects: - - kind: ServiceAccount - name: prometheus-server - namespace: monitoring -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: prometheus-server \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/cm.yaml b/gpulive/vm-monitoring/base/prometheus/cm.yaml deleted file mode 100644 index a1b4135..0000000 --- a/gpulive/vm-monitoring/base/prometheus/cm.yaml +++ /dev/null @@ -1,375 +0,0 @@ -# Source: prometheus/charts/alertmanager/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: prometheus-alertmanager - labels: - helm.sh/chart: alertmanager-1.14.0 - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v0.28.0" - app.kubernetes.io/managed-by: Helm - namespace: monitoring -data: - alertmanager.yml: | - global: {} - receivers: - - name: default-receiver - route: - group_interval: 5m - group_wait: 10s - receiver: default-receiver - repeat_interval: 3h - templates: - - /etc/alertmanager/*.tmpl ---- -# Source: prometheus/templates/cm.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - name: prometheus-server - namespace: monitoring -data: - allow-snippet-annotations: "false" - alerting_rules.yml: | - {} - alerts: | - {} - prometheus.yml: | - global: - evaluation_interval: 1m - scrape_interval: 1m - scrape_timeout: 10s - rule_files: - - /etc/config/recording_rules.yml - - /etc/config/alerting_rules.yml - - /etc/config/rules - - /etc/config/alerts - scrape_configs: - - job_name: prometheus - static_configs: - - targets: - - localhost:9090 - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-apiservers - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: default;kubernetes;https - source_labels: - - __meta_kubernetes_namespace - - __meta_kubernetes_service_name - - __meta_kubernetes_endpoint_port_name - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes-cadvisor - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - honor_labels: true - job_name: kubernetes-service-endpoints - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-service-endpoints-slow - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - - honor_labels: true - job_name: prometheus-pushgateway - kubernetes_sd_configs: - - role: service - relabel_configs: - - action: keep - regex: pushgateway - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - honor_labels: true - job_name: kubernetes-services - kubernetes_sd_configs: - - role: service - metrics_path: /probe - params: - module: - - http_2xx - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - source_labels: - - __address__ - target_label: __param_target - - replacement: blackbox - target_label: __address__ - - source_labels: - - __param_target - target_label: instance - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - source_labels: - - __meta_kubernetes_service_name - target_label: service - - honor_labels: true - job_name: kubernetes-pods - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-pods-slow - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - alerting: - alertmanagers: - - kubernetes_sd_configs: - - role: pod - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - relabel_configs: - - source_labels: [__meta_kubernetes_namespace] - regex: monitoring - action: keep - - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance] - regex: prometheus - action: keep - - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name] - regex: alertmanager - action: keep - - source_labels: [__meta_kubernetes_pod_container_port_number] - regex: "9093" - action: keep - recording_rules.yml: | - {} - rules: | - {} \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/cm_custom_alert_rules.yaml b/gpulive/vm-monitoring/base/prometheus/cm_custom_alert_rules.yaml deleted file mode 100644 index bab5fee..0000000 --- a/gpulive/vm-monitoring/base/prometheus/cm_custom_alert_rules.yaml +++ /dev/null @@ -1,194 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: prometheus-rulefiles - namespace: monitoring -data: - # Awesome Prometheus alerts - ################################################################################ - # Basic resource monitoring prometheus self-monitoring - ################################################################################ - prometheus-self-monitoring.yaml: | - groups: - - name: prometheus-self-monitoring - rules: - - alert: Watchdog - annotations: - description: | - This is an alert meant to ensure that the entire alerting pipeline is functional. - This alert is always firing, therefore it should always be firing in Alertmanager - and always fire against a receiver. There are integrations with various notification - mechanisms that send a notification when this alert is not firing. For example the - "DeadMansSnitch" integration in PagerDuty. - runbook_url: https://runbooks.prometheus-operator.dev/runbooks/general/watchdog - summary: An alert that should always be firing to certify that Alertmanager - is working properly. - expr: vector(1) - labels: - severity: none - # Awesome Prometheus alerts - ################################################################################ - # Basic resource monitoring host and hardware (node-export) - ################################################################################ - prometheus-host-hardware.yaml: | - groups: - - name: prometheus-host-hardware - rules: - - alert: HostOutOfMemory (1.2.01) - expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10 - for: 2m - labels: - severity: warning - annotations: - summary: Host out of memory (instance {{ $labels.instance }}) - description: "Node memory is filling up (< 10% left)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: HostOutOfDiskSpace (1.2.07) - expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) node_filesystem_readonly == 0 - for: 2m - labels: - severity: warning - annotations: - summary: Host out of disk space (instance {{ $labels.instance }}) - description: "Disk is almost full (< 10% left)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - # Please add ignored mountpoints in node_exporter parameters like - # "--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|run)($|/)". - # Same rule using "node_filesystem_free_bytes" will fire when disk fills for non-root users. - - alert: HostHighCpuLoad (1.2.13) - expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 80 - for: 0m - labels: - severity: warning - annotations: - summary: Host high CPU load (instance {{ $labels.instance }}) - description: "CPU load is > 80%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: HostOomKillDetected (1.2.24) - expr: increase(node_vmstat_oom_kill[1m]) > 0 - for: 0m - labels: - severity: warning - annotations: - summary: Host OOM kill detected (instance {{ $labels.instance }}) - description: "OOM kill detected\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - # Awesome Prometheus alerts - ################################################################################ - # Basic resource monitoring docker container (google/cAdvisor) - ################################################################################ - Prometheus-docker-containers.yaml: | - groups: - - name: prometheus-docker-containers - rules: - # This rule can be very noisy in dynamic infra with legitimate container start/stop/deployment. - - alert: ContainerKilled (1.3.1) - expr: time() - container_last_seen > 60 - for: 0m - labels: - severity: warning - annotations: - summary: Container killed (instance {{ $labels.instance }}) - description: "A container has disappeared\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - # This rule can be very noisy in dynamic infra with legitimate container start/stop/deployment. - - alert: ContainerCpuUsage (1.3.3) - expr: (sum(rate(container_cpu_usage_seconds_total{name!=""}[3m])) BY (instance, name) * 100) > 80 - for: 2m - labels: - severity: warning - annotations: - summary: Container CPU usage (instance {{ $labels.instance }}) - description: "Container CPU usage is above 80%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - # See https://medium.com/faun/how-much-is-too-much-the-linux-oomkiller-and-used-memory-d32186f29c9d - - alert: ContainerMemoryUsage (1.3.4) - expr: (sum(container_memory_working_set_bytes{name!=""}) BY (instance, name) / sum(container_spec_memory_limit_bytes > 0) BY (instance, name) * 100) > 80 - for: 2m - labels: - severity: warning - annotations: - summary: Container Memory usage (instance {{ $labels.instance }}) - description: "Container Memory usage is above 80%\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - # Awesome Prometheus alerts - ################################################################################ - # Orchestrators kubernetes (kube-state-metrics) - ################################################################################ - prometheus-kubernetes.yaml: | - groups: - - name: prometheus-kubernetes - rules: - - alert: KubernetesNodeReady (5.1.01) - expr: kube_node_status_condition{condition="Ready",status="true"} == 0 - for: 10m - labels: - severity: critical - annotations: - summary: Kubernetes Node ready (instance {{ $labels.instance }}) - description: "Node {{ $labels.node }} has been unready for a long time\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesOutOfDisk (5.1.04) - expr: kube_node_status_condition{condition="OutOfDisk",status="true"} == 1 - for: 2m - labels: - severity: critical - annotations: - summary: Kubernetes out of disk (instance {{ $labels.instance }}) - description: "{{ $labels.node }} has OutOfDisk condition\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesContainerOomKiller (5.1.06) - expr: (kube_pod_container_status_restarts_total - kube_pod_container_status_restarts_total offset 10m >= 1) and ignoring (reason) min_over_time(kube_pod_container_status_last_terminated_reason{reason="OOMKilled"}[10m]) == 1 - for: 0m - labels: - severity: warning - annotations: - summary: Kubernetes container oom killer (instance {{ $labels.instance }}) - description: "Container {{ $labels.container }} in pod {{ $labels.namespace }}/{{ $labels.pod }} has been OOMKilled {{ $value }} times in the last 10 minutes.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesVolumeOutOfDiskSpace (5.1.10) - expr: kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes * 100 < 10 - for: 2m - labels: - severity: warning - annotations: - summary: Kubernetes Volume out of disk space (instance {{ $labels.instance }}) - description: "Volume is almost full (< 10% left)\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesPersistentvolumeError (5.1.12) - expr: kube_persistentvolume_status_phase{phase=~"Failed|Pending", job="kube-state-metrics"} > 0 - for: 0m - labels: - severity: critical - annotations: - summary: Kubernetes PersistentVolume error (instance {{ $labels.instance }}) - description: "Persistent volume is in bad state\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesHpaScaleCapability (5.1.16) - expr: kube_horizontalpodautoscaler_status_desired_replicas >= kube_horizontalpodautoscaler_spec_max_replicas - for: 2m - labels: - severity: info - annotations: - summary: Kubernetes HPA scale capability (instance {{ $labels.instance }}) - description: "The maximum number of desired Pods has been hit\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesPodNotHealthy (5.1.17) - expr: min_over_time(sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[15m:1m]) > 0 - for: 0m - labels: - severity: critical - annotations: - summary: Kubernetes Pod not healthy (instance {{ $labels.instance }}) - description: "Pod has been in a non-ready state for longer than 15 minutes.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesPodCrashLooping (5.1.18) - expr: increase(kube_pod_container_status_restarts_total[1m]) > 3 - for: 2m - labels: - severity: warning - annotations: - summary: Kubernetes pod crash looping (instance {{ $labels.instance }}) - description: "Pod {{ $labels.pod }} is crash looping\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesApiServerErrors (5.1.29) - expr: sum(rate(apiserver_request_total{job="apiserver",code=~"^(?:5..)$"}[1m])) / sum(rate(apiserver_request_total{job="apiserver"}[1m])) * 100 > 3 - for: 2m - labels: - severity: critical - annotations: - summary: Kubernetes API server errors (instance {{ $labels.instance }}) - description: "Kubernetes API server is experiencing high error rate\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - - alert: KubernetesClientCertificateExpiresSoon (5.1.32) - expr: apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 24*60*60 - for: 0m - labels: - severity: critical - annotations: - summary: Kubernetes client certificate expires soon (instance {{ $labels.instance }}) - description: "A client certificate used to authenticate to the apiserver is expiring in less than 24.0 hours.\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/daemonset.yaml b/gpulive/vm-monitoring/base/prometheus/daemonset.yaml deleted file mode 100644 index 53d3288..0000000 --- a/gpulive/vm-monitoring/base/prometheus/daemonset.yaml +++ /dev/null @@ -1,135 +0,0 @@ -# Source: prometheus/charts/prometheus-node-exporter/templates/daemonset.yaml -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: prometheus-prometheus-node-exporter - namespace: monitoring - labels: - helm.sh/chart: prometheus-node-exporter-4.43.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: prometheus-node-exporter - app.kubernetes.io/name: prometheus-node-exporter - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "1.8.2" -spec: - selector: - matchLabels: - app.kubernetes.io/name: prometheus-node-exporter - app.kubernetes.io/instance: prometheus - revisionHistoryLimit: 10 - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - template: - metadata: - annotations: - cluster-autoscaler.kubernetes.io/safe-to-evict: "true" - labels: - helm.sh/chart: prometheus-node-exporter-4.43.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: prometheus-node-exporter - app.kubernetes.io/name: prometheus-node-exporter - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "1.8.2" - spec: - automountServiceAccountToken: false - securityContext: - fsGroup: 65534 - runAsGroup: 65534 - runAsNonRoot: true - runAsUser: 65534 - serviceAccountName: prometheus-prometheus-node-exporter - containers: - - name: node-exporter - image: quay.io/prometheus/node-exporter:v1.8.2 - imagePullPolicy: Always - args: - - --path.procfs=/host/proc - - --path.sysfs=/host/sys - - --path.rootfs=/host/root - - --path.udev.data=/host/root/run/udev/data - - --web.listen-address=[$(HOST_IP)]:9100 - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - env: - - name: HOST_IP - value: 0.0.0.0 - ports: - - name: metrics - containerPort: 9100 - protocol: TCP - livenessProbe: - failureThreshold: 3 - httpGet: - httpHeaders: - path: / - port: 9100 - scheme: HTTP - initialDelaySeconds: 0 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - readinessProbe: - failureThreshold: 3 - httpGet: - httpHeaders: - path: / - port: 9100 - scheme: HTTP - initialDelaySeconds: 0 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - volumeMounts: - - name: proc - mountPath: /host/proc - readOnly: true - - name: sys - mountPath: /host/sys - readOnly: true - - name: root - mountPath: /host/root - mountPropagation: HostToContainer - readOnly: true - resources: - requests: - cpu: 50m - memory: 50Mi - limits: - cpu: 100m - memory: 100Mi - hostNetwork: true - hostPID: true - hostIPC: false - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: eks.amazonaws.com/compute-type - operator: NotIn - values: - - fargate - - key: type - operator: NotIn - values: - - virtual-kubelet - nodeSelector: - kubernetes.io/os: linux - tolerations: - - effect: NoSchedule - operator: Exists - volumes: - - name: proc - hostPath: - path: /proc - - name: sys - hostPath: - path: /sys - - name: root - hostPath: - path: / \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/deploy.yaml b/gpulive/vm-monitoring/base/prometheus/deploy.yaml deleted file mode 100644 index 89ae67d..0000000 --- a/gpulive/vm-monitoring/base/prometheus/deploy.yaml +++ /dev/null @@ -1,290 +0,0 @@ -# Source: prometheus/charts/kube-state-metrics/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: prometheus-kube-state-metrics - namespace: monitoring - labels: - helm.sh/chart: kube-state-metrics-5.28.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: kube-state-metrics - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "2.14.0" -spec: - selector: - matchLabels: - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus - replicas: 1 - strategy: - type: RollingUpdate - revisionHistoryLimit: 10 - template: - metadata: - labels: - helm.sh/chart: kube-state-metrics-5.28.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: kube-state-metrics - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "2.14.0" - spec: - nodeSelector: - nodegroup: nd - automountServiceAccountToken: true - hostNetwork: false - serviceAccountName: prometheus-kube-state-metrics - securityContext: - fsGroup: 65534 - runAsGroup: 65534 - runAsNonRoot: true - runAsUser: 65534 - seccompProfile: - type: RuntimeDefault - containers: - - name: kube-state-metrics - args: - - --port=8080 - - --resources=certificatesigningrequests,configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,ingresses,jobs,leases,limitranges,mutatingwebhookconfigurations,namespaces,networkpolicies,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,pods,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets,storageclasses,validatingwebhookconfigurations,volumeattachments - imagePullPolicy: Always - image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.14.0 - ports: - - containerPort: 8080 - name: "http" - livenessProbe: - failureThreshold: 3 - httpGet: - httpHeaders: - path: /livez - port: 8080 - scheme: HTTP - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - readinessProbe: - failureThreshold: 3 - httpGet: - httpHeaders: - path: /readyz - port: 8081 - scheme: HTTP - initialDelaySeconds: 5 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - resources: - requests: - cpu: 50m - memory: 125Mi - limits: - cpu: 100m - memory: 250Mi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true ---- -# Source: prometheus/charts/prometheus-pushgateway/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - helm.sh/chart: prometheus-pushgateway-2.17.0 - app.kubernetes.io/name: prometheus-pushgateway - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v1.11.0" - app.kubernetes.io/managed-by: Helm - name: prometheus-prometheus-pushgateway - namespace: monitoring -spec: - replicas: 1 - strategy: - type: Recreate - selector: - matchLabels: - app.kubernetes.io/name: prometheus-pushgateway - app.kubernetes.io/instance: prometheus - template: - metadata: - labels: - helm.sh/chart: prometheus-pushgateway-2.17.0 - app.kubernetes.io/name: prometheus-pushgateway - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v1.11.0" - app.kubernetes.io/managed-by: Helm - spec: - nodeSelector: - nodegroup: nd - serviceAccountName: prometheus-prometheus-pushgateway - automountServiceAccountToken: true - containers: - - name: pushgateway - image: "quay.io/prometheus/pushgateway:v1.11.0" - imagePullPolicy: Always - ports: - - name: metrics - containerPort: 9091 - protocol: TCP - livenessProbe: - httpGet: - path: /-/healthy - port: 9091 - initialDelaySeconds: 10 - timeoutSeconds: 10 - readinessProbe: - httpGet: - path: /-/ready - port: 9091 - initialDelaySeconds: 10 - timeoutSeconds: 10 - volumeMounts: - - name: storage-volume - mountPath: "/data" - subPath: "" - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 200m - memory: 512Mi - securityContext: - fsGroup: 65534 - runAsNonRoot: true - runAsUser: 65534 - volumes: - - name: storage-volume - emptyDir: {} ---- -# Source: prometheus/templates/deploy.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - name: prometheus-server - namespace: monitoring -spec: - selector: - matchLabels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - replicas: 1 - revisionHistoryLimit: 10 - strategy: - type: Recreate - rollingUpdate: null - template: - metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - spec: - nodeSelector: - nodegroup: nd - enableServiceLinks: true - serviceAccountName: prometheus-server - containers: - - name: prometheus-server-configmap-reload - image: "quay.io/prometheus-operator/prometheus-config-reloader:v0.79.2" - imagePullPolicy: "Always" - args: - - --watched-dir=/etc/config - - --listen-address=0.0.0.0:8080 - - --reload-url=http://127.0.0.1:9090/-/reload - ports: - - containerPort: 8080 - name: metrics - livenessProbe: - httpGet: - path: /healthz - port: metrics - scheme: HTTP - initialDelaySeconds: 2 - periodSeconds: 10 - readinessProbe: - httpGet: - path: /healthz - port: metrics - scheme: HTTP - periodSeconds: 10 - volumeMounts: - - name: config-volume - mountPath: /etc/config - readOnly: true - - - name: prometheus-server - image: "quay.io/prometheus/prometheus:v3.1.0" - imagePullPolicy: "Always" - args: - - --storage.tsdb.retention.time=15d - - --config.file=/etc/config/prometheus.yml - - --storage.tsdb.path=/data - - --web.console.libraries=/etc/prometheus/console_libraries - - --web.console.templates=/etc/prometheus/consoles - - --web.enable-lifecycle - ports: - - containerPort: 9090 - readinessProbe: - httpGet: - path: /-/ready - port: 9090 - scheme: HTTP - initialDelaySeconds: 30 - periodSeconds: 5 - timeoutSeconds: 4 - failureThreshold: 3 - successThreshold: 1 - livenessProbe: - httpGet: - path: /-/healthy - port: 9090 - scheme: HTTP - initialDelaySeconds: 30 - periodSeconds: 15 - timeoutSeconds: 10 - failureThreshold: 3 - successThreshold: 1 - volumeMounts: - - name: config-volume - mountPath: /etc/config - - name: storage-volume - mountPath: /data - subPath: "" - resources: - requests: - cpu: 500m - memory: 2Gi - limits: - cpu: 1050m - memory: 4Gi - dnsPolicy: ClusterFirst - securityContext: - fsGroup: 65534 - runAsGroup: 65534 - runAsNonRoot: true - runAsUser: 65534 - terminationGracePeriodSeconds: 300 - volumes: - - name: config-volume - configMap: - name: prometheus-server - - name: storage-volume - persistentVolumeClaim: - claimName: prometheus-server \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/ingress_alertmanager.yaml b/gpulive/vm-monitoring/base/prometheus/ingress_alertmanager.yaml deleted file mode 100644 index 87afe8d..0000000 --- a/gpulive/vm-monitoring/base/prometheus/ingress_alertmanager.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: prometheus-alertmanager-ingress - namespace: monitoring - annotations: - # 인증 방법 설정: basic auth - nginx.ingress.kubernetes.io/auth-type: basic - # basic auth 사용자가 들어있는 secret 설정 - nginx.ingress.kubernetes.io/auth-secret: basic-auth - # 인증 요청시 나오는 메세지 설정 - nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin' -spec: - ingressClassName: nginx - rules: - - host: alert.cone-chain.com - http: - paths: - - backend: - service: - name: prometheus-alertmanager - port: - number: 9093 - path: / - pathType: Prefix - tls: - - hosts: - - prometheus.cone-chain.com - secretName: ssl-cc \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/ingress_prometheus.yaml b/gpulive/vm-monitoring/base/prometheus/ingress_prometheus.yaml deleted file mode 100644 index c56bae2..0000000 --- a/gpulive/vm-monitoring/base/prometheus/ingress_prometheus.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: prometheus-ingress - namespace: monitoring - annotations: - # 인증 방법 설정: basic auth - nginx.ingress.kubernetes.io/auth-type: basic - # basic auth 사용자가 들어있는 secret 설정 - nginx.ingress.kubernetes.io/auth-secret: basic-auth - # 인증 요청시 나오는 메세지 설정 - nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin' -spec: - ingressClassName: nginx - rules: - - host: prometheus.cone-chain.com - http: - paths: - - backend: - service: - name: prometheus-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - prometheus.cone-chain.com - secretName: ssl-cc \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/kustomization.yaml b/gpulive/vm-monitoring/base/prometheus/kustomization.yaml deleted file mode 100644 index 027f1b7..0000000 --- a/gpulive/vm-monitoring/base/prometheus/kustomization.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -namespace: monitoring - -resources: - - namespace.yaml - - sa.yaml - - cluster_role.yaml - - cm.yaml - - deploy.yaml - - daemonset.yaml - - pvc.yaml - - service.yaml - - state_full_set.yaml - # - secret.yaml - - ingress_alertmanager.yaml - - ingress_prometheus.yaml - - cm_custom_alert_rules.yaml diff --git a/gpulive/vm-monitoring/base/prometheus/namespace.yaml b/gpulive/vm-monitoring/base/prometheus/namespace.yaml deleted file mode 100644 index 07aaec3..0000000 --- a/gpulive/vm-monitoring/base/prometheus/namespace.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: monitoring - labels: - kubernetes.io/metadata.name: monitoring \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/pvc.yaml b/gpulive/vm-monitoring/base/prometheus/pvc.yaml deleted file mode 100644 index 70a8a29..0000000 --- a/gpulive/vm-monitoring/base/prometheus/pvc.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Source: prometheus/templates/pvc.yaml -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - name: prometheus-server - namespace: monitoring -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: "8Gi" \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/sa.yaml b/gpulive/vm-monitoring/base/prometheus/sa.yaml deleted file mode 100644 index 2bfde38..0000000 --- a/gpulive/vm-monitoring/base/prometheus/sa.yaml +++ /dev/null @@ -1,76 +0,0 @@ ---- -# Source: prometheus/charts/alertmanager/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: prometheus-alertmanager - labels: - helm.sh/chart: alertmanager-1.14.0 - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v0.28.0" - app.kubernetes.io/managed-by: Helm - namespace: monitoring -automountServiceAccountToken: true ---- -# Source: prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -automountServiceAccountToken: true -metadata: - labels: - helm.sh/chart: kube-state-metrics-5.28.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: kube-state-metrics - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "2.14.0" - name: prometheus-kube-state-metrics - namespace: monitoring ---- -# Source: prometheus/charts/prometheus-node-exporter/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: prometheus-prometheus-node-exporter - namespace: monitoring - labels: - helm.sh/chart: prometheus-node-exporter-4.43.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: prometheus-node-exporter - app.kubernetes.io/name: prometheus-node-exporter - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "1.8.2" -automountServiceAccountToken: false ---- -# Source: prometheus/charts/prometheus-pushgateway/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - helm.sh/chart: prometheus-pushgateway-2.17.0 - app.kubernetes.io/name: prometheus-pushgateway - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v1.11.0" - app.kubernetes.io/managed-by: Helm - name: prometheus-prometheus-pushgateway - namespace: monitoring -automountServiceAccountToken: true ---- -# Source: prometheus/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - name: prometheus-server - namespace: monitoring - annotations: - {} \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/service.yaml b/gpulive/vm-monitoring/base/prometheus/service.yaml deleted file mode 100644 index 7c4cace..0000000 --- a/gpulive/vm-monitoring/base/prometheus/service.yaml +++ /dev/null @@ -1,151 +0,0 @@ -# Source: prometheus/charts/alertmanager/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - name: prometheus-alertmanager - labels: - helm.sh/chart: alertmanager-1.14.0 - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v0.28.0" - app.kubernetes.io/managed-by: Helm - namespace: monitoring -spec: - type: ClusterIP - ports: - - port: 9093 - targetPort: http - protocol: TCP - name: http - selector: - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus ---- -# Source: prometheus/charts/alertmanager/templates/services.yaml -apiVersion: v1 -kind: Service -metadata: - name: prometheus-alertmanager-headless - labels: - helm.sh/chart: alertmanager-1.14.0 - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v0.28.0" - app.kubernetes.io/managed-by: Helm - namespace: monitoring -spec: - clusterIP: None - ports: - - port: 9093 - targetPort: http - protocol: TCP - name: http - selector: - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus ---- -# Source: prometheus/charts/kube-state-metrics/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: prometheus-kube-state-metrics - namespace: monitoring - labels: - helm.sh/chart: kube-state-metrics-5.28.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: kube-state-metrics - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "2.14.0" - annotations: - prometheus.io/scrape: 'true' -spec: - type: "ClusterIP" - ports: - - name: "http" - protocol: TCP - port: 8080 - targetPort: 8080 - - selector: - app.kubernetes.io/name: kube-state-metrics - app.kubernetes.io/instance: prometheus ---- -# Source: prometheus/charts/prometheus-node-exporter/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: prometheus-prometheus-node-exporter - namespace: monitoring - labels: - helm.sh/chart: prometheus-node-exporter-4.43.1 - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/component: metrics - app.kubernetes.io/part-of: prometheus-node-exporter - app.kubernetes.io/name: prometheus-node-exporter - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "1.8.2" - annotations: - prometheus.io/scrape: "true" -spec: - type: ClusterIP - ports: - - port: 9100 - targetPort: 9100 - protocol: TCP - name: metrics - selector: - app.kubernetes.io/name: prometheus-node-exporter - app.kubernetes.io/instance: prometheus ---- -# Source: prometheus/charts/prometheus-pushgateway/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - annotations: - prometheus.io/probe: pushgateway - labels: - helm.sh/chart: prometheus-pushgateway-2.17.0 - app.kubernetes.io/name: prometheus-pushgateway - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v1.11.0" - app.kubernetes.io/managed-by: Helm - name: prometheus-prometheus-pushgateway - namespace: monitoring -spec: - type: ClusterIP - ports: - - port: 9091 - targetPort: 9091 - protocol: TCP - name: http - selector: - app.kubernetes.io/name: prometheus-pushgateway - app.kubernetes.io/instance: prometheus ---- -# Source: prometheus/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: v3.1.0 - helm.sh/chart: prometheus-27.3.1 - app.kubernetes.io/part-of: prometheus - name: prometheus-server - namespace: monitoring -spec: - ports: - - name: http - port: 80 - protocol: TCP - targetPort: 9090 - selector: - app.kubernetes.io/component: server - app.kubernetes.io/name: prometheus - app.kubernetes.io/instance: prometheus - sessionAffinity: None - type: "ClusterIP" \ No newline at end of file diff --git a/gpulive/vm-monitoring/base/prometheus/state_full_set.yaml b/gpulive/vm-monitoring/base/prometheus/state_full_set.yaml deleted file mode 100644 index f02a1c6..0000000 --- a/gpulive/vm-monitoring/base/prometheus/state_full_set.yaml +++ /dev/null @@ -1,90 +0,0 @@ -# Source: prometheus/charts/alertmanager/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: prometheus-alertmanager - labels: - helm.sh/chart: alertmanager-1.14.0 - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus - app.kubernetes.io/version: "v0.28.0" - app.kubernetes.io/managed-by: Helm - namespace: monitoring -spec: - replicas: 1 - minReadySeconds: 0 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus - serviceName: prometheus-alertmanager-headless - template: - metadata: - labels: - app.kubernetes.io/name: alertmanager - app.kubernetes.io/instance: prometheus - spec: - nodeSelector: - nodegroup: nd - automountServiceAccountToken: true - serviceAccountName: prometheus-alertmanager - securityContext: - fsGroup: 65534 - runAsGroup: 65534 - runAsNonRoot: true - runAsUser: 65534 - containers: - - name: alertmanager - securityContext: - runAsGroup: 65534 - runAsNonRoot: true - runAsUser: 65534 - image: "quay.io/prometheus/alertmanager:v0.28.0" - imagePullPolicy: Always - env: - - name: POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - args: - - --storage.path=/alertmanager - - --config.file=/etc/alertmanager/alertmanager.yml - ports: - - name: http - containerPort: 9093 - protocol: TCP - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http - resources: - requests: - cpu: 200m - memory: 512Mi - limits: - cpu: 200m - memory: 512Mi - volumeMounts: - - name: config - mountPath: /etc/alertmanager - - name: storage - mountPath: /alertmanager - volumes: - - name: config - configMap: - name: prometheus-alertmanager - volumeClaimTemplates: - - metadata: - name: storage - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2Gi \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/default/auth b/gpulive/vm-monitoring/overlays/default/auth deleted file mode 100644 index cb0bcdd..0000000 --- a/gpulive/vm-monitoring/overlays/default/auth +++ /dev/null @@ -1 +0,0 @@ -admin:$apr1$JIoWDh3p$Mo4E8nEh3beHp9n1IRjmc/ diff --git a/gpulive/vm-monitoring/overlays/default/grafana/kustomization.yaml b/gpulive/vm-monitoring/overlays/default/grafana/kustomization.yaml deleted file mode 100644 index 2f05aa9..0000000 --- a/gpulive/vm-monitoring/overlays/default/grafana/kustomization.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: - - ../../../base/grafana - -namespace: monitoring - -patches: - - target: - kind: ConfigMap - name: grafana - namespace: monitoring - path: patch-cm.yaml - - target: - kind: Secret - name: grafana - namespace: monitoring - path: patch-secret.yaml - - target: - kind: Deployment - name: grafana - namespace: monitoring - path: patch-deploy.yaml - - target: - kind: Ingress - name: grafana-ingress - namespace: monitoring - path: patch-ingress_grafana.yaml \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/default/grafana/patch-cm.yaml b/gpulive/vm-monitoring/overlays/default/grafana/patch-cm.yaml deleted file mode 100644 index 2019016..0000000 --- a/gpulive/vm-monitoring/overlays/default/grafana/patch-cm.yaml +++ /dev/null @@ -1,32 +0,0 @@ -# 도메인 정보 변경 필요. -apiVersion: v1 -kind: ConfigMap -metadata: - name: grafana - namespace: monitoring - labels: - helm.sh/chart: grafana-8.10.0 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: grafana - app.kubernetes.io/version: "11.5.1" -data: - - grafana.ini: | - [analytics] - check_for_updates = true - [grafana_net] - url = https://grafana.net - [log] - mode = console - [paths] - data = /var/lib/grafana/ - logs = /var/log/grafana - plugins = /var/lib/grafana/plugins - provisioning = /etc/grafana/provisioning - [server] - domain = 'grafana.nhngpuaas.com' - root_url = 'https://grafana.nhngpuaas.com' - [auth.anonymous] - enabled = true - org_name = Main Org. - org_role = Viewer diff --git a/gpulive/vm-monitoring/overlays/default/grafana/patch-ingress_grafana.yaml b/gpulive/vm-monitoring/overlays/default/grafana/patch-ingress_grafana.yaml deleted file mode 100644 index 6839329..0000000 --- a/gpulive/vm-monitoring/overlays/default/grafana/patch-ingress_grafana.yaml +++ /dev/null @@ -1,24 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: grafana-ingress - namespace: monitoring -spec: - ingressClassName: nginx - rules: - - host: grafana.nhngpuaas.com - http: - paths: - - backend: - service: - name: grafana - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - grafana.nhngpuaas.com - secretName: nhngpuaas-ssl - - \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/default/kustomization.yaml b/gpulive/vm-monitoring/overlays/default/kustomization.yaml deleted file mode 100644 index 09bb902..0000000 --- a/gpulive/vm-monitoring/overlays/default/kustomization.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Prometheus에 종속적으로 설치 -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -namespace: monitoring - -resources: - - prometheus - - grafana - -generatorOptions: - disableNameSuffixHash: true -secretGenerator: - - name: basic-auth - files: - - auth - type: Opaque \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/default/prometheus/kustomization.yaml b/gpulive/vm-monitoring/overlays/default/prometheus/kustomization.yaml deleted file mode 100644 index 1d35c34..0000000 --- a/gpulive/vm-monitoring/overlays/default/prometheus/kustomization.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: -- ../../../base/prometheus - -namespace: monitoring - -patches: - - target: - kind: ConfigMap - name: prometheus-server - namespace: monitoring - path: patch-cm-prometheus-server.yaml - - target: - kind: Deployment - name: prometheus-server - namespace: monitoring - path: patch-deploy.yaml - - target: - kind: Ingress - name: prometheus-ingress - namespace: monitoring - path: patch-ingress_prometheus.yaml - - target: - kind: Ingress - name: prometheus-alertmanager-ingress - namespace: monitoring - path: patch-ingress_alertmanager.yaml - # - target: - # kind: Secret - # name: basic-auth - # namespace: monitoring - # path: patch-basic-auth.yaml diff --git a/gpulive/vm-monitoring/overlays/default/prometheus/patch-cm-prometheus-server.yaml b/gpulive/vm-monitoring/overlays/default/prometheus/patch-cm-prometheus-server.yaml deleted file mode 100644 index b684a13..0000000 --- a/gpulive/vm-monitoring/overlays/default/prometheus/patch-cm-prometheus-server.yaml +++ /dev/null @@ -1,335 +0,0 @@ -# - "/etc/config/rules/*.yaml" # 수정대상 -# - "/etc/config/alerts/*.yaml" # 수정대상 -apiVersion: v1 -kind: ConfigMap -metadata: - name: prometheus-server - namespace: monitoring -data: - prometheus.yml: | - global: - evaluation_interval: 1m - scrape_interval: 1m - scrape_timeout: 10s - rule_files: - - /etc/config/recording_rules.yml - - /etc/config/alerting_rules.yml - - "/etc/config/rules/*.yaml" - - "/etc/config/alerts/*.yaml" - scrape_configs: - - job_name: prometheus - static_configs: - - targets: - - localhost:9090 - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-apiservers - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: default;kubernetes;https - source_labels: - - __meta_kubernetes_namespace - - __meta_kubernetes_service_name - - __meta_kubernetes_endpoint_port_name - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes-cadvisor - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - honor_labels: true - job_name: kubernetes-service-endpoints - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-service-endpoints-slow - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - - honor_labels: true - job_name: prometheus-pushgateway - kubernetes_sd_configs: - - role: service - relabel_configs: - - action: keep - regex: pushgateway - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - honor_labels: true - job_name: kubernetes-services - kubernetes_sd_configs: - - role: service - metrics_path: /probe - params: - module: - - http_2xx - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - source_labels: - - __address__ - target_label: __param_target - - replacement: blackbox - target_label: __address__ - - source_labels: - - __param_target - target_label: instance - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - source_labels: - - __meta_kubernetes_service_name - target_label: service - - honor_labels: true - job_name: kubernetes-pods - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-pods-slow - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - alerting: - alertmanagers: - - kubernetes_sd_configs: - - role: pod - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - relabel_configs: - - source_labels: [__meta_kubernetes_namespace] - regex: monitoring - action: keep - - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance] - regex: prometheus - action: keep - - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name] - regex: alertmanager - action: keep - - source_labels: [__meta_kubernetes_pod_container_port_number] - regex: "9093" - action: keep diff --git a/gpulive/vm-monitoring/overlays/default/prometheus/patch-deploy.yaml b/gpulive/vm-monitoring/overlays/default/prometheus/patch-deploy.yaml deleted file mode 100644 index 1758854..0000000 --- a/gpulive/vm-monitoring/overlays/default/prometheus/patch-deploy.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Source: prometheus/templates/deploy.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: prometheus-server - namespace: monitoring -spec: - template: - spec: - containers: - - name: prometheus-server - volumeMounts: - - mountPath: /etc/config/alerts - name: config-volume2 - volumes: - - configMap: - defaultMode: 420 - name: prometheus-rulefiles - name: config-volume2 \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_alertmanager.yaml b/gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_alertmanager.yaml deleted file mode 100644 index d21488b..0000000 --- a/gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_alertmanager.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: prometheus-alertmanager-ingress - namespace: monitoring - annotations: - # 인증 방법 설정: basic auth - nginx.ingress.kubernetes.io/auth-type: basic - # basic auth 사용자가 들어있는 secret 설정 - nginx.ingress.kubernetes.io/auth-secret: basic-auth - # 인증 요청시 나오는 메세지 설정 - nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin' -spec: - ingressClassName: nginx - rules: - - host: alert.nhngpuaas.com - http: - paths: - - backend: - service: - name: prometheus-alertmanager - port: - number: 9093 - path: / - pathType: Prefix - tls: - - hosts: - - alert.nhngpuaas.com - secretName: nhngpuaas-ssl \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_prometheus.yaml b/gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_prometheus.yaml deleted file mode 100644 index c03f487..0000000 --- a/gpulive/vm-monitoring/overlays/default/prometheus/patch-ingress_prometheus.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: prometheus-ingress - namespace: monitoring -spec: - ingressClassName: nginx - rules: - - host: prometheus.nhngpuaas.com - http: - paths: - - backend: - service: - name: prometheus-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - prometheus.nhngpuaas.com - secretName: nhngpuaas-ssl diff --git a/gpulive/vm-monitoring/overlays/vm/auth b/gpulive/vm-monitoring/overlays/vm/auth deleted file mode 100644 index cb0bcdd..0000000 --- a/gpulive/vm-monitoring/overlays/vm/auth +++ /dev/null @@ -1 +0,0 @@ -admin:$apr1$JIoWDh3p$Mo4E8nEh3beHp9n1IRjmc/ diff --git a/gpulive/vm-monitoring/overlays/vm/grafana/patch-deploy.yaml b/gpulive/vm-monitoring/overlays/vm/grafana/patch-deploy.yaml deleted file mode 100644 index 5d3f468..0000000 --- a/gpulive/vm-monitoring/overlays/vm/grafana/patch-deploy.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# Source: grafana/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: grafana - namespace: monitoring -spec: - template: - spec: - containers: - - name: grafana - volumeMounts: - - name: storage - mountPath: "/var/lib/grafana" - volumes: - - name: storage - persistentVolumeClaim: - claimName: grafana-pvc - # - name: storage - # emptyDir: {} \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/vm/grafana/patch-secret.yaml b/gpulive/vm-monitoring/overlays/vm/grafana/patch-secret.yaml deleted file mode 100644 index c4f40c6..0000000 --- a/gpulive/vm-monitoring/overlays/vm/grafana/patch-secret.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -# Source: grafana/templates/secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: grafana - namespace: monitoring - labels: - helm.sh/chart: grafana-8.10.0 - app.kubernetes.io/name: grafana - app.kubernetes.io/instance: grafana - app.kubernetes.io/version: "11.5.1" -type: Opaque -data: - admin-user: "YWRtaW4=" - admin-password: "bmhuIUAjMTIz" - # ldap-toml: "" \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/vm/prometheus/kustomization.yaml b/gpulive/vm-monitoring/overlays/vm/prometheus/kustomization.yaml deleted file mode 100644 index 1d35c34..0000000 --- a/gpulive/vm-monitoring/overlays/vm/prometheus/kustomization.yaml +++ /dev/null @@ -1,34 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization - -resources: -- ../../../base/prometheus - -namespace: monitoring - -patches: - - target: - kind: ConfigMap - name: prometheus-server - namespace: monitoring - path: patch-cm-prometheus-server.yaml - - target: - kind: Deployment - name: prometheus-server - namespace: monitoring - path: patch-deploy.yaml - - target: - kind: Ingress - name: prometheus-ingress - namespace: monitoring - path: patch-ingress_prometheus.yaml - - target: - kind: Ingress - name: prometheus-alertmanager-ingress - namespace: monitoring - path: patch-ingress_alertmanager.yaml - # - target: - # kind: Secret - # name: basic-auth - # namespace: monitoring - # path: patch-basic-auth.yaml diff --git a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-cm-prometheus-server.yaml b/gpulive/vm-monitoring/overlays/vm/prometheus/patch-cm-prometheus-server.yaml deleted file mode 100644 index b684a13..0000000 --- a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-cm-prometheus-server.yaml +++ /dev/null @@ -1,335 +0,0 @@ -# - "/etc/config/rules/*.yaml" # 수정대상 -# - "/etc/config/alerts/*.yaml" # 수정대상 -apiVersion: v1 -kind: ConfigMap -metadata: - name: prometheus-server - namespace: monitoring -data: - prometheus.yml: | - global: - evaluation_interval: 1m - scrape_interval: 1m - scrape_timeout: 10s - rule_files: - - /etc/config/recording_rules.yml - - /etc/config/alerting_rules.yml - - "/etc/config/rules/*.yaml" - - "/etc/config/alerts/*.yaml" - scrape_configs: - - job_name: prometheus - static_configs: - - targets: - - localhost:9090 - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-apiservers - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: default;kubernetes;https - source_labels: - - __meta_kubernetes_namespace - - __meta_kubernetes_service_name - - __meta_kubernetes_endpoint_port_name - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - job_name: kubernetes-nodes-cadvisor - kubernetes_sd_configs: - - role: node - relabel_configs: - - action: labelmap - regex: __meta_kubernetes_node_label_(.+) - - replacement: kubernetes.default.svc:443 - target_label: __address__ - - regex: (.+) - replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor - source_labels: - - __meta_kubernetes_node_name - target_label: __metrics_path__ - scheme: https - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - honor_labels: true - job_name: kubernetes-service-endpoints - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-service-endpoints-slow - kubernetes_sd_configs: - - role: endpoints - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (.+?)(?::\d+)?;(\d+) - replacement: $1:$2 - source_labels: - - __address__ - - __meta_kubernetes_service_annotation_prometheus_io_port - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_service_name - target_label: service - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - - honor_labels: true - job_name: prometheus-pushgateway - kubernetes_sd_configs: - - role: service - relabel_configs: - - action: keep - regex: pushgateway - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - honor_labels: true - job_name: kubernetes-services - kubernetes_sd_configs: - - role: service - metrics_path: /probe - params: - module: - - http_2xx - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_service_annotation_prometheus_io_probe - - source_labels: - - __address__ - target_label: __param_target - - replacement: blackbox - target_label: __address__ - - source_labels: - - __param_target - target_label: instance - - action: labelmap - regex: __meta_kubernetes_service_label_(.+) - - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - source_labels: - - __meta_kubernetes_service_name - target_label: service - - honor_labels: true - job_name: kubernetes-pods - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape - - action: drop - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - - honor_labels: true - job_name: kubernetes-pods-slow - kubernetes_sd_configs: - - role: pod - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow - - action: replace - regex: (https?) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_scheme - target_label: __scheme__ - - action: replace - regex: (.+) - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_path - target_label: __metrics_path__ - - action: replace - regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) - replacement: '[$2]:$1' - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: replace - regex: (\d+);((([0-9]+?)(\.|$)){4}) - replacement: $2:$1 - source_labels: - - __meta_kubernetes_pod_annotation_prometheus_io_port - - __meta_kubernetes_pod_ip - target_label: __address__ - - action: labelmap - regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+) - replacement: __param_$1 - - action: labelmap - regex: __meta_kubernetes_pod_label_(.+) - - action: replace - source_labels: - - __meta_kubernetes_namespace - target_label: namespace - - action: replace - source_labels: - - __meta_kubernetes_pod_name - target_label: pod - - action: drop - regex: Pending|Succeeded|Failed|Completed - source_labels: - - __meta_kubernetes_pod_phase - - action: replace - source_labels: - - __meta_kubernetes_pod_node_name - target_label: node - scrape_interval: 5m - scrape_timeout: 30s - alerting: - alertmanagers: - - kubernetes_sd_configs: - - role: pod - tls_config: - ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - relabel_configs: - - source_labels: [__meta_kubernetes_namespace] - regex: monitoring - action: keep - - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_instance] - regex: prometheus - action: keep - - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name] - regex: alertmanager - action: keep - - source_labels: [__meta_kubernetes_pod_container_port_number] - regex: "9093" - action: keep diff --git a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-deploy.yaml b/gpulive/vm-monitoring/overlays/vm/prometheus/patch-deploy.yaml deleted file mode 100644 index 1758854..0000000 --- a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-deploy.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Source: prometheus/templates/deploy.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: prometheus-server - namespace: monitoring -spec: - template: - spec: - containers: - - name: prometheus-server - volumeMounts: - - mountPath: /etc/config/alerts - name: config-volume2 - volumes: - - configMap: - defaultMode: 420 - name: prometheus-rulefiles - name: config-volume2 \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_alertmanager.yaml b/gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_alertmanager.yaml deleted file mode 100644 index d21488b..0000000 --- a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_alertmanager.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: prometheus-alertmanager-ingress - namespace: monitoring - annotations: - # 인증 방법 설정: basic auth - nginx.ingress.kubernetes.io/auth-type: basic - # basic auth 사용자가 들어있는 secret 설정 - nginx.ingress.kubernetes.io/auth-secret: basic-auth - # 인증 요청시 나오는 메세지 설정 - nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - admin' -spec: - ingressClassName: nginx - rules: - - host: alert.nhngpuaas.com - http: - paths: - - backend: - service: - name: prometheus-alertmanager - port: - number: 9093 - path: / - pathType: Prefix - tls: - - hosts: - - alert.nhngpuaas.com - secretName: nhngpuaas-ssl \ No newline at end of file diff --git a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_prometheus.yaml b/gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_prometheus.yaml deleted file mode 100644 index c03f487..0000000 --- a/gpulive/vm-monitoring/overlays/vm/prometheus/patch-ingress_prometheus.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: prometheus-ingress - namespace: monitoring -spec: - ingressClassName: nginx - rules: - - host: prometheus.nhngpuaas.com - http: - paths: - - backend: - service: - name: prometheus-server - port: - number: 80 - path: / - pathType: Prefix - tls: - - hosts: - - prometheus.nhngpuaas.com - secretName: nhngpuaas-ssl