このトピックでは、Logtailコンポーネントをアップグレードする方法について説明します。

アップグレードの説明

一般的なシナリオでは、自動アップグレード方法を使用することを推奨します。 logtail-ds DaemonSetまたはalibaba-log-controller Deploymentで環境変数などのパラメーターを変更した場合は、手動アップグレード方法を使用して変更を保持することをお勧めします。

Logtailコンポーネントをアップグレードする前に、Logtailコンポーネントに関連する説明ファイルをバックアップすることを推奨します。 詳細については、「付録1: バックアップとロールバック」をご参照ください。

重要 アップグレードは数秒以内に完了します。 アップグレード中にLogtailコンテナーが再起動されます。これにより、少量のデータが再度収集されたり、収集中に失われたりする可能性があります。

自動アップグレード

重要 自動アップグレード方法を使用する場合、logtail-ds DaemonSetおよびalibaba-log-controller Deploymentのパラメーターに対する変更は保持されません。

Alibaba Cloud ACKクラスター

  1. ACK コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
  3. [クラスター] ページで、Logtailコンポーネントをインストールするクラスターを見つけてクリックします。
  4. 表示されるページの左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。
  5. [ログとモニタリング] タブで、[logtail-ds] を見つけ、[アップグレード] をクリックします。
  6. [更新] ダイアログボックスで、[OK] をクリックします。
    重要 コンポーネントを最新のLogtailバージョンにアップグレードできない場合、お使いのクラスターのKubernetesバージョンは古くなっています。 この場合、クラスターのKubernetesバージョンを最初にアップグレードするか、手動アップグレード方法を使用する必要があります。
    アップグレードが実行された後、Alibaba Cloud Container Service for Kubernetes (ACK) コンソールで各logtail-dsポッドのステータスを表示できます。 各logtail-dsポッドが実行状態の場合、アップグレードは成功です。

自己管理型Kubernetesクラスター

Logtailコンポーネントを再インストールして、自動アップグレードを完了できます。 詳細については、「自己管理型Kubernetesクラスター」をご参照ください。

手動アップグレード

重要 手動アップグレード方法を使用すると、既存の構成は更新されず、一部の機能がサポートされない場合があります。

Alibaba Cloud ACKクラスター

手動アップグレードは、logtail-dsとalibaba-log-controllerの両方をカバーします。 ほとんどの場合、最新バージョンのlogtailで提供されている収集機能を取得するには、Logtail-dsをアップグレードするだけで済みます。 最新バージョンのLogtailで提供されているカスタムリソース定義 (CRD) ベースの収集機能を取得する場合は、alibaba-log-controllerもアップグレードする必要があります。 次の手順は、logtail-dsをアップグレードする方法を示しています。

  1. ACK コンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
  3. [クラスター] ページで、Logtailコンポーネントをインストールするクラスターを見つけてクリックします。
  4. 左側のナビゲーションウィンドウで、[ワークロード] > [DaemonSets] を選択します。
    説明 alibaba-log-controllerをアップグレードする場合は、[ワークロード] > [デプロイ] を選択します。 次に、Namespaceをkube-systemに設定し、alibaba-log-controllerを見つけます。
  5. 名前空間kube-systemに設定します。 次に、logtail-dsを見つけ、[操作] 列の [編集] をクリックします。
  6. 必要な環境変数が存在するかどうかを確認します。
    ALIYUN_LOGTAIL_CONFIG、ALIYUN_LOGTAIL_USER_ID、またはALIYUN_LOGTAIL_USER_DEFINED_ID環境変数が存在しない場合、Logtailのバージョンは古くなっています。 You can submit a ticket for technical support.
  7. [イメージバージョン] の右側にある [イメージバージョンの選択] をクリックします。
  8. In the Image Version dialog box, click the most recent version and click OK.
  9. 表示されるページの右側のウィンドウで、[更新] をクリックします。
    アップグレードが実行された後、ACKコンソールで各logtail-dsポッドのステータスを表示できます。 各logtail-dsポッドが実行状態の場合、アップグレードは成功です。

自己管理型Kubernetesクラスター

  1. Log on to your Kubernetes cluster.
  2. logtail-dsをアップグレードします。
    1. 次のコマンドを実行して、設定モードに入ります。
      kubectl edit ds -n kube-system logtail-ds
    2. imageフィールドを変更します。
      logtailページで最新の画像バージョンを表示できます。
    アップグレードが実行されたら、kubectl describe -n kube-system ds logtail-ds | grep Status: コマンドを実行して、各logtail-dsポッドのステータスを表示します。 各logtail-dsポッドが実行状態の場合、アップグレードは成功です。
  3. alibaba-log-controllerをアップグレードします。
    1. 次のコマンドを実行して、設定モードに入ります。
      kubectl edit deployment -n kube-system alibaba-log-controller
    2. imageフィールドを変更します。
      最新のイメージバージョンは、alibabacloud-log-controllerページで確認できます。
    アップグレードが実行されたら、kubectl describe -n kube-system deployment alibaba-log-controller | grep Replicas: コマンドを実行して、各alibaba-log-controllerポッドのステータスを表示できます。 各alibaba-log-controllerポッドのステータスが更新されている場合、アップグレードは成功です。

付録1: バックアップとロールバック

バックアップ

Logtailコンポーネントをアップグレードする前に、Logtailコンポーネントに関連する説明ファイルをバックアップすることを推奨します。 例:

kubectl get ds -n kube-system logtail-ds -o yaml > logtail-ds.yaml
kubectl get deployment -n kube-system alibaba-log-controller -o yaml > alibaba-log-controller.yaml
kubectl get cr d aliyunlogconfigs.log.alibabacloud.com -o yaml > aliyunlogconfigs-crd.yaml
kubectl get cm -n kube-system alibaba-log-configuration -o yaml > alibaba-log-configuration.yaml

ロールバック

次の手順は、バージョンにロールバックする方法を示しています。
説明 アップグレード前にバックアップされたYAMLファイルには、冗長な情報が含まれています。 Logtailの設定を復元する前に、冗長な情報を手動で削除する必要があります。 kubectl-neatツールを使用して、冗長な情報を削除できます。 次のフィールドを削除する必要があります: metadata.creationTimestamp、metadata.generation、metadata.resourceVersion、metadata.uid、およびstatus。
  1. バックアップファイルから冗長情報を削除します。
    cat logtail-ds.yaml | kubectl-neat > neat-logtail-ds.yaml
    cat alibaba-log-controller.yaml | kubectl-neat > neat-alibaba-log-controller.yaml
    cat aliyunlogconfigs-crd.yaml | kubectl-neat > neat-aliyunlogconfigs-crd.yaml
    cat alibaba-log-configuration.yaml | kubectl-neat > neat-alibaba-log-configuration.yaml
  2. 削除後のバックアップファイルを使用して、Logtailの設定を復元します。
    kubectl apply -f neat-logtail-ds.yaml
    kubectl apply -f neat-alibaba-log-controller.yaml
    kubectl apply -f neat-aliyunlogconfigs-crd.yaml
    kubectl apply -f neat-alibaba-log-configuration.yaml

付録2: Logtailの最新バージョンのアップグレード

最新という名前のLogtailバージョンで使用されているYAMLファイルは古いです。 このバージョンを使用すると、アップグレード中または新しい機能の使用時に問題が発生する可能性があります。 最新バージョンを最新バージョンにアップグレードすることを推奨します。 以下の手順を実行します。

  1. 既存のAliyunLogConfig CRDを保存します。
    ビジネス要件に基づいてlog-crds.yamlを置き換えます。
    kubectl get AliyunLogConfig -A -o yaml > log-crds.yaml
  2. logtail-dsをアンインストールします。
    ACKコンソールの [ログとモニタリング] タブで、[logtail-ds] を見つけ、[アンインストール] をクリックします。 エントリポイントの詳細については、「自動アップグレード」をご参照ください。
  3. logtail-dsをインストールします。
    ACKコンソールの [ログとモニタリング] タブで、[logtail-ds] を見つけ、[インストール] をクリックします。 エントリポイントの詳細については、「自動アップグレード」をご参照ください。
  4. 保存するAliyunLogConfig CRDをデプロイします。
    ビジネス要件に基づいてlog-crds.yamlを置き換えます。
    kubectl apply -f log-crds.yaml