Déployer Grafana sur des clusters de charge de travail

Cette rubrique explique comment déployer Grafana dans un cluster de charge de travail. Les procédures ci-dessous s'appliquent aux déploiements vSphere, Amazon Web Services (AWS) et Azure.

Grafana

Grafana est un logiciel open source qui vous permet de visualiser et d'analyser les données de mesures collectées par Prometheus sur vos clusters. Tanzu Kubernetes Grid inclut un module Grafana que vous pouvez déployer sur vos clusters de charge de travail.

Conditions requises

Important

La prise en charge des adresses IPv6 dans Tanzu Kubernetes Grid est limitée, reportez-vous à la section Déployer des clusters sur IPv6 (vSphere uniquement). Si vous n'effectuez pas le déploiement dans un environnement de mise en réseau IPv6 uniquement, vous devez fournir des adresses IPv4 dans les étapes suivantes.

Préparer le cluster de charge de travail pour le déploiement Grafana

Pour préparer le cluster :

  1. Obtenez les informations d'identification de l'administrateur du cluster de charge de travail dans lequel vous souhaitez déployer Grafana. Par exemple :

    tanzu cluster kubeconfig get my-cluster --admin
    
  2. Définissez le contexte de kubectl sur le cluster. Par exemple :

    kubectl config use-context my-cluster-admin@my-cluster
    
  3. Activez l'entrée pour Grafana : par défaut, l'entrée est activée sur Grafana. Cela vous oblige à installer les modules suivants :

Passez à l'étape Déployer Grafana sur un cluster de charge de travail.

Déployer Grafana dans le cluster de charge de travail

Pour déployer Grafana :

  1. Si le cluster ne dispose pas d'un référentiel de modules avec le module Grafana installé, tel que le référentiel tanzu-standard, installez-en un :

    tanzu package repository add PACKAGE-REPO-NAME --url PACKAGE-REPO-ENDPOINT --namespace tkg-system
    

    Où :

    • PACKAGE-REPO-NAME est le nom du référentiel de modules, tel que tanzu-standard ou le nom d'un registre d'images privé configuré avec des variables ADDITIONAL_IMAGE_REGISTRY.
    • PACKAGE-REPO-ENDPOINT est l'URL du référentiel de modules.

      • Pour cette version, l'URL tanzu-standard est projects.registry.vmware.com/tkg/packages/standard/repo:v2023.10.16. Reportez-vous à la section Répertorier les référentiels de modules (List Package Repositories) pour obtenir cette valeur depuis la CLI Tanzu ou, dans Tanzu Mission Control, consultez la liste Modules complémentaires (Addons) > Référentiels (Repositories) dans le volet Cluster.
  2. Vérifiez que le module Grafana est disponible dans votre cluster de charge de travail :

    tanzu package available list -A
    
  3. Récupérez la version du module disponible :

    tanzu package available list grafana.tanzu.vmware.com -A
    | Retrieving package versions for grafana.tanzu.vmware.com...
     NAME                           VERSION                          RELEASED-AT           NAMESPACE
     grafana.tanzu.vmware.com       9.5.1+vmware.2-tkg.3             2021-05-19T18:00:00Z  tanzu-package-repo-global
    
  4. Créez un fichier de configuration pour votre configuration Grafana :

    tanzu package available get grafana.tanzu.vmware.com/PACKAGE-VERSION --default-values-file-output FILE-PATH
    
    

    PACKAGE-VERSION est la version du module Grafana que vous souhaitez installer et FILE-PATH est l'emplacement dans lequel vous souhaitez enregistrer le fichier de configuration (par exemple, grafana-data-values.yaml).

    Pour plus d'informations sur les paramètres de configuration à utiliser dans grafana-data-values.yaml, reportez-vous à la section Paramètres de configuration du module Grafana ci-dessous.

  5. Modifiez grafana-data-values.yaml et remplacez secret.admin_password par un mot de passe codé en Base64. Pour générer un mot de passe codé en Base64, exécutez :

    echo -n 'mypassword' | base64
    

    Vous pouvez également utiliser l'outil de codage Base64 disponible à l'adresse suivante https://www.base64encode.org/ pour coder votre mot de passe. Par exemple, si vous utilisez l'une ou l'autre de ces méthodes, mypassword génère le mot de passe codé bXlwYXNzd29yZA==.

  6. vSphere with Tanzu : Si vous déployez Grafana sur un cluster de charge de travail créé à l'aide d'un superviseur vSphere with Tanzu, attribuez une valeur non nulle à grafana.pvc.storageClassName dans le fichier grafana-data-values.yaml :

    grafana:
    pvc:
      storageClassName: STORAGE-CLASS
    

    STORAGE-CLASS est le nom de la classe de stockage du cluster, tel que renvoyé par kubectl get storageclass.

  7. (Facultatif) Modifiez la configuration de la source de données Grafana dans grafana-data-values.yaml. Grafana est configuré avec Prometheus comme source de données par défaut. Si vous avez personnalisé l'espace de noms de déploiement Prometheus et qu'il n'est pas déployé dans l'espace de noms par défaut tanzu-system-monitoring, vous devez modifier la configuration de la source de données Grafana dans grafana-data-values.yaml. Pour modifier la configuration de la source de données, copiez la section ci-dessous dans la position indiquée et modifiez url au besoin.

    #! The namespace in which to deploy grafana.
    namespace: tanzu-system-dashboards
    
    grafana:
      #! The grafana configuration.
      config:
        #! Refer to https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-config-file
        datasource_yaml: |-
          apiVersion: 1
          datasources:
            - name: Prometheus
              type: prometheus
              url: prometheus-server.<change-to-prometheus-namespace>.svc.cluster.local
              access: proxy
              isDefault: true
    

    Pour plus d'informations sur les paramètres de configuration à utiliser dans grafana-data-values.yaml, reportez-vous à la section Paramètres de configuration du module Grafana ci-dessous.

  8. Après avoir apporté les modifications nécessaires à votre fichier grafana-data-values.yaml, supprimez tous les commentaires qu'il contient :

    yq -i eval '... comments=""' grafana-data-values.yaml
    
  9. Déployez le module :

    tanzu package install grafana \
    --package grafana.tanzu.vmware.com \
    --version AVAILABLE-PACKAGE-VERSION \
    --values-file grafana-data-values.yaml \
    --namespace TARGET-NAMESPACE
    

    Où :

    • TARGET-NAMESPACE est l'espace de noms dans lequel vous souhaitez installer le module Grafana. Par exemple, l'espace de noms my-packages ou tanzu-user-managed-packages.

      • Si l'indicateur --namespace n'est pas spécifié, la CLI Tanzu utilise l'espace de noms default. Les espaces Grafana et toutes les autres ressources associées au composant Grafana sont créés dans l'espace de noms que vous configurez dans grafana-data-values.yaml. N'installez pas le module Grafana dans cet espace de noms.
      • L'espace de noms spécifié doit déjà exister, par exemple en exécutant kubectl create namespace my-packages.
    • AVAILABLE-PACKAGE-VERSION est la version que vous avez récupérée ci-dessus.

    Par exemple :

    tanzu package install grafana --package grafana.tanzu.vmware.com --version 9.5.1+vmware.2-tkg.3 --values-file grafana-data-values.yaml --namespace my-packages
    
    - Installing package 'grafana.tanzu.vmware.com'
    | Getting namespace 'my-packages'
    | Getting package metadata for 'grafana.tanzu.vmware.com'
    | Creating service account 'grafana-my-packages-sa'
    | Creating cluster admin role 'grafana-my-packages-cluster-role'
    | Creating cluster role binding 'grafana-my-packages-cluster-rolebinding'
    | Creating secret 'grafana-my-packages-values'
    - Creating package resource
    \ Package install status: Reconciling
    
     Added installed package 'grafana' in namespace 'my-packages'
    
    Remarque

    Si l'installation échoue avec error: Secret in version "v1" cannot be handled as a Secret: illegal base64 data at input byte 4 (reason: BadRequest), reportez-vous à la section Secret non créé lors de l'installation de Grafana à partir du fichier YAML par défaut du document Dépannage des problèmes de cluster de charge de travail.

Vérifier le déploiement Grafana

Après avoir déployé Grafana, vous pouvez vérifier que le déploiement a réussi :

  1. Vérifiez que le module Grafana est installé. Par exemple :

    tanzu package installed list -A
    / Retrieving installed packages...
    NAME            PACKAGE-NAME                     PACKAGE-VERSION          STATUS               NAMESPACE
    cert-manager    cert-manager.tanzu.vmware.com    1.11.1+vmware.1-tkg.1     Reconcile succeeded  my-packages
    contour         contour.tanzu.vmware.com         1.24.4+vmware.1-tkg.1    Reconcile succeeded  my-packages
    grafana         grafana.tanzu.vmware.com         9.5.1+vmware.2-tkg.3     Reconcile succeeded  tkg-system
    prometheus      prometheus.tanzu.vmware.com      2.43.0+vmware.1-tkg.1    Reconcile succeeded  tkg-system
    antrea          antrea.tanzu.vmware.com                                   Reconcile succeeded  tkg-system
    [...]
    

    Le module grafana et l'application grafana sont installés dans l'espace de noms que vous spécifiez lors de l'exécution de la commande tanzu package install.

  2. Vérifiez que l'application grafana a été rapprochée :

    kubectl get apps -A
    

    Par exemple :

    NAMESPACE     NAME                           DESCRIPTION           SINCE-DEPLOY   AGE
    my-packages   cert-manager                   Reconcile succeeded   37s            21h
    my-packages   contour                        Reconcile succeeded   33s            129m
    my-packages   grafana                        Reconcile succeeded   19s            6m56s
    my-packages   prometheus                     Reconcile succeeded   46s            21h
    tkg-system    antrea                         Reconcile succeeded   3m50s          24h
    [...]
    

    Si l'état n'est pas Reconcile succeeded, affichez les détails de l'état complet de l'application grafana. L'affichage de l'état complet peut vous aider à résoudre le problème :

    kubectl get app grafana --namespace PACKAGE-NAMESPACE -o yaml
    

    PACKAGE-NAMESPACE est l'espace de noms dans lequel vous avez installé le module.

  3. Vérifiez que les nouveaux services sont en cours d'exécution en répertoriant tous les espaces qui s'exécutent dans le cluster :

    kubectl get pods -A
    

    Dans l'espace de noms tanzu-system-dashboards, vous devez voir le service grafana s'exécutant dans un espace :

    NAMESPACE               NAME                                    READY   STATUS    RESTARTS   AGE
    [...]
    tanzu-system-dashboards   grafana-6865dbb4f5-pk2qg              2/2     Running   0          7m7s
    [...]
    

Les espaces Grafana et toutes les autres ressources associées au composant Grafana sont créés dans l'espace de noms que vous avez fourni dans grafana-data-values.yaml. Si vous utilisez l'espace de noms par défaut, ceux-ci sont créés dans l'espace de noms tanzu-system-dashboards.

Paramètres de configuration du module Grafana

Il existe deux façons d'afficher les paramètres de configuration du module Grafana :

Vérifier le schéma du module

Pour récupérer le schéma du module :

tanzu package available get grafana.tanzu.vmware.com/9.5.1+vmware.2-tkg.3 -n AVAILABLE-PACKAGE-NAMESPACE --values-schema

Cette commande répertorie les paramètres de configuration du module Grafana et leurs valeurs par défaut. Vous pouvez utiliser la sortie pour mettre à jour le fichier grafana-data-values.yml que vous avez créé à l'étape Préparer le fichier de configuration du module Grafana ci-dessus.

Vérifier les paramètres de configuration

Le tableau suivant répertorie les paramètres de configuration du module Grafana et décrit leurs valeurs par défaut.

Vous pouvez définir les valeurs de configuration suivantes dans le fichier grafana-data-values.yml que vous avez créé à l'étape Déployer Grafana sur un cluster de charge de travail ci-dessus.

Paramètre Description Type Par défaut
namespace Espace de noms dans lequel Grafana sera déployé. String tanzu-system-dashboards
grafana.deployment.replicas Nombre de réplicas Grafana. Entier 1
grafana.deployment.containers.resources Demandes et limites de ressources du conteneur Grafana. Mappage {}
grafana.deployment.k8sSidecar.containers.resources Demandes et limites de ressources du conteneur k8s-sidecar. Mappage {}
grafana.deployment.podAnnotations Annotations d'espaces des déploiements Grafana. Mappage {}
grafana.deployment.podLabels Étiquettes d'espaces des déploiements Grafana. Mappage {}
grafana.service.type Type de service pour exposer Grafana. Valeurs prises en charge : ClusterIP, NodePort et LoadBalancer. (Pour vSphere, définissez ce paramètre sur NodePort). String LoadBalancer
grafana.service.port Port de service Grafana. Entier 80
grafana.service.targetPort Port cible du service Grafana. Entier 9093
grafana.service.labels Étiquettes de service Grafana. Mappage {}
grafana.service.annotations Annotations de service Grafana. Mappage {}
grafana.config.grafana_ini Pour plus d'informations sur la configuration de Grafana, reportez-vous à la section Grafana Configuration Defaults dans GitHub. Fichier de config grafana.ini
grafana.config.datasource_yaml Pour plus d'informations sur la configuration de la source de données, reportez-vous à la documentation de Grafana. String prometheus
grafana.config.dashboardProvider_yaml Pour plus d'informations sur la configuration du fournisseur de tableaux de bord, reportez-vous à la documentation de Grafana. Fichier YAML provider.yaml
grafana.pvc.annotations Classe de stockage à utiliser pour la réclamation de volume persistant. Par défaut, cette valeur est nulle et le provisionneur par défaut est utilisé. String null
grafana.pvc.storageClassName Classe de stockage à utiliser pour la réclamation de volume persistant. Par défaut, cette valeur est nulle et le provisionneur par défaut est utilisé. String null
grafana.pvc.accessMode Définissez le mode d'accès pour la réclamation de volume persistant. Valeurs prises en charge : ReadWriteOnce, ReadOnlyMany et ReadWriteMany. String ReadWriteOnce
grafana.pvc.storage Définissez la taille de stockage pour la réclamation de volume persistant. String 2Gi
grafana.secret.type Type de secret défini pour le tableau de bord Grafana. String Opaque
grafana.secret.admin_user Nom d'utilisateur codé en Base64 pour accéder au tableau de bord Grafana. La valeur par défaut est YWRtaW4=, ce qui équivaut à admin en texte brut. String YWRtaW4=
grafana.secret.admin_password Mot de passe d'utilisateur codé en Base64 pour accéder au tableau de bord Grafana. La valeur par défaut est YWRtaW4=, ce qui équivaut à admin en texte brut. String YWRtaW4=
ingress.enabled Activez/désactivez l'entrée pour Grafana. Booléen true
ingress.virtual_host_fqdn Nom d'hôte pour accéder à Grafana. String grafana.system.tanzu
ingress.prefix Préfixe de chemin pour Grafana. String /
ingress.servicePort Port du service Grafana vers le trafic proxy. Entier 80
ingress.tlsCertificate.tls.crt Certificat facultatif pour l'entrée si vous souhaitez utiliser votre propre certificat TLS. Un certificat auto-signé est généré par défaut. Remarque tls.crt est une clé et n'est pas imbriqué. String Generated cert
ingress.tlsCertificate.tls.key Clé privée de certificat facultative pour l'entrée si vous souhaitez utiliser votre propre certificat TLS. Remarque tls.key est une clé et n'est pas imbriqué. String Generated cert private key
ingress.tlsCertificate.ca.crt Certificat facultatif d'autorité de certification. Remarque ca.crt est une clé et n'est pas imbriqué. String CA certificate

Mettre à jour un déploiement Grafana en cours d'exécution

Pour apporter des modifications à la configuration du module Grafana après le déploiement, mettez à jour votre module Grafana déployé :

  1. Mettez à jour la configuration Grafana dans le fichier grafana-data-values.yaml.

  2. Mettez à jour le module installé :

    tanzu package installed update grafana \
    --version 9.5.1+vmware.2-tkg.3 \
    --values-file grafana-data-values.yaml \
    --namespace my-packages
    

    Sortie attendue :

    | Updating package 'grafana'
    - Getting package install for 'grafana'
    | Updating secret 'grafana-my-packages-values'
    | Updating package install for 'grafana'
    
     Updated package install 'grafana' in namespace 'my-packages'
    

Le module Grafana est rapproché à l'aide de la nouvelle valeur ou des nouvelles valeurs que vous avez ajoutées. L'application des modifications pour kapp-controller peut prendre jusqu'à cinq minutes.

Pour plus d'informations sur la mise à jour, reportez-vous à la section Mettre à jour un module.

Supprimer un déploiement Grafana

Pour supprimer le module Grafana de votre cluster, exécutez :

tanzu package installed delete grafana --namespace my-packages

Pour plus d'informations sur la suppression, reportez-vous à la section Supprimer un module.

Accéder au tableau de bord Grafana

Une fois Grafana déployé, le module Grafana crée un objet HTTPProxy Contour avec le nom de domaine complet grafana.system.tanzu.

Pour utiliser ce nom de domaine complet pour accéder au tableau de bord Grafana :

  1. Créez une entrée dans votre fichier /etc/hosts local qui pointe une adresse IP vers ce nom de domaine complet :

    • AWS ou Azure : Utilisez l'adresse IP de l'équilibrage de charge pour le service Envoy dans l'espace de noms tanzu-system-ingress.
    • vSphere : Utilisez l’adresse IP d’un nœud worker.
  2. Accédez à https://grafana.system.tanzu.

Étant donné que le site utilise des certificats auto-signés, vous pouvez éventuellement recevoir un avertissement de sécurité spécifique du navigateur avant de pouvoir accéder au tableau de bord.

check-circle-line exclamation-circle-line close-line
Scroll to top icon