このトピックでは、ワークロード クラスタに Grafana を展開する方法について説明します。次の手順は、vSphere、Amazon Web Services (AWS)、および Azure の展開に適用されます。
Grafana は、クラスタ上の Prometheus によって収集されたメトリック データを視覚化および分析できるオープンソース ソフトウェアです。Tanzu Kubernetes Grid には、ワークロード クラスタに展開できる Grafana パッケージが含まれています。
kubectl
。重要Tanzu Kubernetes Grid での IPv6 アドレスのサポートは制限されています。「IPv6 でのクラスタの展開(vSphere のみ)」を参照してください。IPv6 のみのネットワーク環境に展開しない場合は、次の手順で IPv4 アドレスを指定する必要があります。
クラスタを準備するには、次の手順を実行します。
Grafana を展開するワークロード クラスタの管理者認証情報を取得します。例:
tanzu cluster kubeconfig get my-cluster --admin
kubectl のコンテキストをクラスタに設定します。例:
kubectl config use-context my-cluster-admin@my-cluster
Grafana の入力方向を有効にする:デフォルトでは、Grafana は入力方向を有効にしています。そのため、次のパッケージをインストールする必要があります。
「ワークロード クラスタへの Grafana の展開」に進みます。
Grafana を展開するには、次の手順を実行します。
クラスタに standard
パッケージ リポジトリがまだインストールされていない場合は、インストールします。
注プランベースのクラスタ(レガシー)をターゲットとする場合は、この手順をスキップします。プランベースのクラスタの場合は、
tanzu-standard
パッケージ リポジトリは、すべてのクラスタのtanzu-package-repo-global
名前空間で自動的に有効になります。
tanzu package repository add tanzu-standard --url PACKAGE-REPOSITORY-ENDPOINT --namespace tkg-system
ここで、PACKAGE-REPOSITORY-ENDPOINT
は standard
パッケージ リポジトリの URL です。このリリースでは、URL は projects.registry.vmware.com/tkg/packages/standard/repo:v2.1.1
です。
Tanzu CLI からこの値を取得するには、「パッケージ リポジトリの一覧表示」を参照してください。また、Tanzu Mission Control では [クラスタ (Cluster)] ペインの [アドオン (Addons)] > [リポジトリ (Repositories)] リストを参照してください。
Grafana パッケージがワークロード クラスタで使用可能であることを確認します。
tanzu package available list -A
使用可能なパッケージのバージョンを取得します。
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 7.5.17+vmware.1-tkg.1 2021-05-19T18:00:00Z tanzu-package-repo-global
Grafana 構成の構成ファイルを作成します。
tanzu package available get grafana.tanzu.vmware.com/PACKAGE-VERSION --default-values-file-output FILE-PATH
ここで、PACKAGE-VERSION
はインストールする Grafana パッケージのバージョンで、FILE-PATH
は grafana-data-values.yaml
などの構成ファイルを保存する場所です。
grafana-data-values.yaml
で使用する構成パラメータの詳細については、以下の「Grafana パッケージ構成パラメータ」を参照してください。
grafana-data-values.yaml
を編集し、secret.admin_password
を Base64 エンコードされたパスワードに置き換えます。Base64 でエンコードされたパスワードを生成するには、次のコマンドを実行します。
echo -n 'mypassword' | base64
https://www.base64encode.org/ の Base64 エンコード ツールを使用してパスワードをエンコードすることもできます。たとえば、いずれかの方法で mypassword
を使用すると、エンコードされたパスワードは bXlwYXNzd29yZA==
になります。
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
によって返されるクラスタのストレージ クラスの名前です。
(オプション)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 パッケージ構成パラメータ」を参照してください。
grafana-data-values.yaml
ファイルに必要な変更を加えた後、そのファイルのすべてのコメントを削除します。
yq -i eval '... comments=""' grafana-data-values.yaml
パッケージの展開:
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 7.5.17+vmware.1-tkg.1 --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 パッケージがインストールされていることを確認します。例:
tanzu package installed list -A
/ Retrieving installed packages...
NAME PACKAGE-NAME PACKAGE-VERSION STATUS NAMESPACE
cert-manager cert-manager.tanzu.vmware.com 1.1.0+vmware.1-tkg.2 Reconcile succeeded my-packages
contour contour.tanzu.vmware.com 1.17.1+vmware.1-tkg.1 Reconcile succeeded my-packages
grafana grafana.tanzu.vmware.com 7.5.17+vmware.1-tkg.1 Reconcile succeeded tkg-system
prometheus prometheus.tanzu.vmware.com 2.27.0+vmware.1-tkg.1 Reconcile succeeded tkg-system
antrea antrea.tanzu.vmware.com Reconcile succeeded tkg-system
[...]
grafana
パッケージと grafana
アプリケーションは、tanzu package install
コマンドを実行するときに指定した名前空間にインストールされます。
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
は、パッケージをインストールした名前空間です。
クラスタで実行されているすべてのポッドを一覧表示して、新しいサービスが実行されていることを確認します。
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 パッケージの構成パラメータを表示するには、次の 2 つの方法があります。
パッケージ スキーマを取得するには、次の手順を実行します。
tanzu package available get grafana.tanzu.vmware.com/7.5.17+vmware.1-tkg.1 -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 を公開するサービスのタイプ。サポートされる値:ClusterIP 、NodePort 、LoadBalancer 。(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 | パーシステント ボリューム要求に対しアクセス モードを定義します。サポートされる値:ReadWriteOnce 、ReadOnlyMany 、ReadWriteMany 。 |
文字列 | 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-data-values.yaml
ファイルで Grafana 構成を更新します。
インストール済みパッケージを更新します。
tanzu package installed update grafana \
--version 7.5.17+vmware.1-tkg.1 \
--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 パッケージを削除するには、次のコマンドを実行します。
tanzu package installed delete grafana --namespace my-packages
削除の詳細については、「パッケージの削除」を参照してください。
Grafana が展開されると、Grafana パッケージは、grafana.system.tanzu
の完全修飾ドメイン名 (FQDN) を持つ Contour HTTPProxy オブジェクトを作成します。
この FQDN を使用して Grafana ダッシュボードにアクセスするには、次の手順を実行します。
IP アドレスをこの FQDN にポイントするエントリを、ローカルの /etc/hosts
ファイルに作成します。
tanzu-system-ingress
名前空間の Envoy サービスに LoadBalancer の IP アドレスを使用します。https://grafana.system.tanzu
に移動します。
サイトでは自己署名証明書が使用されるため、ダッシュボードにアクセスする前にブラウザ固有のセキュリティ警告を確認しなければならない場合があります。