KVM での仮想アプライアンスのアップグレード

仮想アプライアンスのアップグレードには以下が含まれます。

  • 既存の仮想マシンのハードディスクのバックアップ。
  • QCOW2 イメージを使用した新しい仮想マシンの展開。
  • ハードディスクへのバックアップの復元。
  • 古い仮想マシンへの新しいハードディスクの接続

Splunk AppDynamics オンプレミス仮想アプライアンスは、仮想アプライアンスのアップグレードに役立つリファレンススクリプトを提供します。

KVM で仮想アプライアンスをアップグレードするための手順に従ってください。

仮想アプライアンスデータのバックアップ

アップグレードを開始する前に、次の手順を実行します。

  1. ダウンロードポータルから仮想アプライアンスのアップグレード QCOW2 ファイルをダウンロードします。
  2. 仮想アプライアンスをシャットダウンします:
    CODE
    appdcli stop secapp
    appdcli stop aiops
    appdcli stop appd
    <<Wait for pods to terminate before deleting operators>>
    appdcli stop operators
  3. バックアップコマンドを実行します。
    CODE
    appdcli run backup
    このコマンドは、必要なすべてのデータを含む <backup_tar> ファイルを生成します。
  4. クラスターの外部にバックアップファイルをコピーして貼り付けます。

仮想アプライアンスのアップグレード

  1. Splunk AppDynamics GitHub リポジトリからアップグレードスクリプトをダウンロードします。
  2. QCOW2 ファイルと config.cfg の場所を指定して、次のコマンドを実行します。
    CODE
    ./upgrade-cluster ../<filename>.qcow2 config.cfg

このスクリプトは、virsh を確認します。

  1. 仮想マシンを停止します。

  2. 新しい QCOW2 イメージをノードストレージプールにアップロードします。

  3. OS ディスクイメージを削除します。ただし、データディスクイメージは保持されます。

  4. テンプレートイメージから新しい OS ディスクを作成します。

  5. 仮想マシンを起動します。

展開ステータスの確認

仮想マシンの展開を確認します。

  1. 仮想マシンの展開が成功したかどうかを確認します。
    CODE
    appdctl show boot
    注: 各ノードのサービスがアクティブであることを確認します。 Failed と表示されているサービスがある場合は、その仮想マシンを再起動します。それでも失敗する場合は、仮想マシンを再展開する必要があります。
  2. 3 ノードクラスタを作成します。
    1. プライマリノードで次のコマンドを実行し、ピアノードの IP アドレスを指定します。
      CODE
      appdctl cluster init <Node-2-IP> <Node-3-IP>
    2. ノードステータスを確認するには、次のコマンドを実行します。
      CODE
      appdctl show cluster
      microk8s status
      出力に、クラスタの一部であるノードの Running ステータスが true として表示されることを確認します。

      出力例

      CODE
      NODE           | ROLE  | RUNNING
      ----------------+-------+---------
      10.0.0.1:19001 | voter | true
      10.0.0.2:19001 | voter | true
      10.0.0.3:19001 | voter | true
      注: 次のエラーが表示された場合は、端末に再ログインする必要があります。
      CODE
      Insufficient Permissions to Access Microk8s

Restore Data in the Virtual Appliance

  1. Copy the <backup_tar> file to one of the cluster nodes that is generated earlier. See Prerequisites.
  2. Run the following command to restore the persistent volumes specifications:
    CODE
    appdcli run restore <backup_tar>
  3. Restore self-signed CA ingress certificates.A prompt is displayed "Do you want to restore self-signed ingress certificates?" Enter 0 for No or 1 for Yes".
    • Choose 0 if you have configured the certificates for DNS.
    • Choose 1 to configure the certificates.
  4. Verify that the PVC are in the Bound state by running the following command:
    CODE
    kubectl get pvc -A
  5. Start the following services and operators:
    1. Splunk AppDynamics Services.
      CODE
      appdcli start appd [Profile]
    2. Anomaly Detection Service.
      CODE
      appdcli start aiops [Profile]
    3. Secure Application Service.
      CODE
      appdcli start secapp [Profile]
    4. Start the remaining services.
      CODE
      appdcli start [Services] [Profile]
    5. Start the operators.
      CODE
      appdcli start operators
  6. Sometimes, MySQL Router pods might fail to start. In such cases, restart the services using the following commands:
    1. Stop the Splunk AppDynamics services.
      CODE
      appdcli stop appd

      Wait for the pods to terminate.

    2. Stop the operators:
      CODE
      appdcli stop operators
    3. Start the Splunk AppDynamics services:
      CODE
      appdcli start appd <profile>
After the upgrade, the cluster uses the existing data disk and becomes functional.

Generate the Hybrid Configuration File

You require to generate hybrid configuration file only if you are not using custom certificates for Ingress and Kafka clusters.

Ensure that you have the latest CA certificates obtained after installing services. If not, update the CA certificates and regenerate the hybrid configuration file after restarting the service.

  1. Run the script to connect the Kafka node ports with the standalone Controller:
    CODE
    ~/appd-charts/utils$ bash prepare-hybrid.sh

    Sample output:

    CODE
    Writing Kafka CA Cert
    Writing Schema registry CA Cert
    Writing AnomalyDetectionKafkaSSLProducer
    Writing AnomalyDetectionKafkaConsumerSSL
    Writing configure script
    Creating archive of hybrid config
    hybrid-config/
    hybrid-config/kafka-ca.crt
    hybrid-config/AnomalyDetectionKafkaConsumerSSL
    hybrid-config/configure.sh
    hybrid-config/schema-registry-ca.crt
    hybrid-config/AnomalyDetectionKafkaSSLProducer
    Completed

    This script generates the hybrid-config.tar file that includes the required configuration files.

  2. Copy the hybrid-config.tar file to your standalone Controller instance.
  3. Log in to the standalone Controller.
    1. Locate and extract the hybrid-config.tar file contents.
      CODE
      tar -xvf hybrid-config.tar
    2. Run the configure.sh script to provision the Controller with certificates and secrets to connect to the Kubernetes cluster:

      The following script is extracted from the hybrid-config.tar file.

      CODE
      $ ./configure.sh
      Output:
      CODE
      Using controller home as /home/appdynamics/appdynamics and keystore password as changeit
      Do you want to proceed? (y/n): y
      
      Creating Kafka truststore
      Certificate was added to keystore
      
      Creating schema registry truststore
      Certificate was added to keystore
      Certificate was added to keystore
      
      Writing obfuscated producer config
      Writing obfuscated consumer config
      
      Configure MySQL for SSL
      Using controller ip as <IP>
      Is this IP address correct? (y/n): y
      
      DNS name should match the Virtual Appliance cluster hybrid dbHost configuration
      Please enter the DNS name (default: 10.0.0.1.nip.io): <DNS_Name_from_globals.yaml.gotmpl>
      
      Using controller IP as 10.0.0.1
      Updating certs at /home/appdynamics/appdynamics/platform/controller/db/data using CA key file ca-key.pem and cert file ca.pem
      Certificate request self-signature ok
      subject=CN = mysql
      MySQL certificate generated successfully: server-cert.pem
      Completed
    注:

    Certificates in the Virtual Appliance expire after 60 days. To maintain connectivity, you must copy the updated certificates from the Virtual Appliance to your Splunk AppDynamics オンプレミス Classic Controller. To do this, regenerate the hybrid configuration file on the Virtual Appliance and then copy it to your Standalone Controller.