이 항목에서는 Prometheus를 워크로드에 배포하는 방법을 설명합니다. 아래 절차는 vSphere, Amazon Web Services(AWS) 및 Azure 배포에 적용됩니다.
Prometheus는 오픈 - 소스 시스템 모니터링 및 경고 툴킷입니다. Tanzu Kubernetes Grid에는 워크로드 클러스터에 배포할 수 있는 Prometheus용 서명된 바이너리가 포함되어 있습니다.
kubectl
( vSphere with Tanzu Supervisor와 함께 사용할 Tanzu CLI 및 기타 도구 설치 또는 독립형 관리 클러스터에 사용할 Tanzu CLI 및 기타 도구 설치에 설명되어 있음).cert-manager
및 contour
패키지를 설치해야 합니다.중요Tanzu Kubernetes Grid에서 IPv6 주소에 대한 지원은 제한됩니다. APv6의 클러스터 배포(vSphere 전용)를 참조하십시오. IPv6 전용 네트워킹 환경에 배포하지 않는 경우 다음 단계에서 IPv4 주소를 입력해야 합니다.
클러스터를 준비하려면 다음을 수행합니다.
Prometheus를 배포할 워크로드 클러스터의 admin 자격 증명을 가져옵니다. 예:
tanzu cluster kubeconfig get my-cluster --admin
kubectl의 컨텍스트를 클러스터로 설정합니다. 예:
kubectl config use-context my-cluster-admin@my-cluster
(선택 사항) Prometheus에 수신 사용
수신을 사용하도록 설정하려면 아래의 선택적 패키지를 설치할 수 있습니다.
아래의 워크로드 클러스터에 Prometheus 배포로 진행합니다.
Prometheus를 설치하려면 다음을 수행합니다.
Prometheus 패키지가 설치된 패키지 저장소(예: tanzu-standard
저장소)가 클러스터에 없는 경우 설치합니다.
참고계획 기반 클러스터(레거시)를 대상으로 하는 경우 이 단계를 건너뜁니다. 계획 기반 클러스터의 경우
tanzu-standard
패키지 저장소가 모든 클러스터의tanzu-package-repo-global
네임스페이스에서 자동으로 사용되도록 설정되었습니다.
tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
여기서:
PACKAGE-REPO-NAME
은 패키지 저장소의 이름(예: tanzu-standard
또는 ADDITIONAL_IMAGE_REGISTRY
변수로 구성된 개인 이미지 레지스트리의 이름입니다.PACKAGE-REPO-ENDPOINT
는 패키지 저장소의 URL입니다.
tanzu-standard
URL은 projects.registry.vmware.com/tkg/packages/standard/repo:v2.2.0
입니다. Tanzu CLI에서 이 값을 가져오려면 패키지 저장소 나열을 참조하거나 Tanzu Mission Control의 클러스터(Cluster) 창에서 추가 기능(Addons) > 저장소(Repositories) 목록을 참조하십시오.워크로드 클러스터에서 Prometheus 패키지를 사용할 수 있는지 확인합니다.
tanzu package available list -A
사용 가능한 패키지의 버전을 검색합니다.
tanzu package available list prometheus.tanzu.vmware.com -A
| Retrieving package versions for prometheus.tanzu.vmware.com...
NAME VERSION RELEASED-AT NAMESPACE
prometheus.tanzu.vmware.com 2.37.0+vmware.3-tkg.1 2020-11-24T18:00:00Z tanzu-package-repo-global
중요워크로드 클러스터가 Kubernetes 1.25를 실행하는 경우 Prometheus 버전
2.37.0+vmware.3-tkg.1
을 설치해야 합니다. 이전 버전의 Prometheus 패키지(예: 버전2.37.0+vmware.1-tkg.1
저장소에서 사용할 수 있지만 Kubernetes 1.25와 호환되지 않습니다.
Prometheus를 배포할 준비가 되면 다음을 수행할 수 있습니다.
vSphere with Tanzu: Prometheus 패키지를 vSphere Supervisor Cluster에서 생성된 워크로드 클러스터에 배포하려면 사용자 지정 값으로 배포해야 합니다. Prometheus 패키지가 vSphere 7.0 U3의 워크로드 클러스터에 대해 검증되지 않았습니다.
패키지 버전을 확인하고 검색한 후 패키지를 설치할 수 있습니다.
기본값을 사용하여 Prometheus 패키지를 설치합니다.
tanzu package install prometheus \
--package prometheus.tanzu.vmware.com \
--version AVAILABLE-PACKAGE-VERSION \
--namespace TARGET-NAMESPACE
여기서:
TARGET-NAMESPACE
는 Prometheus 패키지를 설치하려는 네임스페이스입니다. 예: my-packages
또는 tanzu-cli-managed-packages
네임스페이스.
--namespace
플래그를 지정하지 않으면 Tanzu CLI는 default
네임스페이스를 사용합니다. Prometheus 포드, 그리고 Harbor 구성 요소와 연결된 기타 리소스는 tanzu-system-monitoring
네임스페이스에 생성됩니다. 이 네임스페이스에 Prometheus 패키지를 설치하지 마십시오.kubectl create namespace my-packages
실행).AVAILABLE-PACKAGE-VERSION
은 위에서 검색한 버전(예: 2.37.0+vmware.3-tkg.1
)입니다.
예:
tanzu package install prometheus --package prometheus.tanzu.vmware.com --namespace my-packages --version 2.37.0+vmware.3-tkg.1
\ Installing package 'prometheus.tanzu.vmware.com'
| Getting package metadata for 'prometheus.tanzu.vmware.com'
| Creating service account 'prometheus-my-packages-sa'
| Creating cluster admin role 'prometheus-my-packages-cluster-role'
| Creating cluster role binding 'prometheus-my-packages-cluster-rolebinding'
- Creating package resource
\ Package install status: Reconciling
Added installed package 'prometheus' in namespace 'my-packages'
vSphere with Tanzu: vSphere with Tanzu 기능을 사용하도록 vSphere 8 설정된 vSphere 8 및 vSphere 7.0 U2에서 tanzu package install prometheus
명령이 Failed to get final advertise address: No private IP address found, and explicit IP not provided
오류를 반환할 수 있습니다.
이 오류를 해결하려면 패키지 오버레이를 생성하고 적용하여 alertmanager
구성 요소를 재구성합니다.
다음을 포함하는 overlay-alertmanager.yaml
파일을 생성합니다.
---
#@ load("@ytt:overlay", "overlay")
#@overlay/match by=overlay.and_op(overlay.subset({"kind": "Deployment"}), overlay.subset({"metadata": {"name": "alertmanager"}}))
---
spec:
template:
spec:
containers:
#@overlay/match by="name",expects="0+"
- name: alertmanager
args:
- --cluster.listen-address=
오버레이의 암호를 생성합니다.
kubectl create secret generic alertmanager-overlay -n tanzu-package-repo-global -o yaml --dry-run=client --from-file=overlay-alertmanager.yaml | kubectl apply -f -
암호로 패키지에 주석을 추가합니다.
kubectl annotate PackageInstall prometheus -n tanzu-package-repo-global ext.packaging.carvel.dev/ytt-paths-from-secret-name.1=alertmanager-overlay
아래의 Prometheus 배포 확인으로 계속 진행합니다.
사용자가 제공한 값을 사용하여 Prometheus 패키지를 설치하려면 다음을 수행합니다.
구성 파일을 생성합니다. 이 파일은 Prometheus 패키지를 구성합니다.
tanzu package available get prometheus.tanzu.vmware.com/PACKAGE-VERSION --default-values-file-output FILE-PATH
여기서 PACKAGE-VERSION
은 설치하려는 Prometheus 패키지의 버전이며 FILE-PATH
는 구성 파일을 저장할 위치입니다(예: prometheus-data-values.yaml
). 위 명령은 이름이 prometheus-data-values.yaml
이고 기본값이 포함된 구성 파일을 생성합니다. 이전 버전에서는 이 파일을 prometheus-data-values.yaml
이라고 했습니다.
prometheus-data-values.yaml
에서 사용할 구성 매개 변수에 대한 자세한 내용은 아래의 Prometheus 패키지 구성 매개 변수를 참조하십시오.
vSphere with Tanzu: vSphere Supervisor 클러스터에서 생성한 워크로드 클러스터에 Prometheus를 배포하는 경우, prometheus-data-values.yaml
파일에서 prometheus.pvc.storageClassName
및 alertmanager.pvc.storageClassName
에 Null이 아닌 값을 설정합니다.
ingress:
enabled: true
virtual_host_fqdn: "prometheus.corp.tanzu"
prometheus_prefix: "/"
alertmanager_prefix: "/alertmanager/"
prometheusServicePort: 80
alertmanagerServicePort: 80
prometheus:
pvc:
storageClassName: STORAGE-CLASS
alertmanager:
pvc:
storageClassName: STORAGE-CLASS
여기서 STORAGE-CLASS
는 kubectl get storageclass
에서 반환된 클러스터의 스토리지 클래스 이름입니다.
prometheus-data-values.yaml
파일을 변경하는 데 필요한 내용을 변경한 후에는 모든 주석을 제거합니다.
yq -i eval '... comments=""' prometheus-data-values.yaml
패키지 배포:
tanzu package install prometheus \
--package prometheus.tanzu.vmware.com \
--version PACKAGE-VERSION \
--values-file prometheus-data-values.yaml \
--namespace TARGET-NAMESPACE
형식 설명:
TARGET-NAMESPACE
는 Prometheus 패키지, Prometheus 패키지 애플리케이션, 그리고 패키지를 설명하는 기타 Kubernetes 리소스를 설치하려는 네임스페이스입니다. 예: my-packages
또는 tanzu-cli-managed-packages
네임스페이스. --namespace
플래그를 지정하지 않으면 Tanzu CLI는 default
네임스페이스를 사용합니다. Prometheus 포드, 그리고 Harbor 구성 요소와 연결된 기타 리소스는 tanzu-system-monitoring
네임스페이스에 생성됩니다. 이 네임스페이스에 Prometheus 패키지를 설치하지 마십시오.PACKAGE-VERSION
은 위에서 검색한 버전(예: 2.37.0+vmware.3-tkg.1
)입니다.아래의 Prometheus 배포 확인으로 계속 진행합니다.
Prometheus를 배포한 후 배포가 성공했는지 확인할 수 있습니다.
Prometheus 패키지가 설치되어 있는지 확인합니다. 예:
tanzu package installed list -A
/ Retrieving installed packages...
NAME PACKAGE-NAME PACKAGE-VERSION STATUS NAMESPACE
cert-manager cert-manager.tanzu.vmware.com 1.1.0+vmware.1-tkg.2 Reconcile succeeded my-packages
prometheus prometheus.tanzu.vmware.com 2.37.0+vmware.3-tkg.1 Reconcile succeeded my-packages
antrea antrea.tanzu.vmware.com Reconcile succeeded tkg-system
metrics-server metrics-server.tanzu.vmware.com Reconcile succeeded tkg-system
vsphere-cpi vsphere-cpi.tanzu.vmware.com Reconcile succeeded tkg-system
vsphere-csi vsphere-csi.tanzu.vmware.com Reconcile succeeded tkg-system
prometheus
패키지 및 prometheus
애플리케이션은 tanzu package install
명령을 실행할 때 지정한 네임스페이스에 설치됩니다.
prometheus
애플리케이션이 조정되었는지 확인합니다.
kubectl get apps -A
예:
NAMESPACE NAME DESCRIPTION SINCE-DEPLOY AGE
my-packages cert-manager Reconcile succeeded 74s 29m
my-packages prometheus Reconcile succeeded 20s 33m
tkg-system antrea Reconcile succeeded 70s 3h43m
[...]
상태가 Reconcile succeeded
가 아닌 경우 prometheus
애플리케이션의 전체 상태 세부 정보를 확인합니다. 전체 상태를 확인하면 문제를 해결하는 데 도움이 될 수 있습니다.
kubectl get app prometheus --namespace PACKAGE-NAMESPACE -o yaml
여기서 PACKAGE-NAMESPACE
는 패키지를 설치한 네임스페이스입니다.
클러스터에서 실행 중인 모든 포드를 표시하여 새 서비스가 실행되고 있는지 확인합니다.
kubectl get pods -A
tanzu-system-monitoring
네임스페이스에서 prometheus
, alertmanager
, node_exporter
, pushgateway
, cadvisor
, kube_state_metrics
서비스가 포드에서 실행되는 것을 볼 수 있습니다.
NAMESPACE NAME READY STATUS RESTARTS AGE
[...]
tanzu-system-monitoring alertmanager-d6bb4d94d-7fgmb 1/1 Running 0 35m
tanzu-system-monitoring prometheus-cadvisor-pgfck 1/1 Running 0 35m
tanzu-system-monitoring prometheus-kube-state-metrics-868b5b749d-9w5f2 1/1 Running 0 35m
tanzu-system-monitoring prometheus-node-exporter-97x6c 1/1 Running 0 35m
tanzu-system-monitoring prometheus-node-exporter-dnrkk 1/1 Running 0 35m
tanzu-system-monitoring prometheus-pushgateway-84cc9b85c6-tgmv6 1/1 Running 0 35m
tanzu-system-monitoring prometheus-server-6479964fb6-kk9g2 2/2 Running 0 35m
[...]
Prometheus 포드 및 Prometheus 구성 요소와 연결된 기타 리소스는 prometheus-data-values.yaml
에 제공한 네임스페이스에 생성됩니다. 기본 네임스페이스를 사용하는 경우에는 tanzu-system-monitoring
네임스페이스에 생성됩니다.
Prometheus 패키지의 구성 매개 변수를 두 가지 방법으로 볼 수 있습니다.
패키지 스키마를 검색하려면 다음을 수행합니다.
tanzu package available get prometheus.tanzu.vmware.com/2.37.0+vmware.3-tkg.1 -n AVAILABLE-PACKAGE-NAMESPACE --values-schema
이 명령은 Prometheus 패키지의 구성 매개 변수와 해당 기본값을 나열합니다. 출력을 사용하여 위의 prometheus-data-values.yml
에서 생성된 prometheus-data-values.yml 파일을 업데이트할 수 있습니다.
다음 표에는 Prometheus 패키지의 구성 매개 변수가 나와 있고, 해당 기본값을 설명합니다.
위의 사용자 지정 값을 사용하여 Prometheus 배포에서 생성되는 prometheus-data-values.yml
파일에서 다음 구성 값을 설정할 수 있습니다.
매개 변수 | 설명 | 유형 | 기본값 |
---|---|---|---|
namespace |
Prometheus가 배포될 네임스페이스. | 문자열 | tanzu-system-monitoring |
prometheus.deployment.replicas |
Prometheus 복제본 수. | 문자열 | 1 |
prometheus.deployment.containers.args |
Prometheus 컨테이너 인수. 이 매개 변수를 구성하여 보존 시간을 변경할 수 있습니다. Prometheus 스토리지 매개 변수 구성에 대한 자세한 내용은 Prometheus 설명서를 참조하십시오. 참고 보존 시간이 길면 짧은 보존 시간보다 더 많은 스토리지 용량이 필요합니다. 보존 시간을 크게 늘리는 경우 영구 볼륨 할당 크기를 늘려야 할 수 있습니다. | 목록 | 해당 없음 |
prometheus.deployment.containers.resources |
컨테이너 리소스 요청 및 제한. | 맵 | {} |
prometheus.deployment.podAnnotations |
Prometheus 배포 포드 주석. | 맵 | {} |
prometheus.deployment.podLabels |
Prometheus 배포 포드 레이블. | 맵 | {} |
prometheus.deployment.configMapReload.containers.args |
Configmap-reload 컨테이너 인수. | 목록 | 해당 없음 |
prometheus.deployment.configMapReload.containers.resources |
Configmap-reload 컨테이너 리소스 요청 및 제한. | 맵 | {} |
prometheus.service.type |
Prometheus를 노출할 서비스 유형. 지원되는 값: ClusterIP . |
문자열 | ClusterIP |
prometheus.service.port |
Prometheus 서비스 포트. | 정수 | 80 |
prometheus.service.targetPort |
Prometheus 서비스 대상 포트. | 정수 | 9090 |
prometheus.service.labels |
Prometheus 서비스 레이블. | 맵 | {} |
prometheus.service.annotations |
Prometheus 서비스 주석. | 맵 | {} |
prometheus.pvc.annotations |
스토리지 클래스 주석. | 맵 | {} |
prometheus.pvc.storageClassName |
영구 볼륨 할당에 사용할 스토리지 클래스. 기본값은 null이고 기본 프로비저너가 사용됩니다. | 문자열 | null |
prometheus.pvc.accessMode |
영구 볼륨 할당에 대한 액세스 모드 정의. 지원되는 값: ReadWriteOnce , ReadOnlyMany , ReadWriteMany . |
문자열 | ReadWriteOnce |
prometheus.pvc.storage |
영구 볼륨 할당에 대한 스토리지 크기 정의. | 문자열 | 150Gi |
prometheus.config.prometheus_yml |
글로벌 Prometheus 구성에 대한 자세한 내용은 Prometheus 설명서를 참조하십시오. | YAML 파일 | prometheus.yaml |
prometheus.config.alerting_rules_yml |
Prometheus 경고 규칙에 대한 자세한 내용은 Prometheus 설명서를 참조하십시오. | YAML 파일 | alerting_rules.yaml |
prometheus.config.recording_rules_yml |
Prometheus 기록 규칙에 대한 자세한 내용은 Prometheus 설명서를 참조하십시오. | YAML 파일 | recording_rules.yaml |
prometheus.config.alerts_yml |
추가 Prometheus 경고 규칙이 여기에서 구성됩니다. | YAML 파일 | alerts_yml.yaml |
prometheus.config.rules_yml |
추가 Prometheus 기록 규칙이 여기에서 구성됩니다. | YAML 파일 | rules_yml.yaml |
alertmanager.deployment.replicas |
Alertmanager 복제본의 수입니다. | 정수 | 1 |
alertmanager.deployment.containers.resources |
Alertmanager 컨테이너 리소스 요청 및 제한. | 맵 | {} |
alertmanager.deployment.podAnnotations |
Alertmanager 배포 포드 주석. | 맵 | {} |
alertmanager.deployment.podLabels |
Alertmanager 배포 포드 레이블. | 맵 | {} |
alertmanager.service.type |
Alertmanager를 노출할 서비스 유형. 지원되는 값: ClusterIP . |
문자열 | ClusterIP |
alertmanager.service.port |
Alertmanager 서비스 포트. | 정수 | 80 |
alertmanager.service.targetPort |
Alertmanager 서비스 대상 포트. | 정수 | 9093 |
alertmanager.service.labels |
Alertmanager 서비스 레이블. | 맵 | {} |
alertmanager.service.annotations |
Alertmanager 서비스 주석. | 맵 | {} |
alertmanager.pvc.annotations |
스토리지 클래스 주석. | 맵 | {} |
alertmanager.pvc.storageClassName |
영구 볼륨 할당에 사용할 스토리지 클래스. 기본값은 null이고 기본 프로비저너가 사용됩니다. | 문자열 | null |
alertmanager.pvc.accessMode |
영구 볼륨 할당에 대한 액세스 모드 정의. 지원되는 값: ReadWriteOnce , ReadOnlyMany , ReadWriteMany . |
문자열 | ReadWriteOnce |
alertmanager.pvc.storage |
영구 볼륨 할당에 대한 스토리지 크기 정의. | 문자열 | 2Gi |
alertmanager.config.alertmanager_yml |
Alert Manager의 글로벌 YAML 구성에 대한 자세한 내용은 Prometheus 설명서를 참조하십시오. | YAML 파일 | alertmanager_yml |
kube_state_metrics.deployment.replicas |
kube-state-metrics 복제본 수. | 정수 | 1 |
kube_state_metrics.deployment.containers.resources |
kube-state-metrics 컨테이너 리소스 요청 및 제한. | 맵 | {} |
kube_state_metrics.deployment.podAnnotations |
kube-state-metrics 배포 포드 주석. | 맵 | {} |
kube_state_metrics.deployment.podLabels |
kube-state-metrics 배포 포드 레이블. | 맵 | {} |
kube_state_metrics.service.type |
kube-state-metrics를 노출하는 서비스 유형. 지원되는 값: ClusterIP . |
문자열 | ClusterIP |
kube_state_metrics.service.port |
kube-state-metrics 서비스 포트. | 정수 | 80 |
kube_state_metrics.service.targetPort |
kube-state-metrics 서비스 대상 포트. | 정수 | 8080 |
kube_state_metrics.service.telemetryPort |
kube-state-metrics 서비스 원격 분석 포트. | 정수 | 81 |
kube_state_metrics.service.telemetryTargetPort |
kube-state-metrics 서비스 대상 원격 분석 포트. | 정수 | 8081 |
kube_state_metrics.service.labels |
kube-state-metrics 서비스 레이블. | 맵 | {} |
kube_state_metrics.service.annotations |
kube-state-metrics 서비스 주석. | 맵 | {} |
node_exporter.daemonset.replicas |
node-exporter 복제본 수. | 정수 | 1 |
node_exporter.daemonset.containers.resources |
node-exporter 컨테이너 리소스 요청 및 제한. | 맵 | {} |
node_exporter.daemonset.hostNetwork |
이 포드에 대해 요청된 호스트 네트워킹. | 부울 | false |
node_exporter.daemonset.podAnnotations |
node-exporter 배포 포드 주석. | 맵 | {} |
node_exporter.daemonset.podLabels |
node-exporter 배포 포드 레이블. | 맵 | {} |
node_exporter.service.type |
node-exporter를 노출할 서비스 유형. 지원되는 값: ClusterIP . |
문자열 | ClusterIP |
node_exporter.service.port |
node-exporter 서비스 포트. | 정수 | 9100 |
node_exporter.service.targetPort |
node-exporter 서비스 대상 포트. | 정수 | 9100 |
node_exporter.service.labels |
node-exporter 서비스 레이블. | 맵 | {} |
node_exporter.service.annotations |
node-exporter 서비스 주석. | 맵 | {} |
pushgateway.deployment.replicas |
pushgateway 복제본 수. | 정수 | 1 |
pushgateway.deployment.containers.resources |
pushgateway 컨테이너 리소스 요청 및 제한. | 맵 | {} |
pushgateway.deployment.podAnnotations |
pushgateway 배포 포드 주석. | 맵 | {} |
pushgateway.deployment.podLabels |
pushgateway 배포 포드 레이블. | 맵 | {} |
pushgateway.service.type |
pushgateway를 노출할 서비스 유형. 지원되는 값: ClusterIP . |
문자열 | ClusterIP |
pushgateway.service.port |
pushgateway 서비스 포트. | 정수 | 9091 |
pushgateway.service.targetPort |
pushgateway 서비스 대상 포트. | 정수 | 9091 |
pushgateway.service.labels |
pushgateway 서비스 레이블. | 맵 | {} |
pushgateway.service.annotations |
pushgateway 서비스 주석. | 맵 | {} |
cadvisor.daemonset.replicas |
cadvisor 복제본 수. | 정수 | 1 |
cadvisor.daemonset.containers.resources |
cadvisor 컨테이너 리소스 요청 및 제한. | 맵 | {} |
cadvisor.daemonset.podAnnotations |
cadvisor 배포 포드 주석. | 맵 | {} |
cadvisor.daemonset.podLabels |
cadvisor 배포 포드 레이블. | 맵 | {} |
ingress.enabled |
Prometheus 및 Alertmanager의 수신을 활성화/비활성화합니다. | 부울 | false |
ingress.virtual_host_fqdn |
Promethues 및 Alertmanager에 액세스하기 위한 호스트 이름. | 문자열 | prometheus.system.tanzu |
ingress.prometheus_prefix |
Prometheus의 경로 접두사. | 문자열 | / |
ingress.alertmanager_prefix |
Alertmanager의 경로 접두사. | 문자열 | /alertmanager/ |
ingress.prometheusServicePort |
트래픽을 프록시 처리할 Prometheus 서비스 포트. | 정수 | 80 |
ingress.alertmanagerServicePort |
트래픽을 프록시 처리할 Alertmanager 서비스 포트. | 정수 | 80 |
ingress.tlsCertificate.tls.crt |
자체 TLS 인증서를 사용하려는 경우 수신을 위한 선택적 인증서. 자체 서명된 인증서가 기본적으로 생성됩니다. 참고 tls.crt 는 키이며 중첩되지 않았습니다. |
문자열 | Generated cert |
ingress.tlsCertificate.tls.key |
자체 TLS 인증서를 사용하려는 경우, 수신을 위한 선택적 인증서 개인 키. 참고 tls.key 는 키이며 중첩되지 않았습니다. |
문자열 | Generated cert key |
ingress.tlsCertificate.ca.crt |
선택적 CA 인증서. 참고 ca.crt 는 키이며 중첩되지 않았습니다. |
문자열 | CA certificate |
배포 후 Prometheus 패키지의 구성을 변경하려면 배포된 Prometheus 패키지를 업데이트합니다.
prometheus-data-values.yaml
파일에서 Prometheus 구성을 업데이트합니다.
설치된 패키지를 업데이트합니다.
tanzu package installed update prometheus \
--version 2.37.0+vmware.3-tkg.1 \
--values-file prometheus-data-values.yaml \
--namespace my-packages
예상 출력:
| Updating package 'prometheus'
- Getting package install for 'prometheus'
| Updating secret 'prometheus-my-packages-values'
| Updating package install for 'prometheus'
Updated package install 'prometheus' in namespace 'my-packages'
Prometheus 패키지가 새 값 또는 추가한 값을 사용하여 조정됩니다. kapp-controller
가 변경 내용을 적용하는 데 최대 5분이 걸릴 수 있습니다.
업데이트에 대한 자세한 내용은 패키지 업데이트를 참조하십시오.
클러스터에서 Prometheus 패키지를 제거하려면 다음을 실행합니다.
tanzu package installed delete prometheus --namespace my-packages
삭제에 대한 자세한 내용은 패키지 삭제를 참조하십시오.
Alert Manager에 대한 알림을 구성하려면 prometheus-data-values.yml
파일에서 alertmanager.config.alertmanager_yml
섹션을 편집합니다.
Slack 또는 이메일과 같은 알림 구성에 대한 자세한 내용은 Prometheus 설명서의 구성을 참조하십시오.
기본적으로 수신은 Prometheus에서 사용하도록 설정되지 않습니다. Prometheus 대시보드에 대한 액세스가 인증되지 않았기 때문입니다. Prometheus 대시보드에 액세스하려면 다음을 수행합니다.
클러스터에 Contour를 배포합니다.
Contour 배포에 대한 자세한 내용은 수신 제어용 Contour 설치를 참조하십시오.
아래의 ingress.enabled
섹션을 prometheus-data-values.yaml
에 복사합니다.
ingress:
enabled: false
virtual_host_fqdn: "prometheus.system.tanzu"
prometheus_prefix: "/"
alertmanager_prefix: "/alertmanager/"
prometheusServicePort: 80
alertmanagerServicePort: 80
#! [Optional] The certificate for the ingress if you want to use your own TLS certificate.
#! We will issue the certificate by cert-manager when it's empty.
tlsCertificate:
#! [Required] the certificate
tls.crt:
#! [Required] the private key
tls.key:
#! [Optional] the CA certificate
ca.crt:
ingress.enabled
를 false
에서 true
로 업데이트합니다.
DNS 레코드를 생성하여 prometheus.system.tanzu
를 Envoy 로드 밸런서의 주소에 매핑합니다.
Envoy 로드 밸런서의 주소를 가져오려면 수신 제어용 Contour 설치를 참조하십시오.
브라우저에서 https://prometheus.system.tanzu
로 이동하여 Prometheus 대시보드에 액세스합니다.
이제 Prometheus 패키지가 실행 중이며 클러스터에서 데이터를 스크레이핑합니다. Grafana 대시보드에서 데이터를 시각화하려면 워크로드 클러스터에 Grafana 배포를 참조하십시오.