請按照下列指示,在使用適用於 vSphere 7.x 的 TKr 佈建的 TKG 叢集上安裝 Grafana。
必要條件
安裝 Grafana
安裝 Grafana。
- 列出存放庫中可用的 Grafana 版本。
kubectl get packages -n tkg-system | grep grafana
- 建立 Grafana 命名空間。
kubectl create ns tanzu-system-dashboards
- 為命名空間建立 PSA 標籤。
kubectl label namespace tanzu-system-dashboards pod-security.kubernetes.io/enforce=privileged
- 或者,使用檔案
ns-grafana-dashboard.yaml
以宣告方式建立 Grafana 命名空間和標籤。apiVersion: v1kind: Namespace metadata: name: grafana-dashboard --- apiVersion: v1 kind: Namespace metadata: name: tanzu-system-dashboards labels: pod-security.kubernetes.io/enforce: privileged
- 建立
grafana-data-values.yaml
。請參閱Grafana 套件參考。
- 使用
grafana-data-values.yaml
檔案作為輸入,建立密碼。kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tkg-system
secret/grafana-data-values created
- 驗證密碼。
kubectl get secrets -A
kubectl describe secret grafana-data-values -n tkg-system
- 如有必要,請為您的環境自訂
grafana-data-values
。請參閱Grafana 套件參考。
如果您更新資料值,請使用下列命令更新密碼。kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tkg-system -o yaml --dry-run=client | kubectl replace -f-
secret/grafana-data-values replaced
- 建立
grafana.yaml
規格。 - 安裝 Grafana。
kubectl apply -f grafana.yaml
serviceaccount/grafana-sa created clusterrolebinding.rbac.authorization.k8s.io/grafana-role-binding created packageinstall.packaging.carvel.dev/grafana created
- 確認 Grafana 套件的安裝。
kubectl get pkgi -A | grep grafana
- 確認 Grafana 物件。
kubectl get all -n tanzu-system-dashboards
使用 Envoy LoadBalancer 存取 Grafana 儀表板
如果部署了類型為 LoadBalancer 的必要 Contour Envoy 服務,並且您在 Grafana 組態檔中指定了這一點,請取得負載平衡器的外部 IP 位址,並為 Grafana FQDN 建立 DNS 記錄。
- 取得類型為 LoadBalancer 的 Envoy 服務的
External-IP
位址。kubectl get service envoy -n tanzu-system-ingress
您應該會看到傳回的External-IP
位址,例如:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE envoy LoadBalancer 10.99.25.220 10.195.141.17 80:30437/TCP,443:30589/TCP 3h27m
或者,也可以使用下列命令取得External-IP
位址。kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
- 若要驗證 Grafana 延伸的安裝,請使用對應至負載平衡器的
External-IP
位址的 Grafana FQDN 來更新本機/etc/hosts
檔案,例如:127.0.0.1 localhost 127.0.1.1 ubuntu #TKG Grafana Extension with Envoy Load Balancer 10.195.141.17 grafana.system.tanzu
- 導覽到
https://grafana.system.tanzu
,存取 Grafana 儀表板。由於站台使用自我簽署憑證,您可能需要瀏覽特定於瀏覽器的安全性警告,然後才能存取儀表板。
- 若要進行生產存取,請在 DNS 伺服器上建立兩條 CNAME 記錄,以將 Envoy 服務負載平衡器
External-IP
位址對應到 Grafana 儀表板。
使用 Envoy NodePort 存取 Grafana 儀表板
如果部署了類型為 NodePort 的必要 Contour Envoy 服務,並且在 Grafana 組態檔中指定了這一點,請取得 worker 節點的虛擬機器 IP 位址,並為 Grafana FQDN 建立 DNS 記錄。
- 將內容切換至佈建叢集所在的 vSphere 命名空間。
kubectl config use-context VSPHERE-NAMESPACE
- 列出叢集中的節點。
kubectl get virtualmachines
- 使用下列命令選擇其中一個 worker 節點並加以說明。
kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- 找到虛擬機器的 IP 位址,例如
Vm Ip: 10.115.22.43
。 - 若要驗證 Grafana 延伸的安裝,請使用對應至 worker 節點 IP 位址的 Grafana FQDN 來更新本機
/etc/hosts
檔案,例如:127.0.0.1 localhost 127.0.1.1 ubuntu # TKG Grafana with Envoy NodePort 10.115.22.43 grafana.system.tanzu
- 導覽到
https://grafana.system.tanzu
,存取 Grafana 儀表板。由於站台使用自我簽署憑證,您可能需要瀏覽特定於瀏覽器的安全性警告,然後才能存取儀表板。
grafana-data-values.yaml
請參閱以下範例
grafana-data-values.yaml
檔案。
namespace: tanzu-system-dashboards grafana: pspNames: "vmware-system-restricted" deployment: replicas: 1 updateStrategy: Recreate pvc: accessMode: ReadWriteOnce storage: 2Gi storageClassName: wcpglobalstorageprofile secret: admin_user: YWRtaW4= admin_password: YWRtaW4= type: Opaque service: port: 80 targetPort: 3000 type: LoadBalancer ingress: enabled: true prefix: / servicePort: 80 virtual_host_fqdn: grafana.system.tanzu
grafana.yaml
請參閱以下範例
grafana.yaml
規格。根據需要更新套件版本。
apiVersion: v1 kind: ServiceAccount metadata: name: grafana-sa namespace: tkg-system annotations: pod-security.kubernetes.io/enforce: "privileged" --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-role-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: grafana-sa namespace: tkg-system --- apiVersion: packaging.carvel.dev/v1alpha1 kind: PackageInstall metadata: name: grafana namespace: tkg-system spec: serviceAccountName: grafana-sa packageRef: refName: grafana.tanzu.vmware.com versionSelection: constraints: 10.0.1+vmware.1-tkg.2 #PKG-VERSION values: - secretRef: name: grafana-data-values