다음 지침에 따라 vSphere 8.x용 TKr을 실행하는 TKG 서비스 클러스터에 Alertmanager를 사용하여 Prometheus를 설치합니다.
사전 요구 사항
다음 사전 요구 사항을 준수합니다.
- 일반 요구 사항
- 패키지 저장소 생성.
- Cert Manager 설치.
- 엔보이를 사용하여 Contour 설치(Prometheus 대시보드에 액세스하는 데 필요)
- Prometheus 패키지 참조
Prometheus 데이터 값 생성
데이터 값 파일을 생성하여 Prometheus 설치를 준비합니다.
- 저장소에 대한 최신 Prometheus 패키지 버전을 가져옵니다.
tanzu package available get prometheus.tanzu.vmware.com -n tkg-system
또는 kubectl 사용.
kubectl -n tkg-system get packages | grep prometheus
참고: 일반적으로 요구 사항이 다른 경우가 아니면 최신 버전을 사용해야 합니다. 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은 생성할 데이터 값 파일의 이름과 경로입니다.
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 패키지를 설치합니다.
- 네임스페이스를 생성합니다.
kubectl create ns tanzu-system-monitoring
- 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
- Prometheus 설치를 확인합니다.
tanzu package installed list -n tanzu-system-monitoring
tanzu package installed get prometheus -n tanzu-system-monitoring
- 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 구성 요소를 재구성합니다.
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을 사용하여
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 -
- Kubectl을 사용하여 오버레이 암호로 Prometheus 패키지에 주석을 추가합니다.
kubectl annotate PackageInstall prometheus -n tkg-system ext.packaging.carvel.dev/ytt-paths-from-secret-name.1=alertmanager-overlay
- 설치 명령을 다시 실행합니다.
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 대시보드에 액세스합니다.
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:
- 엔보이 로드 밸런서를 사용하는 Contour의 공용(외부) IP 주소를 가져옵니다.
엔보이를 사용하여 Contour 설치의 내용을 참조하십시오.
- 사용한 Prometheus FQDN(기본값은
prometheus.system.tanzu
)을 엔보이 로드 밸런서의 IP 주소에 매핑하는 DNS 레코드를 생성합니다. - 브라우저를 사용하여 Prometheus FQDN으로 이동하여 Prometheus 대시보드에 액세스합니다.