请参阅以下说明,在使用适用于 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 配置文件中指明了这一点,请获取工作节点的虚拟机 IP 地址,并为 Grafana FQDN 创建 DNS 记录。
- 将上下文切换到置备了集群的 vSphere 命名空间。
kubectl config use-context VSPHERE-NAMESPACE
- 列出集群中的节点。
kubectl get virtualmachines
- 选择其中一个工作节点,然后使用以下命令对其进行描述。
kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- 找到虚拟机的 IP 地址,例如
Vm Ip: 10.115.22.43
。 - 要验证 Grafana 扩展的安装,请使用映射到工作节点 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