ワークロード クラスタへの Grafana の展開

このトピックでは、ワークロード クラスタに Grafana を展開する方法について説明します。次の手順は、vSphere、Amazon Web Services (AWS)、および Azure の展開に適用されます。

Grafana

Grafana は、クラスタ上の Prometheus によって収集されたメトリック データを視覚化および分析できるオープンソース ソフトウェアです。Tanzu Kubernetes Grid には、ワークロード クラスタに展開できる Grafana パッケージが含まれています。

前提条件

重要

Tanzu Kubernetes Grid での IPv6 アドレスのサポートは制限されています。「IPv6 でのクラスタの展開(vSphere のみ)」を参照してください。IPv6 のみのネットワーク環境に展開しない場合は、次の手順で IPv4 アドレスを指定する必要があります。

Grafana 展開のためのワークロード クラスタの準備

クラスタを準備するには、次の手順を実行します。

  1. Grafana を展開するワークロード クラスタの管理者認証情報を取得します。例:

    tanzu cluster kubeconfig get my-cluster --admin
    
  2. kubectl のコンテキストをクラスタに設定します。例:

    kubectl config use-context my-cluster-admin@my-cluster
    
  3. Grafana の入力方向を有効にする:デフォルトでは、Grafana は入力方向を有効にしています。そのため、次のパッケージをインストールする必要があります。

ワークロード クラスタへの Grafana の展開」に進みます。

ワークロード クラスタへの Grafana の展開

Grafana を展開するには、次の手順を実行します。

  1. クラスタに、tanzu-standard リポジトリなどの、Grafana パッケージがインストールされたパッケージ リポジトリがない場合は、次の方法でインストールします。

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

    ここで、

    • PACKAGE-REPO-NAME はパッケージ リポジトリの名前です。tanzu-standard や、ADDITIONAL_IMAGE_REGISTRY 変数で構成されたプライベート イメージ レジストリの名前が入ります。
    • PACKAGE-REPO-ENDPOINT はパッケージ リポジトリの URL です。

      • このリリースでは、tanzu-standard の URL は projects.registry.vmware.com/tkg/packages/standard/repo:v2023.10.16 です。Tanzu CLI からこの値を取得するには、「パッケージ リポジトリの一覧表示」を参照してください。また、Tanzu Mission Control では [クラスタ (Cluster)] ペインの [アドオン (Addons)] > [リポジトリ (Repositories)] リストを参照してください。
  2. Grafana パッケージがワークロード クラスタで使用可能であることを確認します。

    tanzu package available list -A
    
  3. 使用可能なパッケージのバージョンを取得します。

    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. Grafana 構成の構成ファイルを作成します。

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

    ここで、PACKAGE-VERSION はインストールする Grafana パッケージのバージョンで、FILE-PATHgrafana-data-values.yaml などの構成ファイルを保存する場所です。

    grafana-data-values.yaml で使用する構成パラメータの詳細については、以下の「Grafana パッケージ構成パラメータ」を参照してください。

  5. grafana-data-values.yaml を編集し、secret.admin_password を Base64 エンコードされたパスワードに置き換えます。Base64 でエンコードされたパスワードを生成するには、次のコマンドを実行します。

    echo -n 'mypassword' | base64
    

    https://www.base64encode.org/ の Base64 エンコード ツールを使用してパスワードをエンコードすることもできます。たとえば、いずれかの方法で mypassword を使用すると、エンコードされたパスワードは bXlwYXNzd29yZA== になります。

  6. vSphere with Tanzu:vSphere with Tanzu スーパーバイザーによって作成されたワークロード クラスタに Grafana を展開する場合は、grafana-data-values.yaml ファイルの grafana.pvc.storageClassName に null 以外の値を設定します。

    grafana:
    pvc:
      storageClassName: STORAGE-CLASS
    

    ここで、STORAGE-CLASS は、kubectl get storageclass によって返されるクラスタのストレージ クラスの名前です。

  7. (オプション)grafana-data-values.yaml で Grafana データソースの構成を変更します。Grafana は、Prometheus をデフォルトのデータソースとして使用して構成されています。Prometheus 展開の名前空間をカスタマイズしていて、デフォルトの名前空間 (tanzu-system-monitoring) に展開されていない場合は、grafana-data-values.yaml で Grafana データソース構成を変更する必要があります。データソース構成を変更するには、以下のセクションを表示されている位置にコピーし、必要に応じて url を変更します。

    #! 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
    

    grafana-data-values.yaml で使用する構成パラメータの詳細については、以下の「Grafana パッケージ構成パラメータ」を参照してください。

  8. grafana-data-values.yaml ファイルに必要な変更を加えた後、そのファイルのすべてのコメントを削除します。

    yq -i eval '... comments=""' grafana-data-values.yaml
    
  9. パッケージの展開:

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

    ここで、

    • TARGET-NAMESPACE は、Grafana パッケージをインストールする名前空間です。たとえば、my-packages または tanzu-user-managed-packages 名前空間などです。

      • --namespace フラグが指定されていない場合、Tanzu CLI は default 名前空間を使用します。Grafana ポッドおよび Grafana コンポーネントに関連付けられているその他のリソースは、grafana-data-values.yaml で設定した名前空間に作成されます。Grafana パッケージをこの名前空間にインストールしないでください。
      • 指定された名前空間は、たとえば kubectl create namespace my-packages を実行することによってすでに存在している必要があります。
    • AVAILABLE-PACKAGE-VERSION は、上で取得したバージョンです。

    例:

    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'
    

    インストールに失敗して「error: Secret in version "v1" cannot be handled as a Secret: illegal base64 data at input byte 4 (reason: BadRequest)」というメッセージが表示される場合は、「ワークロード クラスタの問題のトラブルシューティング」の「デフォルトの YAML ファイルから Grafana をインストールするときにシークレットが作成されない」を参照してください。

Grafana の展開の確認

Grafana を展開したら、展開が成功したことを確認できます。

  1. Grafana パッケージがインストールされていることを確認します。例:

    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
    [...]
    

    grafana パッケージと grafana アプリケーションは、tanzu package install コマンドを実行するときに指定した名前空間にインストールされます。

  2. grafana アプリケーションが正常に調整されていることを確認します。

    kubectl get apps -A
    

    例:

    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
    [...]
    

    ステータスが Reconcile succeeded でない場合は、grafana アプリケーションの完全なステータスの詳細を表示します。完全なステータスを表示すると、問題のトラブルシューティングに役立ちます。

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

    ここで、PACKAGE-NAMESPACE は、パッケージをインストールした名前空間です。

  3. クラスタで実行されているすべてのポッドを一覧表示して、新しいサービスが実行されていることを確認します。

    kubectl get pods -A
    

    tanzu-system-dashboards 名前空間に、ポッドで実行されている grafana サービスが表示されます。

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

Grafana ポッドおよび Grafana コンポーネントに関連付けられているその他のリソースは、grafana-data-values.yaml で指定した名前空間に作成されます。デフォルトの名前空間を使用している場合は、tanzu-system-dashboards 名前空間に作成されます。

Grafana パッケージ構成パラメータ

Grafana パッケージの構成パラメータを表示するには、次の 2 つの方法があります。

パッケージ スキーマの確認

パッケージ スキーマを取得するには、次の手順を実行します。

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

このコマンドは、Grafana パッケージの構成パラメータとそのデフォルト値を一覧表示します。この出力を使用して、上記の「Grafana パッケージ構成ファイルの準備」で作成した grafana-data-values.yml ファイルを更新できます。

構成パラメータの確認

次の表に、Grafana パッケージの構成パラメータとそのデフォルト値を示します。

上記の「ワークロード クラスタへの Grafana の展開」で作成した grafana-data-values.yml ファイルに次の構成値を設定できます。

パラメータ 説明 タイプ デフォルト
namespace Grafana が展開される名前空間。 文字列 tanzu-system-dashboards
grafana.deployment.replicas Grafana レプリカの数。 整数 1
grafana.deployment.containers.resources Grafana コンテナのリソース要求と制限。 マップ {}
grafana.deployment.k8sSidecar.containers.resources k8s-sidecar コンテナのリソース要求と制限。 マップ {}
grafana.deployment.podAnnotations Grafana 展開ポッドの注釈。 マップ {}
grafana.deployment.podLabels Grafana 展開ポッドのラベル。 マップ {}
grafana.service.type Grafana を公開するサービスのタイプ。サポートされる値:ClusterIPNodePortLoadBalancer。(vSphere の場合は NodePort に設定します) 文字列 LoadBalancer
grafana.service.port Grafana サービス ポート。 整数 80
grafana.service.targetPort Grafana サービス ターゲット ポート。 整数 9093
grafana.service.labels Grafana サービス ラベル。 マップ {}
grafana.service.annotations Grafana サービスの注釈。 マップ {}
grafana.config.grafana_ini Grafana 構成の詳細については、GitHub の「Grafana 構成のデフォルト」を参照してください。 構成ファイル grafana.ini
grafana.config.datasource_yaml データソース構成の詳細については、Grafana のドキュメントを参照してください。 文字列 prometheus
grafana.config.dashboardProvider_yaml ダッシュボード プロバイダ構成の詳細については、Grafana のドキュメントを参照してください。 YAML ファイル provider.yaml
grafana.pvc.annotations パーシステント ボリュームの要求に使用するストレージ クラス。これはデフォルトで null で、デフォルトのプロビジョナが使用されます。 文字列 null
grafana.pvc.storageClassName パーシステント ボリュームの要求に使用するストレージ クラス。これはデフォルトで null で、デフォルトのプロビジョナが使用されます。 文字列 null
grafana.pvc.accessMode パーシステント ボリューム要求に対しアクセス モードを定義します。サポートされる値:ReadWriteOnceReadOnlyManyReadWriteMany 文字列 ReadWriteOnce
grafana.pvc.storage パーシステント ボリューム要求に対しストレージ サイズを定義します。 文字列 2Gi
grafana.secret.type Grafana ダッシュボードに定義されたシークレット タイプ。 文字列 Opaque
grafana.secret.admin_user Grafana ダッシュボードにアクセスするための Base64 でエンコードされたユーザー名。デフォルトは YWRtaW4= で、プレーン テキストの admin に相当します。 文字列 YWRtaW4=
grafana.secret.admin_password Grafana ダッシュボードにアクセスするための Base64 でエンコードされたパスワード。デフォルトは YWRtaW4= で、プレーン テキストの admin に相当します。 文字列 YWRtaW4=
ingress.enabled Grafana に対し入力方向を有効または無効にします。 Boolean true
ingress.virtual_host_fqdn Grafana にアクセスするホスト名。 文字列 grafana.system.tanzu
ingress.prefix Grafana のパス プリフィックス。 文字列 /
ingress.servicePort トラフィックをプロキシする Grafana サービス ポート。 整数 80
ingress.tlsCertificate.tls.crt 独自の TLS 証明書を使用する場合は入力方向のオプションの証明書。自己署名の証明書はデフォルトで生成されます。 tls.crt はキーであり、ネストされていません。 文字列 Generated cert
ingress.tlsCertificate.tls.key 独自の TLS 証明書を使用する場合は、入力方向のオプション証明書プライベート キー。 tls.key はキーであり、ネストされていません。 文字列 Generated cert private key
ingress.tlsCertificate.ca.crt オプション CA 証明書。 ca.crt はキーであり、ネストされていません。 文字列 CA certificate

実行中の Grafana 展開の更新

展開後に Grafana パッケージの構成を変更するには、展開された Grafana パッケージを更新します。

  1. grafana-data-values.yaml ファイルで Grafana 構成を更新します。

  2. インストール済みパッケージを更新します。

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

    予期される出力:

    | 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'
    

Grafana パッケージは、追加した新しい値を使用して調整されます。kapp-controller が変更を適用するまでに最大 5 分かかることがあります。

更新の詳細については、「パッケージの更新」を参照してください。

Grafana 展開の削除

クラスタで Grafana パッケージを削除するには、次のコマンドを実行します。

tanzu package installed delete grafana --namespace my-packages

削除の詳細については、「パッケージの削除」を参照してください。

Grafana ダッシュボードへのアクセス

Grafana が展開されると、Grafana パッケージは、grafana.system.tanzu の完全修飾ドメイン名 (FQDN) を持つ Contour HTTPProxy オブジェクトを作成します。

この FQDN を使用して Grafana ダッシュボードにアクセスするには、次の手順を実行します。

  1. IP アドレスをこの FQDN にポイントするエントリを、ローカルの /etc/hosts ファイルに作成します。

    • AWS または Azure:tanzu-system-ingress 名前空間の Envoy サービスに LoadBalancer の IP アドレスを使用します。
    • vSphere:ワーカー ノードの IP アドレスを使用します。
  2. https://grafana.system.tanzu に移動します。

サイトでは自己署名証明書が使用されるため、ダッシュボードにアクセスする前にブラウザ固有のセキュリティ警告を確認しなければならない場合があります。

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