Minikube を使用した Windows 環境での PSA の設定

警告:
  • Minikube は単一のマシンにインストールされます。したがって、Minikube で PSA を設定する場合は、スケーラブルでも高可用性でもありません。
  • 機能的には、Minikube の PSA と AKS、EKS、またはその他の Kubernetes クラスタの PSA に違いはありません。

次のように、Minikube を使用して Windows 環境で Web モニタリング PSA を設定します。

  1. Azure Windows 仮想マシンの作成
  2. Azure Windows 仮想マシンでの Minikube の設定
  3. Minikube クラスタへの Heimdall の展開

Azure Windows 仮想マシンの作成

以下の手順を実行します。

  1. Azure Portal にログインします。
  2. Virtual Machines にアクセスします。
  3. [CreateVirtual Machine] をクリックし、[Instance details] の以下の詳細を指定します。
    フィールド 説明
    仮想マシン名 仮想マシンの名前を指定します。
    イメージ Windows Server 2019 Datacenter - Gen2
    サイズ Standard_D8s_v3 - 8 vcpus, 32 GiB memory (US$ 483.26/month)
    注: 上記のシナリオでは、8 個の vCPU と 32Gb のメモリを備えた基本的なマシンが選択されています。負荷がより高い場合は、より大きなマシンを選択する必要がある場合があります。
  4. [Administrator account] で、ユーザー名とパスワードを指定します。
  5. [Review + create] をクリックします。
    注: 仮想マシンの展開が完了するまでに数分かかる場合があります。展開が完了すると、新しい仮想マシンが [Virtual Machines] の下に表示されます。
  6. 仮想マシンを開き、[ConnectRDP] をクリックします。
  7. 次のページで、[Download RDP File] をクリックしてファイルをダウンロードします。
  8. 前の手順でダウンロードしたRDPファイルを開きます。ユーザー名とパスワードを指定するように求められます。手順 4 で作成したユーザー名とパスワードを使用します。
    ヒント: ファイルを開くには、リモート デスクトップ アプリケーションがマシンにインストールされている必要があります。

Azure Windows 仮想マシンでの Minikube の設定

以下の手順を実行します。

  1. 作成した仮想マシンにログインします。
  2. Chocolatey パッケージマネージャをインストールします。
  3. 仮想マシンを再起動し、管理者として新しい Powershell を開きます。
  4. Minikube をインストールします。
    CODE
    choco install minikube
  5. Docker Desktop アプリケーションをインストールします。
    CODE
    choco install docker-desktop
  6. 仮想マシンを再起動します。
  7. Docker Desktop アプリケーションを起動し、[SettingsResources] に移動します。
    注: デフォルトでは、限られた CPU とメモリのみが Docker に割り当てられます。エージェントの設定が Docker 内で実行されるため、リソースの割り当てを増やします。

    リソースの割り当ての例:

    リソース
    CPU 8
    メモリ 25 GB
    Swap 1 GB
    ディスクイメージのサイズ 64 GB
  8. Minikube クラスタを開始します。
    CODE
    minikube start --driver=docker
    注: このコマンドにより、kubectl も設定されます。

Kubernetes クラスタの作成

Minikube をマシンにインストールすると、Docker 環境が付属しています。マシン上に Docker イメージをビルドし、それらのイメージを Kubernetes 展開に使用すると、Docker レジストリまたはハブからイメージがプルされ、ポッドの起動中にエラーが発生します。これは、マシンの Docker デーモンと Minikube の Docker デーモンが異なるために発生します。そのため、Docker イメージのビルドには Minikube Docker デーモンを使用する必要があります。

Minikube Docker デーモンを使用するには、次のコマンドを実行します。

CODE
minikube -p minikube docker-env | Invoke-Expression

Simple Synth PSA のインストール用の zip ファイルを、Splunk AppDynamics ダウンロードセンターまたはベータアップロードツールからダウンロードして、ファイルを仮想マシンにコピーします。

Kubernetes クラスタを開始するには、次のコマンドを実行します。

CODE
minikube start --kubernetes-version=v1.x.x

Pull the Pre-built Docker Image

Pull the pre-built docker images for sum-chrome-agent, sum-api-monitoring-agent, and sum-heimdall from DockerHub. The pre-built images include the dependent libraries, so you can use these images even when you do not have access to the Internet.

Run the following commands to pull the agent images:

CODE
docker pull appdynamics/heimdall-psa 
docker pull appdynamics/chrome-agent-psa 
docker pull appdynamics/api-monitoring-agent-psa

Alternatively, you can also download the .tar file from the Splunk AppDynamics Download Center. This file includes pre-built docker images for sum-chrome-agent, sum-api-monitoring-agent, sum-heimdall, ignite, and the dependent libraries. So, you can use these images when you do not have access to the Internet and DockerHub.

Unzip the .tar file and load the images using the following commands:
  • sum-chrome-agent:
    CODE
    docker load < ${webAgentTag}
  • sum-api-monitoring-agent:
    CODE
    docker load < ${apiAgentTag}
  • sum-heimdall:
    CODE
    docker load < ${heimdallTag}
  • ignite:
    CODE
    docker load < ${igniteTag}
For example:
CODE
# Load all Docker images
docker load -i heimdall-25.7.3098.tar
docker load -i api-monitoring-agent-1.0-415.tar
docker load -i chrome-agent-1.0-1067.tar
docker load -i ignite-2.16.0-jdk11.tar
Verify that all the images are loaded:
CODE
docker images | grep -E "(heimdall|api-monitoring|chrome-agent|ignite)"
When the images are loaded successfully, an output similar to the following is displayed:
CODE
```
829771730735.dkr.ecr.us-west-2.amazonaws.com/sum/heimdall                   25.7.3098    abc123def456   2 hours ago     500MB
829771730735.dkr.ecr.us-west-2.amazonaws.com/sum/api-monitoring-agent       1.0-415      def456ghi789   2 hours ago     300MB
829771730735.dkr.ecr.us-west-2.amazonaws.com/sum/chrome-agent               1.0-1067     ghi789jkl012   2 hours ago     800MB
apacheignite/ignite                                                         2.16.0       jkl012mno345   2 hours ago     400MB
```

カスタム Python ライブラリの追加

この手順は任意です。使用可能な標準ライブラリセットに加えて、スクリプト測定で使用するカスタム Python ライブラリをエージェントに追加できます。ベースイメージとしてロードしたイメージに基づいて新しいイメージをビルドします。
  1. Dockerfile を作成し、Python pip を実行する RUN ディレクティブを作成します。たとえば、algorithms ライブラリをインストールするには、次のように Dockerfile を作成します。
    CODE
    # Use the sum-chrome-agent image you just loaded as the base image FROM appdynamics/chrome-agent-psa:<agent-tag> 
    USER root 
    RUN apk add py3-pip 
    USER appdynamics 
    # Install algorithm for python3 on top of that 
    RUN python3 -m pip install algorithms==0.1.4 --break-system-packages
    注: 任意の数の ディレクティブを作成して、必要なライブラリをインストールできます。
  2. 新しいイメージをビルドするには、次のように入力します。
    CODE
    docker build -t sum-chrome-agent:<agent-tag> - < Dockerfile

    新しくビルドされたエージェントイメージには、必要なライブラリが含まれています。

Minikube の Docker デーモンへのイメージの保存

クラスタがアクセスできるように、イメージにタグを付けてレジストリにプッシュする必要があります。Minikube の Docker にイメージを保存するには、次のコマンドを実行します。

sum-heimdall-image

CODE
minikube image load appdynamics/heimdall-psa:<heimdall-tag>

sum-chrome-image

CODE
minikube image load appdynamics/chrome-agent-psa:<chrome-tag>

sum-api-monitoring-image

CODE
minikube image load appdynamics/api-monitoring-agent-psa:<api-monitoring-tag>

Web モニタリング PSA の展開

イメージがレジストリに登録されると、アプリケーションはクラスタに展開されます。Helm チャートを使用して、必要な順序ですべての Kubernetes リソースを展開および作成します。
  1. Chocolatey パッケージマネージャを使用して Helm をインストールします。
    CODE
    choco install kubernetes-helm
  2. Apache Ignite ポッドを実行するための新しい名前空間を作成します。
    警告:
    • 最初に Apache Ignite のコマンドを実行してから、Heimdall のコマンドを実行してください。
    • PSA 23.12 以降、Ignite と Heimdall を measurement という名前の単一の名前空間に展開する必要があります。

    新しい measurement 名前空間を作成するには、次のように入力します。

    CODE
    kubectl create namespace measurement
    Apache Ignite を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードした ignite-psa.tgz ファイルに移動し、次のように入力します。
    CODE
    helm show values ignite-psa.tgz > values-ignite.yaml
    注: 永続性を有効にする場合は、[永続性(persistence)] を [有効(enabled)] に設定します。この設定は、オプションです。
  3. 上記の設定を使用して Helm チャートを展開するには、すでにダウンロードした ファイルに移動し、次のように入力します。
    CODE
    helm install synth ignite-psa.tgz --values values-ignite.yaml --namespace measurement
    すべての Kubernetes リソースがクラスタに作成され、Apache Ignite を使用できます。数秒後、Apache Ignite が初期化され、コントローラに表示されます。
  4. ポッドが実行されているかどうかを確認するには、次のように入力します。
    CODE
    kubectl get pods --namespace measurement
    Apache Ignite ポッドが正常に実行された後にのみ、次の手順に進みます。
  5. 1 つのコマンドを使用して、展開の詳細を含む Helm チャートを展開できます。エージェントを展開するには、以前にダウンロードした zip ファイルの Helm チャート を使用します。Private Synthetic Agent を展開する前に、いくつかの設定オプションを設定する必要があります。設定オプションを表示するには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動し、次のように入力します。
    CODE
    helm show values sum-psa-heimdall.tgz > values.yaml
    以下は、values.yaml ファイルで編集する必要がある設定キーと値のペアです。

    設定キー

    agent > repository sum-chrome-agent:
    agent > tag <agent-tag>
    heimdall > pullPolicy なし
    heimdall > repository sum-heimdall
    heimdall > tag <heimdall-tag>
    shepherd > credentials ログイン情報
    shepherd > location agent location
    shepherd > url シェパード URL
    残りの値はデフォルトのままにすることも、要件に基づいて設定することもできます。
  6. 上記の設定を使用して Helm チャートを展開するには、すでにダウンロードした ファイルに移動し、次のように入力します。
    CODE
    helm install heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
    すべての Kubernetes リソースがクラスタに作成され、Heimdall を使用できます。数秒後、Heimdall が初期化され、コントローラに表示されます。
  7. ポッドが実行されているかどうかを確認するには、次のように入力します。
    CODE
    kubectl get pods --namespace measurement
    初期導入後に values.yaml に変更を加えるには、すでにダウンロードした sum-psa-heimdall.tgz ファイルに移動して、次のように入力します。
    CODE
    helm upgrade heimdall-onprem sum-psa-heimdall.tgz --values values.yaml --namespace measurement
    注意: 展開を削除するには、次のコマンドを実行します。
    CODE
    helm uninstall heimdall-onprem --namespace measurement
    これは、必要でない限り推奨されません。