Fare riferimento a queste istruzioni per l'installazione di Grafana in un cluster TKG sottoposto a provisioning con TKr per vSphere 7.x.
Prerequisiti
Vedere Workflow per l'installazione di pacchetti standard in una TKr per vSphere 7.x.
Installazione di Grafana
Installare Grafana.
- Visualizzare l'elenco delle versioni di Grafana disponibili nel repository.
kubectl get packages -n tkg-system | grep grafana
- Creare lo spazio dei nomi di Grafana.
kubectl create ns tanzu-system-dashboards
- Creare l'etichetta PSA per lo spazio dei nomi.
kubectl label namespace tanzu-system-dashboards pod-security.kubernetes.io/enforce=privileged
- In alternativa, creare in modo dichiarativo lo spazio dei nomi e l'etichetta di Grafana utilizzando il file
ns-grafana-dashboard.yaml
.apiVersion: v1kind: Namespace metadata: name: grafana-dashboard --- apiVersion: v1 kind: Namespace metadata: name: tanzu-system-dashboards labels: pod-security.kubernetes.io/enforce: privileged
- Creare il file
grafana-data-values.yaml
. - Creare un segreto utilizzando il file
grafana-data-values.yaml
come input.kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tkg-system
secret/grafana-data-values created
- Verificare il segreto.
kubectl get secrets -A
kubectl describe secret grafana-data-values -n tkg-system
- Se necessario, personalizzare
grafana-data-values
per il proprio ambiente.Fare riferimento a Informazioni di riferimento sul pacchetto Grafana.
Se si aggiornano i valori dei dati, aggiornare il segreto con il comando seguente.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
- Creare la specifica
grafana.yaml
. - Installare 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
- Verificare l'installazione del pacchetto Grafana.
kubectl get pkgi -A | grep grafana
- Verificare gli oggetti di Grafana.
kubectl get all -n tanzu-system-dashboards
Accesso al dashboard di Grafana tramite LoadBalancer di Envoy
Se è distribuito il prerequisito del servizio Contour Envoy di tipo LoadBalancer e questo è stato specificato nel file di configurazione di Grafana, ottenere l'indirizzo IP esterno del bilanciamento del carico e creare record DNS per il FQDN di Grafana.
- Ottenere l'indirizzo
External-IP
per il servizio Envoy di tipo LoadBalancer.kubectl get service envoy -n tanzu-system-ingress
Dovrebbe essere visualizzato l'indirizzoExternal-IP
restituito, ad esempio: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
In alternativa, è possibile ottenere l'indirizzoExternal-IP
utilizzando il comando seguente.kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
- Per verificare l'installazione dell'estensione Grafana, aggiornare il file
/etc/hosts
locale con il FQDN Grafana mappato all'indirizzoExternal-IP
del bilanciamento del carico, ad esempio:127.0.0.1 localhost 127.0.1.1 ubuntu #TKG Grafana Extension with Envoy Load Balancer 10.195.141.17 grafana.system.tanzu
- Accedere al dashboard di Grafana passando a
https://grafana.system.tanzu
.Poiché il sito utilizza certificati autofirmati, potrebbe essere necessario esaminare un avviso di sicurezza specifico del browser prima di poter accedere al dashboard.
- Per l'accesso alla produzione, creare due record CNAME in un server DNS che mappano l'indirizzo
External-IP
del bilanciamento del carico del servizio Envoy al dashboard di Grafana.
Accesso al dashboard di Grafana tramite NodePort di Envoy
Se il prerequisito del servizio Contour Envoy di tipo NodePort è distribuito ed è stato specificato nel file di configurazione di Grafana, ottenere l'indirizzo IP della macchina virtuale di un nodo di lavoro e creare record DNS per il FQDN di Grafana.
- Passare al contesto dello Spazio dei nomi vSphere in cui viene eseguito il provisioning del cluster.
kubectl config use-context VSPHERE-NAMESPACE
- Elencare i nodi nel cluster.
kubectl get virtualmachines
- Scegliere uno dei nodi di lavoro e descriverlo utilizzando il comando seguente.
kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- Individuare l'indirizzo IP della macchina virtuale, ad esempio
Vm Ip: 10.115.22.43
. - Per verificare l'installazione dell'estensione Grafana, aggiornare il file
/etc/hosts
locale con il FQDN Grafana mappato all'indirizzo IP del nodo di lavoro, ad esempio:127.0.0.1 localhost 127.0.1.1 ubuntu # TKG Grafana with Envoy NodePort 10.115.22.43 grafana.system.tanzu
- Accedere al dashboard di Grafana passando a
https://grafana.system.tanzu
.Poiché il sito utilizza certificati autofirmati, potrebbe essere necessario esaminare un avviso di sicurezza specifico del browser prima di poter accedere al dashboard.
grafana-data-values.yaml
Fare riferimento al file
grafana-data-values.yaml
di esempio seguente.
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
Fare riferimento alla specifica
grafana.yaml
di esempio seguente. Aggiornare la versione del pacchetto in base alle esigenze.
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