請按照下列指示,在執行適用於 vSphere 8.x 的 TKr 的 TKG 服務 叢集上安裝 Prometheus with Alertmanager。
必要條件
請遵循以下必要條件。
- 一般需求
- 建立套件存放庫.
- 安裝 Cert Manager.
- 安裝 Contour with Envoy (存取 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 with Envoy 負載平衡器的公用 (外部) IP 位址。
- 建立 DNS 記錄,以將使用的 Prometheus FQDN (預設為
prometheus.system.tanzu
) 對應到 Envoy 負載平衡器的 IP 位址。 - 使用瀏覽器導覽至 Prometheus FQDN,以存取 Prometheus 儀表板。