コンテンツにスキップ

Alibaba Cloud デプロイマニュアル


1 はじめに

1.1 本ドキュメントの説明

本ドキュメントでは、主に Alibaba Cloud 上でのデプロイを対象に、リソース計画、設定から Guance のデプロイ、実行までの完全な手順を紹介します。

注記:

  • 本ドキュメントでは、dataflux.cn をメインドメインの例として使用しています。実際のデプロイ時には、該当するドメインに置き換えてください。

1.2 キーワード

用語 説明
Launcher Guance をデプロイ・インストールするための WEB アプリケーションです。Launcher サービスのガイドに従って、Guance のインストールとアップグレードを実行します。
運用操作端末 kubectl がインストールされており、対象の Kubernetes クラスターと同じネットワーク上にある運用マシンです。
インストール操作端末 ブラウザで Launcher サービスにアクセスし、Guance のガイド付きインストールを実行するマシンです。
kubectl Kubernetes のコマンドラインクライアントツールです。運用操作端末 にインストールします。

1.3 デプロイ手順のアーキテクチャ

2 リソースの準備

Alibaba Cloud リソース一覧

3 インフラストラクチャのデプロイ

3.1 デプロイの説明

RDS、NAS ストレージ は、設定要件に従って作成し、同じリージョンの同じ VPC ネットワーク配下に作成してください。 ECS、SLB、NAT ゲートウェイは、ACK によって自動的に作成されるため、個別に作成する必要はありません。つまり、デプロイ手順図の手順1、2、3を個別に作成する必要はありません。

3.2 手順1、2、3 ACK サービスの作成

3.2.1 クラスター設定

Container Service for Kubernetes にアクセスし、Kubernetes クラスターを作成します。標準マネージドクラスター版 を選択し、クラスター設定の注意事項:

  • 事前に作成した RDS、ECS などのリソースと同じリージョンである必要があります。
  • 「SNAT を設定」オプションをオンにします(ACK が NAT ゲートウェイを自動的に作成および設定し、クラスターにインターネットアクセス機能を提供します)。
  • 「パブリックアクセス」オプションをオンにします(パブリックネットワークからクラスター API にアクセスできます。内部ネットワークでこのクラスターを運用する場合は、このオプションをオンにする必要はありません)。
  • ACK サービスの有効化時に、ストレージドライバは一時的に flexvolume を選択してください。CSI ドライバは本ドキュメントではまだサポートしていません。

3.2.2 Worker 設定

主に ECS の仕様と台数を選択します。仕様は設定要件一覧に従って作成するか、実際の状況に基づいて評価しますが、最低要件を下回ってはいけません。台数は最低3台以上必要です。

3.2.3 コンポーネント設定

コンポーネント設定では、「Ingress コンポーネントをインストール」オプションを必ずオンにし、「パブリックネットワーク」タイプを選択してください。ACK が自動的にパブリックネットワークタイプの SLB を作成します。インストール完了後、ドメインをこの SLB のパブリック IP に紐付けます。

3.3 手順4、5 動的ストレージ設定

事前に nas ファイルシステムを作成し、nas_server_url を取得しておく必要があります。

3.3.1 動的ストレージのインストール

Alibaba Cloud Container Service for Kubernetes (ACK) のコンテナストレージ機能は、Kubernetes コンテナストレージインターフェース (CSI) に基づき、Alibaba Cloud のストレージサービスであるクラウドディスク EBS、ファイルストレージ NAS および CPFS、オブジェクトストレージ OSS、ローカルディスクなどと深く統合され、Kubernetes ネイティブのストレージサービス(EmptyDir、HostPath、Secret、ConfigMap など)を完全に互換しています。このセクションでは、ACK ストレージ CSI の概要、ACK ストレージ CSI がサポートする機能、CSI 使用の承認、CSI 使用の制限などを説明します。コントロールパネルでは、デフォルトで CSI-Plugin および CSI-Provisioner コンポーネントがインストールされます。

  • プラグインの確認
  • 以下のコマンドを実行して、CSI-Plugin コンポーネントが正常にデプロイされているか確認します。
    kubectl get pod -n kube-system | grep csi-plugin
    
  • 以下のコマンドを実行して、CSI-Provisioner コンポーネントが正常にデプロイされているか確認します。
    kubectl get pod -n kube-system | grep csi-provisioner
    
  • StorageClass の作成

以下の内容を alicloud-nas-subpath.yaml ファイルに作成してコピーします。

alicloud-nas-subpath.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-nas
mountOptions:
- nolock,tcp,noresvport
- vers=3
parameters:
  volumeAs: subpath
  server: "{{ nas_server_url }}:/k8s/"
provisioner: nasplugin.csi.alibabacloud.com
reclaimPolicy: Retain

{{ nas_server_url }} は、事前に作成した NAS ストレージの Server URL に置き換えます。運用操作端末 で以下のコマンドを実行します:

kubectl apply -f ./alicloud-nas-subpath.yaml

Alibaba Cloud Kubernetes 1.16 より前のバージョンのクラスターを作成する際、ストレージプラグインに Flexvolume を選択した場合、コントロールパネルではデフォルトで Flexvolume と Disk-Controller コンポーネントがインストールされますが、alicloud-nas-controller コンポーネントはデフォルトではインストールされません。

  • alicloud-nas-controller コンポーネントのインストール

nas_controller.yaml をダウンロードします。 運用操作端末 で以下のコマンドを実行します:

kubectl apply -f nas_controller.yaml

  • プラグインの確認

以下のコマンドを実行して、Disk-Controller コンポーネントが正常にデプロイされているか確認します。

kubectl get pod -nkube-system | grep alicloud-nas-controller

  • StorageClass の作成

以下の内容を storage_class.yaml ファイルに作成してコピーします。

storage_class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-nas
  annotations:
    storageclass.beta.kubernetes.io/is-default-class: "true"
    storageclass.kubernetes.io/is-default-class: "true"
mountOptions:
- nolock,tcp,noresvport
- vers=3
parameters:
  server:  "{{ nas_server_url }}:/k8s/"
  driver: flexvolume
provisioner: alicloud/nas
reclaimPolicy: Delete

{{ nas_server_url }} は、事前に作成した NAS ストレージの Server URL に置き換えます。運用操作端末 で以下のコマンドを実行します:

kubectl apply -f ./storage_class.yaml

3.3.2 デプロイの確認

3.3.2.1 PVC を作成し、状態を確認

以下のコマンドを実行して、PVC を作成します。

$ cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: cfs-pvc001
spec:
 accessModes:
   - ReadWriteOnce
 resources:
   requests:
     storage: 1Gi
 storageClassName: alicloud-nas
EOF
3.3.2.2 PVC の確認
$ kubectl get pvc | grep cfs-pvc001

cfs-pvc001       Bound    pvc-a17a0e50-04d2-4ee0-908d-bacd8d53aaa4   1Gi        RWO            alicloud-nas           3d7h

Bound はデプロイ成功の基準です。

3.4 手順6 キャッシュサービス

  • デフォルトの内蔵キャッシュサービスを使用できます。
  • デフォルトの内蔵キャッシュサービスを使用しない場合は、以下の要件に従って Redis を設定してください:
  • Redis バージョン:6.0。シングルモード、プロキシモード、マスタースレーブモードの Redis クラスターをサポートします。
  • Redis パスワードを設定します。
  • 自動的に作成された ECS の内部ネットワーク IP を Redis のホワイトリストに追加します。

3.5 手順7 GuanceDB for Metrics

インストールドキュメント

3.6 手順8 OpenSearch

  • 管理者アカウントを作成します。
  • 中国語形態素解析プラグインをインストールします。
  • ACK が自動的に作成した ECS の内部ネットワーク IP を OpenSearch のホワイトリストに追加します。

3.7 手順9 RDS

  • 管理者アカウントを作成します(管理者アカウント である必要があります。後続のインストール初期化で、このアカウントを使用して各アプリケーション DB を作成および初期化します)。
  • コントロールパネルでパラメータ設定を変更し、innodb_large_prefixON に設定します(MySQL 8+ では変更不要)。
  • ACK が自動的に作成した ECS の内部ネットワーク IP を RDS のホワイトリストに追加します。

4 kubectl のインストールと設定

4.1 kubectl のインストール

kubectl は Kubernetes のコマンドラインクライアントツールで、このコマンドラインツールを使用してアプリケーションのデプロイ、クラスターリソースの確認や管理などを行うことができます。 Launcher はこのコマンドラインツールに基づいてアプリケーションをデプロイします。具体的なインストール方法については、公式ドキュメントを参照してください:

https://kubernetes.io/docs/tasks/tools/install-kubectl/

4.2 kubeconfig の設定

kubectl がクラスターを管理するには、クラスターの kubeconfig の内容を $HOME/.kube/config ファイルに配置する必要があります。kubeconfig の内容は、クラスターの 基本情報 で確認できます。

パブリックアクセス用の kubeconfig と内部ネットワークアクセス用の kubeconfig のどちらを選択するかは、運用操作端末がクラスターの内部ネットワークと通信可能かどうかによって決まります。

5 インストールの開始

操作が完了したら、マニュアル インストールの開始 を参照してください。

フィードバック

このページは役に立ちましたか?