このトピックでは、Logtailコンポーネントをアップグレードする方法について説明します。
アップグレードの説明
一般的なシナリオでは、自動アップグレード方法を使用することを推奨します。 logtail-ds DaemonSetまたはalibaba-log-controller Deploymentで環境変数などのパラメーターを変更した場合は、手動アップグレード方法を使用して変更を保持することをお勧めします。
Logtailコンポーネントをアップグレードする前に、Logtailコンポーネントに関連する説明ファイルをバックアップすることを推奨します。 詳細については、「付録1: バックアップとロールバック」をご参照ください。
自動アップグレード
Alibaba Cloud ACKクラスター
- ACK コンソールにログインします。
- 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
- [クラスター] ページで、Logtailコンポーネントをインストールするクラスターを見つけてクリックします。
- 表示されるページの左側のナビゲーションウィンドウで、 を選択します。
- [ログとモニタリング] タブで、[logtail-ds] を見つけ、[アップグレード] をクリックします。
- [更新] ダイアログボックスで、[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をアップグレードする方法を示しています。
- ACK コンソールにログインします。
- 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
- [クラスター] ページで、Logtailコンポーネントをインストールするクラスターを見つけてクリックします。
- 左側のナビゲーションウィンドウで、 を選択します。 説明 alibaba-log-controllerをアップグレードする場合は、kube-systemに設定し、alibaba-log-controllerを見つけます。を選択します。 次に、Namespaceを
- 名前空間をkube-systemに設定します。 次に、logtail-dsを見つけ、[操作] 列の [編集] をクリックします。
- 必要な環境変数が存在するかどうかを確認します。 ALIYUN_LOGTAIL_CONFIG、ALIYUN_LOGTAIL_USER_ID、またはALIYUN_LOGTAIL_USER_DEFINED_ID環境変数が存在しない場合、Logtailのバージョンは古くなっています。 You can submit a ticket for technical support.
- [イメージバージョン] の右側にある [イメージバージョンの選択] をクリックします。
- In the Image Version dialog box, click the most recent version and click OK.
- 表示されるページの右側のウィンドウで、[更新] をクリックします。 アップグレードが実行された後、ACKコンソールで各logtail-dsポッドのステータスを表示できます。 各logtail-dsポッドが実行状態の場合、アップグレードは成功です。
自己管理型Kubernetesクラスター
- Log on to your Kubernetes cluster.
- logtail-dsをアップグレードします。 アップグレードが実行されたら、
kubectl describe -n kube-system ds logtail-ds | grep Status:
コマンドを実行して、各logtail-dsポッドのステータスを表示します。 各logtail-dsポッドが実行状態の場合、アップグレードは成功です。 - alibaba-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
ロールバック
- バックアップファイルから冗長情報を削除します。
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
- 削除後のバックアップファイルを使用して、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ファイルは古いです。 このバージョンを使用すると、アップグレード中または新しい機能の使用時に問題が発生する可能性があります。 最新バージョンを最新バージョンにアップグレードすることを推奨します。 以下の手順を実行します。
- 既存のAliyunLogConfig CRDを保存します。 ビジネス要件に基づいてlog-crds.yamlを置き換えます。
kubectl get AliyunLogConfig -A -o yaml > log-crds.yaml
- logtail-dsをアンインストールします。 ACKコンソールの [ログとモニタリング] タブで、[logtail-ds] を見つけ、[アンインストール] をクリックします。 エントリポイントの詳細については、「自動アップグレード」をご参照ください。
- logtail-dsをインストールします。 ACKコンソールの [ログとモニタリング] タブで、[logtail-ds] を見つけ、[インストール] をクリックします。 エントリポイントの詳細については、「自動アップグレード」をご参照ください。
- 保存するAliyunLogConfig CRDをデプロイします。 ビジネス要件に基づいてlog-crds.yamlを置き換えます。
kubectl apply -f log-crds.yaml