워크로드 클러스터에 Prometheus 배포

이 항목에서는 Prometheus를 워크로드에 배포하는 방법을 설명합니다. 아래 절차는 vSphere, Amazon Web Services(AWS) 및 Azure 배포에 적용됩니다.

Prometheus

Prometheus는 오픈 - 소스 시스템 모니터링 및 경고 툴킷입니다. Tanzu Kubernetes Grid에는 워크로드 클러스터에 배포할 수 있는 Prometheus용 서명된 바이너리가 포함되어 있습니다.

사전 요구 사항

중요

Tanzu Kubernetes Grid에서 IPv6 주소에 대한 지원은 제한됩니다. APv6의 클러스터 배포(vSphere 전용)를 참조하십시오. IPv6 전용 네트워킹 환경에 배포하지 않는 경우 다음 단계에서 IPv4 주소를 입력해야 합니다.

Prometheus 배포를 위해 워크로드 클러스터 준비

클러스터를 준비하려면 다음을 수행합니다.

  1. Prometheus를 배포할 워크로드 클러스터의 admin 자격 증명을 가져옵니다. 예:

    tanzu cluster kubeconfig get my-cluster --admin
    
  2. kubectl의 컨텍스트를 클러스터로 설정합니다. 예:

    kubectl config use-context my-cluster-admin@my-cluster
    

(선택 사항) Prometheus에 수신 사용

수신을 사용하도록 설정하려면 아래의 선택적 패키지를 설치할 수 있습니다.

  1. cert-manager를 설치합니다. 자세한 내용은 인증서 관리를 위한 cert-manager 설치를 참조하십시오.
  2. Contour를 설치합니다. 자세한 내용은 수신 제어용 Contour 설치를 참조하십시오.

아래의 워크로드 클러스터에 Prometheus 배포로 진행합니다.

워크로드 클러스터에 Prometheus 배포

Prometheus를 설치하려면 다음을 수행합니다.

  1. 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) 목록을 참조하십시오.
  2. 워크로드 클러스터에서 Prometheus 패키지를 사용할 수 있는지 확인합니다.

    tanzu package available list -A
    
  3. 사용 가능한 패키지의 버전을 검색합니다.

    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 배포

패키지 버전을 확인하고 검색한 후 패키지를 설치할 수 있습니다.

  1. 기본값을 사용하여 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'
    
  2. 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 구성 요소를 재구성합니다.

    1. 다음을 포함하는 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=
      
    2. 오버레이의 암호를 생성합니다.

      kubectl create secret generic alertmanager-overlay -n tanzu-package-repo-global -o yaml --dry-run=client --from-file=overlay-alertmanager.yaml | kubectl apply -f -
      
    3. 암호로 패키지에 주석을 추가합니다.

      kubectl annotate PackageInstall prometheus -n tanzu-package-repo-global ext.packaging.carvel.dev/ytt-paths-from-secret-name.1=alertmanager-overlay
      

아래의 Prometheus 배포 확인으로 계속 진행합니다.

사용자 지정 값을 사용하여 Prometheus 배포

사용자가 제공한 값을 사용하여 Prometheus 패키지를 설치하려면 다음을 수행합니다.

  1. 구성 파일을 생성합니다. 이 파일은 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 패키지 구성 매개 변수를 참조하십시오.

  2. vSphere with Tanzu: vSphere Supervisor 클러스터에서 생성한 워크로드 클러스터에 Prometheus를 배포하는 경우, prometheus-data-values.yaml 파일에서 prometheus.pvc.storageClassNamealertmanager.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-CLASSkubectl get storageclass에서 반환된 클러스터의 스토리지 클래스 이름입니다.

  3. prometheus-data-values.yaml 파일을 변경하는 데 필요한 내용을 변경한 후에는 모든 주석을 제거합니다.

    yq -i eval '... comments=""' prometheus-data-values.yaml
    
  4. 패키지 배포:

    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를 배포한 후 배포가 성공했는지 확인할 수 있습니다.

  1. 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 명령을 실행할 때 지정한 네임스페이스에 설치됩니다.

  2. 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는 패키지를 설치한 네임스페이스입니다.

  3. 클러스터에서 실행 중인 모든 포드를 표시하여 새 서비스가 실행되고 있는지 확인합니다.

    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 패키지 구성 매개 변수

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 패키지를 업데이트합니다.

  1. prometheus-data-values.yaml 파일에서 Prometheus 구성을 업데이트합니다.

  2. 설치된 패키지를 업데이트합니다.

    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 배포 삭제

클러스터에서 Prometheus 패키지를 제거하려면 다음을 실행합니다.

tanzu package installed delete prometheus --namespace my-packages

삭제에 대한 자세한 내용은 패키지 삭제를 참조하십시오.

Alert Manager에서 알림 구성

Alert Manager에 대한 알림을 구성하려면 prometheus-data-values.yml 파일에서 alertmanager.config.alertmanager_yml 섹션을 편집합니다.

Slack 또는 이메일과 같은 알림 구성에 대한 자세한 내용은 Prometheus 설명서의 구성을 참조하십시오.

Prometheus 대시보드 액세스

기본적으로 수신은 Prometheus에서 사용하도록 설정되지 않습니다. Prometheus 대시보드에 대한 액세스가 인증되지 않았기 때문입니다. Prometheus 대시보드에 액세스하려면 다음을 수행합니다.

  1. 클러스터에 Contour를 배포합니다.

    Contour 배포에 대한 자세한 내용은 수신 제어용 Contour 설치를 참조하십시오.

  2. 아래의 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:
    
  3. ingress.enabledfalse에서 true로 업데이트합니다.

  4. DNS 레코드를 생성하여 prometheus.system.tanzu를 Envoy 로드 밸런서의 주소에 매핑합니다.

    Envoy 로드 밸런서의 주소를 가져오려면 수신 제어용 Contour 설치를 참조하십시오.

  5. 브라우저에서 https://prometheus.system.tanzu로 이동하여 Prometheus 대시보드에 액세스합니다.

    Prometheus 대시보드

후속 작업

이제 Prometheus 패키지가 실행 중이며 클러스터에서 데이터를 스크레이핑합니다. Grafana 대시보드에서 데이터를 시각화하려면 워크로드 클러스터에 Grafana 배포를 참조하십시오.

check-circle-line exclamation-circle-line close-line
Scroll to top icon