Cette rubrique décrit comment déployer et gérer l'extension TKG v1.3.1 pour Grafana. Grafana vous permet d'interroger, de visualiser, d'alerter et d'explorer les mesures, quel que soit l'endroit où elles sont stockées. Grafana fournit des outils pour former des graphiques et des visualisations à partir des données d'application. Déployez l'extension TKG pour Grafana afin de générer et d'afficher des mesures pour les clusters Tanzu Kubernetes.
Conditions préalables de l'extension Grafana
- Provisionner un cluster. Reportez-vous à la section Workflow de provisionnement de clusters Tanzu Kubernetes à l'aide de TKGS v1alpha2 API.
Note : Vous devez déployer un cluster qui utilise le domaine de service par défaut (
cluster.local
). - Connectez-vous au cluster. Reportez-vous à la section Se connecter à un cluster Tanzu Kubernetes en tant qu'utilisateur vCenter Single Sign-On.
- Télécharger le bundle d'extensions TKG 1.3.1 sur l'hôte client sur lequel vous exécutez les commandes kubectl.
- Applications requises pour l'installation des extensions TKG sur le cluster cible.
Conditions requises supplémentaires pour l'extension Grafana
Certaines conditions supplémentaires sont requises avant et après l'installation de l'extension TKG v1.3.1 pour la surveillance Grafana.
- En outre, l'extension de surveillance Grafana nécessite une classe de stockage persistante par défaut. Vous pouvez créer un cluster avec une classe de stockage persistante par défaut ou en spécifier un dans le fichier de configuration Grafana lors du déploiement de l'extension. Reportez-vous à la section Vérifier les exigences de stockage persistant pour les extensions TKG.
- Une fois l'extension Grafana déployée, vous accédez au tableau de bord Grafana via HTTP/S à l'aide de l'adresse IP exposée par l'un des types de service Kubernetes suivants : ClusterIP (par défaut), NodePort ou LoadBalancer. Pour accéder au tableau de bord Grafana depuis l'extension du cluster, déployez l'extension Contour avant de déployer Grafana. Pour déployer l'extension Contour, consultez Déployer et gérer l'extension TKG pour la surveillance Grafana.
Grafana prend en charge les types de service Kubernetes suivants :
Type de service Description Accessibilité ClusterIP
Expose le service sur une adresse IP interne au cluster. Le service est uniquement accessible depuis le cluster. NodePort
Expose le service sur l'adresse IP de chaque nœud sur un port statique. Le service est accessible à l'extérieur du cluster. LoadBalancer
Expose le service en externe à l'aide d'un équilibrage de charge. Le service est accessible à l'extérieur du cluster. ClusterIP
est la valeur par défaut, mais elle est uniquement accessible depuis le cluster. Si vous utilisez la mise en réseau NSX-T pour le Cluster superviseur, créez un service Contour Envoy de type LoadBalancer. Si vous utilisez la mise en réseau vSphere vDS pour le Cluster superviseur, créez un service Contour Envoy de type LoadBalancer ou NodePort, selon votre vos exigences.
Déployer l'extension Grafana pour la visualisation et l'analyse
Conteneur | Type de ressource | Réplicas | Description |
---|---|---|---|
Grafana | Déploiement | 2 | Visualisation des données |
- Vérifiez que vous avez rempli chacune des conditions préalables de l'extension Grafana. Reportez-vous à la section Conditions préalables de l'extension Grafana.
- Remplacez le répertoire par celui de l'extension Grafana.
cd /tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana
- Créez l'espace de noms
tanzu-system-monitoring
, ainsi que le compte de service et les objets de rôle Grafana.kubectl apply -f namespace-role.yaml
- Créez un fichier de valeurs de données Grafana.
L'exemple de fichier de valeurs de données fournit la configuration minimale requise.
cp grafana-data-values.yaml.example grafana-data-values.yaml
- Configurez l'extension Grafana en mettant à jour
grafana-data-values.yaml
.Personnalisez la configuration si nécessaire. Reportez-vous à la section Configurer l'extension Grafana.
Le
admin_password
doit être codé en base64, mais il ne bloquera pas le déploiement de l'extension si ce n'est pas le cas. Dans l'exemple ci-dessous, le mot de passe « admin » est codé en base64. Codez votre propre mot de passe Grafana ici : https://www.base64encode.org/.Si le cluster n'est pas provisionné avec une classe de stockage par défaut, vous pouvez le spécifier dans le fichier de valeurs de données. Assurez-vous également que l'espace de noms dispose de suffisamment de stockage pour les réclamations de volume persistant.monitoring: grafana: image: repository: "projects.registry.vmware.com/tkg/grafana" pvc: storage_class: vwt-storage-policy storage: "8Gi" secret: admin_password: "YWRtaW4=" grafana_init_container: image: repository: "projects.registry.vmware.com/tkg/grafana" grafana_sc_dashboard: image: repository: "projects.registry.vmware.com/tkg/grafana"
Si vous avez déployé Contour avec un service Envoy de type LoadBalancer ou NodePort, spécifiez-le dans le fichier de configuration, comme indiqué. Consultez Configurer l'extension Grafana pour plus d'informations.monitoring: grafana: service: type: LoadBalancer OR NodePort
Par défaut, l'extension Grafana crée le nom de domaine complet
grafana.system.tanzu
pour accéder au tableau de bord Grafana. Vous pouvez personnaliser ce nom de domaine complet en spécifiant le nom d'hôte souhaité dans le fichier de configuration surmonitoring.grafana.ingress.virtual_host_fqdn
. Consultez Configurer l'extension Grafana pour plus d'informations. - Créez le secret Grafana avec le fichier
grafana-data-values
.kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tanzu-system-monitoring
Le secret
grafana-data-values
est créé dans l'espace de nomstanzu-system-monitoring
. Effectuez la vérification à l'aide de la commandekubectl get secrets -n tanzu-system-monitoring
. - Déployez l'extension Grafana.
kubectl apply -f grafana-extension.yaml
En cas de réussite, l'application Grafana est créée :
app.kappctrl.k14s.io/grafana created
. - Vérifiez l'état de l'application Grafana.
kubectl get app grafana -n tanzu-system-monitoring
L'état doit passer deReconciling
àReconcile succeeded
. Si l'état estReconcile failed
, reportez-vous à la section Dépannage. - Affichez l'état détaillé sur l'application Grafana.
kubectl get app grafana -n tanzu-system-monitoring -o yaml
- Vérifiez le déploiement Grafana.
kubectl get deployments -n tanzu-system-monitoring
Accéder au tableau de bord Grafana à l'aide d'un service Envoy Contour de type LoadBalancer
- Obtenez l'adresse
External-IP
pour le service Envoy de type LoadBalancer.kubectl get service envoy -n tanzu-system-ingress
Vous devez voir l'adresseExternal-IP
renvoyée, par exemple :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
Vous pouvez également obtenir l'adresseExternal-IP
à l'aide de la commande suivante.kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
- Pour vérifier l'installation de l'extension Grafana, mettez à jour votre fichier
/etc/hosts
local avec le nom de domaine complet Grafana mappé à l'adresseExternal-IP
de l'équilibrage de charge, par exemple :127.0.0.1 localhost 127.0.1.1 ubuntu # TKG Grafana Extension with Envoy Load Balancer 10.195.141.17 grafana.system.tanzu
- Accédez au tableau de bord Grafana via 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.
- Pour un accès en production, créez deux enregistrements CNAME sur un serveur DNS qui mappent l'adresse
External-IP
de l'équilibrage de charge du service Envoy au tableau de bord Grafana.
Accéder au tableau de bord Grafana à l'aide d'un service Envoy Contour de type NodePort
- Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster est provisionné.
kubectl config use-context VSPHERE-NAMESPACE
- Répertoriez les nœuds du cluster.
kubectl get virtualmachines
Vous devez voir les nœuds de cluster, par exemple :NAME POWERSTATE AGE tkgs-cluster-X-control-plane-6dgln poweredOn 6h7m tkgs-cluster-X-control-plane-j6hq6 poweredOn 6h10m tkgs-cluster-X-control-plane-xc25f poweredOn 6h14m tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm poweredOn 6h12m tkgs-cluster-X-workers-9twdr-59bc54dc97-pjptr poweredOn 6h12m tkgs-cluster-X-workers-9twdr-59bc54dc97-t45mn poweredOn 6h12m
- Choisissez l'un des nœuds worker et décrivez-le à l'aide de la commande suivante.
kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- Localisez l'adresse IP de la machine virtuelle, par exemple
Vm Ip: 10.115.22.43
. - Pour vérifier l'installation de l'extension Grafana, mettez à jour votre fichier
/etc/hosts
local avec le nom de domaine complet Grafana mappé à l'adresse IP du nœud worker, par exemple :127.0.0.1 localhost 127.0.1.1 ubuntu # TKGS Grafana with Envoy NodePort 10.115.22.43 grafana.system.tanzu
- Accédez au tableau de bord Grafana via 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.
Dépanner le déploiement de Grafana
En cas d'échec du déploiement ou du rapprochement, exécutez kubectl get pods -A
pour afficher l'état de l'espace. Les espaces contour
et envoy
doivent être à l'état Running
. Si l'état de l'espace est ImagePullBackOff
ou ImageCrashLoopBackOff
, l'image de conteneur n'a pas pu être extraite. Vérifiez l'URL du registre dans les valeurs de données et les fichiers YAML de l'extension, et assurez-vous qu'elles sont correctes.
name-XXXX
est le nom d'espace unique lorsque vous exécutez
kubectl get pods -A
:
kubectl logs pod/grafana-XXXX -c grafana -n tanzu-system-monitoring
Mettre à jour l'extension Grafana
Mettez à jour l'extension Grafana déployée sur un cluster Tanzu Kubernetes.
- Obtenez les valeurs de données Grafana actuelles à partir du secret
grafana-data-values
.kubectl get secret grafana-data-values -n tanzu-system-monitoring -o 'go-template={{ index .data "values.yaml" }}' | base64 -d > grafana-data-values.yaml
- Mettez à jour les valeurs des données Grafana dans
grafana-data-values.yaml
. Reportez-vous à la section Configurer l'extension Grafana. - Mettez à jour le secret des valeurs de données Grafana.
kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tanzu-system-monitoring -o yaml --dry-run | kubectl replace -f-
L'extension Grafana est rapprochée des valeurs de données mises à jour.Note : Par défaut, kapp-controller synchronise les applications toutes les 5 minutes. La mise à jour doit prendre effet en 5 minutes ou moins. Si vous souhaitez que la mise à jour prenne effet immédiatement, modifiezsyncPeriod
dansgrafana-extension.yaml
à une valeur inférieure et appliquez l'extension Grafana à l'aidekubectl apply -f grafana-extension.yaml
. - Vérifiez l'état de l'extension.
kubectl get app grafana -n tanzu-system-monitoring
L'état doit être
Reconcile Succeeded
une fois que Grafana est mise à jour. - Affichez l'état détaillé et dépannez si nécessaire.
kubectl get app grafana -n tanzu-system-monitoring -o yaml
Supprimer l'extension Grafana
tanzu-system-monitoring
. Si vous avez déployé les deux extensions sur le même cluster, supprimez chaque extension avant de supprimer l'espace de noms.
- Remplacez le répertoire par celui de l'extension Grafana.
cd /tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana
- Supprimez l'application Grafana.
kubectl delete app grafana -n tanzu-system-monitoring
Résultat attendu :
app.kappctrl.k14s.io "grafana" deleted
- Vérifiez que l'application Grafana est supprimée.
kubectl get app grafana -n tanzu-system-monintoring
Résultat attendu :
apps.kappctrl.k14s.io "grafana" not found
- Supprimez l'espace de noms
tanzu-system-monitoring
, ainsi que le compte de service et les objets de rôle Grafana.Avertissement : N'effectuez pas cette étape si Prometheus est déployé.kubectl delete -f namespace-role.yaml
- Si vous souhaitez redéployer Grafana, supprimez le secret
grafana-data-values
.kubectl delete secret grafana-data-values -n tanzu-system-monitoring
Résultat attendu :
secret "grafana-data-values" deleted
Mettre à niveau l'extension Grafana
- Exportez le configmap Grafana et enregistrez-le en tant que sauvegarde.
kubectl get configmap grafana -n tanzu-system-monitoring -o 'go-template={{ index .data "grafana.yaml" }}' > grafana-configmap.yaml
- Supprimez l'extension Grafana existante. Reportez-vous à la section Supprimer l'extension Grafana.
- Déployez l'extension Grafana. Reportez-vous à la section Déployer l'extension Grafana pour la visualisation et l'analyse.
Configurer l'extension Grafana
/tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana/grafana-data-values.yaml
.
Paramètre | Description | Type | Par défaut |
---|---|---|---|
monitoring.namespace | Espace de noms dans lequel Prometheus sera déployé | string | tanzu-system-monitoring |
monitoring.create_namespace | L'indicateur permet de savoir s'il faut créer l'espace de noms spécifié par monitoring.namespace | booléen | false |
monitoring.grafana.cluster_role.apiGroups | Groupe d'API défini pour le rôle de cluster Grafana | liste | [""] |
monitoring.grafana.cluster_role.resources | Ressources définies pour le rôle de cluster Grafana | liste | ["configmaps", "secrets"] |
monitoring.grafana.cluster_role.verbs | autorisation d'accès définie pour clusterrole | liste | ["get", "watch", "list"] |
monitoring.grafana.config.grafana_ini | Détails du fichier de configuration Grafana | fichier de config | grafana.ini Dans ce fichier, l'URL |
monitoring.grafana.config.datasource.type | Type de source de données Grafana | string | prometheus |
monitoring.grafana.config.datasource.access | Mode d'accès. Proxy ou direct (serveur ou navigateur dans l'interface utilisateur) | string | proxy |
monitoring.grafana.config.datasource.isDefault | Marquer comme source de données Grafana par défaut | booléen | true |
monitoring.grafana.config.provider_yaml | Fichier de config pour définir le fournisseur du tableau de bord grafana | Fichier yaml | provider.yaml |
monitoring.grafana.service.type | Type de service pour exposer Grafana. Valeurs prises en charge : ClusterIP, NodePort, LoadBalancer | string | vSphere : NodePort, aws/azure : LoadBalancer |
monitoring.grafana.pvc.storage_class | Définissez le mode d'accès pour la réclamation de volume persistant. Valeurs prise en charge : ReadWriteOnce, ReadOnlyMany, ReadWriteMany | string | ReadWriteOnce |
monitoring.grafana.pvc.storage | Définir la taille de stockage pour la réclamation de volume persistant | string | 2Gi |
monitoring.grafana.deployment.replicas | Nombre de réplicas grafana | entier | 1 |
monitoring.grafana.image.repository | Emplacement du référentiel avec l'image Grafana. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana.image.name | Nom de l'image Grafana | string | grafana |
monitoring.grafana.image.tag | Balise d'image Grafana. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version. | string | v7.3.5_vmware.1 |
monitoring.grafana.image.pullPolicy | Stratégie d'extraction d'image Grafana | string | IfNotPresent |
monitoring.grafana.secret.type | Type secret défini pour le tableau de bord Grafana | string | Opaque |
monitoring.grafana.secret.admin_user | Nom d'utilisateur pour accéder au tableau de bord Grafana | string | YWRtaW4= La valeur est codée en base64, à décoder : |
monitoring.grafana.secret.admin_password | Mot de passe pour accéder au tableau de bord Grafana | string | null |
monitoring.grafana.secret.ldap_toml | Si vous utilisez l'authentification LDAP, chemin d'accès au fichier de configuration LDAP | string | "" |
monitoring.grafana_init_container.image.repository | Référentiel contenant l'image de conteneur d'initialisation Grafana. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana_init_container.image.name | Nom de l'image de conteneur d'initialisation Grafana | string | k8s-sidecar |
monitoring.grafana_init_container.image.tag | Balise d'image de conteneur d'initialisation Grafana. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version. | string | 0.1.99 |
monitoring.grafana_init_container.image.pullPolicy | Stratégie d'extraction d'image de conteneur d'initialisation Grafana | string | IfNotPresent |
monitoring.grafana_sc_dashboard.image.repository | Référentiel contenant l'image du tableau de bord Grafana. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana_sc_dashboard.image.name | Nom de l'image du tableau de bord Grafana | string | k8s-sidecar |
monitoring.grafana_sc_dashboard.image.tag | Balise d'image du tableau de bord Grafana. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version. | string | 0.1.99 |
monitoring.grafana_sc_dashboard.image.pullPolicy | Stratégie d'extraction d'image du tableau de bord Grafana | string | IfNotPresent |
monitoring.grafana.ingress.enabled | Activer/désactiver l'entrée pour Grafana | booléen | true |
monitoring.grafana.ingress.virtual_host_fqdn | Nom d'hôte pour accéder à Grafana | string | grafana.system.tanzu |
monitoring.grafana.ingress.prefix | Préfixe du chemin d'accès pour Grafana | string | / |
monitoring.grafana.ingress.tlsCertificate.tls.crt | Certificat facultatif pour entrée si vous souhaitez utiliser votre propre certificat TLS. Un cert auto-signé est généré par défaut | string | Certificat généré |
monitoring.grafana.ingress.tlsCertificate.tls.key | Clé privée de certificat facultatif pour entrée si vous souhaitez utiliser votre propre certificat TLS. | string | Clé de certificat généré |