다음 지침에 따라 vSphere 8.x용 TKr을 실행하는 TKG 서비스 클러스터에 Alertmanager를 사용하여 Prometheus를 설치합니다.

사전 요구 사항

다음 사전 요구 사항을 준수합니다.

Prometheus 데이터 값 생성

데이터 값 파일을 생성하여 Prometheus 설치를 준비합니다.

  1. 저장소에 대한 최신 Prometheus 패키지 버전을 가져옵니다.
    tanzu package available get prometheus.tanzu.vmware.com -n tkg-system

    또는 kubectl 사용.

    kubectl -n tkg-system get packages | grep prometheus
    참고: 일반적으로 요구 사항이 다른 경우가 아니면 최신 버전을 사용해야 합니다.
  2. prometheus-data-values.yaml 파일을 생성합니다.
    tanzu package available get prometheus.tanzu.vmware.com/2.45.0+vmware.1-tkg.2 --default-values-file-output prometheus-data-values.yaml
    형식 설명:
    • 2.45.0+vmware.1-tkg.2는 대상 패키지 버전입니다.
    • prometheus-data-values.yaml은 생성할 데이터 값 파일의 이름과 경로입니다.
  3. prometheus-data-values.yaml 파일을 편집하고 Prometheus 대시보드에 액세스하는 데 필요한 다음 값을 구성합니다. 예제 데이터 값 파일 및 전체 구성 매개 변수 목록은 Prometheus 패키지 참조 항목을 참조하십시오.
    매개 변수 설명
    ingress.tlsCertificate.tls.crt 수신을 위해 자체 서명된 TLS 인증서가 생성됩니다. 필요한 경우 자체적으로 재정의하고 제공할 수 있습니다.
    ingress.tlsCertificate.tls.key 수신을 위해 자체 서명된 TLS 개인 키가 생성됩니다. 필요한 경우 자체적으로 재정의하고 제공할 수 있습니다.
    ingress.enabled 값을 true로 설정합니다(기본값은 false).
    ingress.virtual_host_fqdn 값을 prometheus.<your.domain>으로 설정합니다(기본값은 prometheus.system.tanzu).
    alertmanager.pvc.storageClassName vSphere 스토리지 정책의 이름을 입력합니다.
    prometheus.pvc.storageClassName vSphere 스토리지 정책의 이름을 입력합니다.

Prometheus 설치

다음 단계를 완료하여 Prometheus 패키지를 설치합니다.
  1. 네임스페이스를 생성합니다.
    kubectl create ns tanzu-system-monitoring
  2. Prometheus를 설치합니다.
    tanzu package install prometheus -p prometheus.tanzu.vmware.com -v 2.45.0+vmware.1-tkg.2 --values-file prometheus-data-values.yaml -n tanzu-system-monitoring
  3. Prometheus 설치를 확인합니다.
    tanzu package installed list -n tanzu-system-monitoring
    tanzu package installed get prometheus -n tanzu-system-monitoring
  4. Prometheus 및 Altermanager 개체를 확인합니다.
    kubectl -n tanzu-system-monitoring get all
    kubectl -n tanzu-system-monitoring get pvc
    
    NAME                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    alertmanager        Bound    pvc-a53f7091-9823-4b70-a9b4-c3d7a1e27a4b   2Gi        RWO            k8s-policy     2m30s
    prometheus-server   Bound    pvc-41745d1d-9401-41d7-b44d-ba430ecc5cda   20Gi       RWO            k8s-policy     2m30s

Prometheus 설치 문제 해결

tanzu package install prometheus 작업에서 "최종 보급 주소를 가져오지 못함: 개인 IP 주소를 찾을 수 없으며 명시적 IP가 제공되지 않았습니다." 오류를 반환하는 경우 패키지 오버레이를 적용하여 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을 사용하여 overlay-alertmanager.yaml 파일에서 암호를 생성합니다.
    kubectl create secret generic alertmanager-overlay -n tkg-system -o yaml --dry-run=client --from-file=overlay-alertmanager.yaml | kubectl apply -f -
  3. Kubectl을 사용하여 오버레이 암호로 Prometheus 패키지에 주석을 추가합니다.
    kubectl annotate PackageInstall prometheus -n tkg-system ext.packaging.carvel.dev/ytt-paths-from-secret-name.1=alertmanager-overlay
  4. 설치 명령을 다시 실행합니다.
    tanzu package install prometheus -p prometheus.tanzu.vmware.com -v 2.37.0+vmware.3-tkg.1 --values-file prometheus-data-values.yaml -n tanzu-system-monitoring

Prometheus 대시보드 액세스

Prometheus가 설치되면 다음 단계를 완료하여 Prometheus 대시보드에 액세스합니다.
  1. prometheus-data-values.yaml 파일의 ingress 섹션이 모든 필수 필드로 채워져 있는지 확인합니다.
    ingress:
      enabled: true
      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:
  2. 엔보이 로드 밸런서를 사용하는 Contour의 공용(외부) IP 주소를 가져옵니다.

    엔보이를 사용하여 Contour 설치의 내용을 참조하십시오.

  3. 사용한 Prometheus FQDN(기본값은 prometheus.system.tanzu)을 엔보이 로드 밸런서의 IP 주소에 매핑하는 DNS 레코드를 생성합니다.
  4. 브라우저를 사용하여 Prometheus FQDN으로 이동하여 Prometheus 대시보드에 액세스합니다.