Lesen Sie diese Anweisungen zum Installieren von Grafana auf einem TKG-Cluster, der mit TKr für vSphere 7.x bereitgestellt wird.

Voraussetzungen

Weitere Informationen hierzu finden Sie unter Workflow zum Installieren von Standardpaketen auf TKr für vSphere 7.x.

Installieren von Grafana

Installieren Sie Grafana.
  1. Listet die verfügbaren Grafana-Versionen im Repository auf.
    kubectl get packages -n tkg-system | grep grafana
  2. Erstellen Sie den Grafana-Namespace.
    kubectl create ns tanzu-system-dashboards
  3. Erstellen Sie eine PSA-Bezeichnung für den Namespace.
    kubectl label namespace tanzu-system-dashboards pod-security.kubernetes.io/enforce=privileged
  4. Alternativ können Sie den Grafana-Namespace und die Bezeichnung deklarativ mithilfe der Datei ns-grafana-dashboard.yaml erstellen.
    apiVersion: 
    v1kind: Namespace
    metadata:  
      name: grafana-dashboard
    ---
    apiVersion: v1
    kind: Namespace
    metadata:  
      name: tanzu-system-dashboards  
      labels:
        pod-security.kubernetes.io/enforce: privileged
  5. Erstellen Sie grafana-data-values.yaml.

    Weitere Informationen hierzu finden Sie unter Referenz zum Grafana-Paket.

  6. Erstellen Sie einen geheimen Schlüssel mithilfe der als Eingabe dienenden Datei 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
  7. Überprüfen Sie den geheimen Schlüssel.
    kubectl get secrets -A
    kubectl describe secret grafana-data-values -n tkg-system
  8. Passen Sie bei Bedarf grafana-data-values für Ihre Umgebung an.

    Informationen finden Sie unter Referenz zum Grafana-Paket.

    Wenn Sie die Datenwerte aktualisieren, aktualisieren Sie den geheimen Schlüssel mit dem folgenden Befehl.
    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
  9. Erstellen Sie eine grafana.yaml-Spezifikation.

    Weitere Informationen hierzu finden Sie unter Installieren von Grafana auf TKr für vSphere 7.x.

  10. Installieren Sie 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
  11. Überprüfen Sie die Installation des Grafana-Pakets.
    kubectl get pkgi -A | grep grafana
  12. Überprüfen Sie die Grafana-Objekte.
    kubectl get all -n tanzu-system-dashboards

Zugreifen auf das Grafana-Dashboard mithilfe von Envoy LoadBalancer

Wenn der erforderliche Contour Envoy-Dienst vom Typ „LoadBalancer“ bereitgestellt wird und Sie dies in der Grafana-Konfigurationsdatei angegeben haben, rufen Sie die externe IP-Adresse des Lastausgleichsdiensts ab und erstellen Sie DNS-Datensätze für den Grafana-FQDN.
  1. Rufen Sie die External-IP-Adresse für den Envoy-Dienst vom Typ LoadBalancer ab.
    kubectl get service envoy -n tanzu-system-ingress
    Die External-IP-Adresse sollte angezeigt werden, z. B.:
    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
    Alternativ können Sie die External-IP-Adresse mit dem folgenden Befehl abrufen.
    kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
  2. Zur Überprüfung der Installation der Grafana-Erweiterung aktualisieren Sie Ihre lokale /etc/hosts-Datei mit dem Grafana-FQDN, der der External-IP-Adresse des Lastausgleichsdiensts zugeordnet ist. Beispiel:
    127.0.0.1 localhost
    127.0.1.1 ubuntu
    #TKG Grafana Extension with Envoy Load Balancer
    10.195.141.17 grafana.system.tanzu
    
  3. Greifen Sie auf das Grafana-Dashboard zu und navigieren Sie zu https://grafana.system.tanzu.

    Da auf der Site selbstsignierte Zertifikate verwendet werden, müssen Sie möglicherweise durch eine browserspezifische Sicherheitswarnung navigieren, bevor Sie auf das Dashboard zugreifen können.

  4. Erstellen Sie für den Produktionszugriff zwei CNAME-Datensätze auf einem DNS-Server, der dem Grafana-Dashboard die Lastausgleichsdienstadresse External-IP des Envoy-Diensts zuordnet.

Zugreifen auf das Grafana-Dashboard mithilfe von Envoy NodePort

Wenn der erforderliche Contour Envoy-Dienst vom Typ „NodePort“ bereitgestellt wird und Sie dies in der Grafana-Konfigurationsdatei angegeben haben, rufen Sie die IP-Adresse der VM eines Worker-Knotens ab und erstellen Sie DNS-Datensätze für den Grafana-FQDN.
  1. Wechseln Sie den Kontext zum vSphere-Namespace, in dem der Cluster bereitgestellt wird.
    kubectl config use-context VSPHERE-NAMESPACE
  2. Listet die Knoten im Cluster auf.
    kubectl get virtualmachines
  3. Wählen Sie einen der Worker-Knoten aus und beschreiben Sie ihn mit dem folgenden Befehl.
    kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
  4. Suchen Sie die IP-Adresse der virtuellen Maschine, z. B. Vm Ip: 10.115.22.43.
  5. Zur Überprüfung der Installation der Grafana-Erweiterung aktualisieren Sie Ihre lokale /etc/hosts-Datei mit dem Grafana-FQDN, der der IP-Adresse des Worker-Knotens zugeordnet ist. Beispiel:
    127.0.0.1 localhost
    127.0.1.1 ubuntu
    # TKG Grafana with Envoy NodePort
    10.115.22.43 grafana.system.tanzu
    
  6. Greifen Sie auf das Grafana-Dashboard zu und navigieren Sie zu https://grafana.system.tanzu.

    Da auf der Site selbstsignierte Zertifikate verwendet werden, müssen Sie möglicherweise durch eine browserspezifische Sicherheitswarnung navigieren, bevor Sie auf das Dashboard zugreifen können.

grafana-data-values.yaml

Nachfolgend finden Sie die folgende Beispieldatei: 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

Nachfolgend finden Sie die folgende Beispielspezifikation: grafana.yaml. Aktualisieren Sie die Paketversion nach Bedarf.
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