オフラインデプロイメント
シングルノードデプロイメント¶
注意
シングルノードデプロイメントはPOC環境のみに適しており、本番環境には適しません。
1. 前提条件¶
1.1 sealosを使用するための前提条件¶
- ホスト名を設定できること。ホスト名にアンダースコアを含めないでください。
- ノードの時刻を同期してください。
- Kubernetesクラスタの最初のノードで
sealos runコマンドを実行してください。現在、クラスタ外のノードはクラスタインストールをサポートしていません。 - クラスタを作成するには、クリーンなオペレーティングシステムを使用することを推奨します。Dockerを自分でインストールしないでください。
- ほとんどのLinuxディストリビューションをサポートします(例:Ubuntu、CentOS、Rocky Linux)。
- リリース済みのサポートされているKubernetesバージョン。
- コンテナランタイムとしてcontainerdを使用することをサポートします。
- パブリッククラウドではプライベートIPを使用してください。
2. インストールとデプロイメント¶
2.1 インストールパッケージの設定¶
2.1.1 インストールパッケージのダウンロード
インストールパッケージのアドレス:https://static.guance.com/dataflux/package/guance-middleware-arm64.tar.gz インストールパッケージを解凍します:
2.2 sealosのインストール¶
2.2.1 sealosのインストール
sealosのよく使うコマンド一覧sealos save クラスタイメージをファイルに保存
sealos load ファイルからクラスタイメージをロード
sealos images イメージ一覧を表示
sealos rmi ローカルイメージを削除
sealos run imageId イメージに基づいてアプリケーションを実行
sealos version sealosのバージョンを表示
sealos help sealosのヘルプドキュメント
2.3 Kubernetesクラスタのインストール¶
2.3.1 Kubernetesのインストール
sealos load -i calico_3.22.1.tar.gz && sealos load -i helm_3.8.2.tar.gz && sealos load -i kubernetes_1.24.0.tar.gz && sealos images
sealos run pubrepo.guance.com/googleimages/kubernetes:v1.24.0 pubrepo.guance.com/googleimages/helm:v3.8.2 pubrepo.guance.com/googleimages/calico:v3.22.1 --single
# 検証
kubectl get nodes
2.3.2 containerdデータディレクトリの変更
containerdのデフォルトデータディレクトリは/ の下にあります。Kubernetes 1.16以降では、デフォルトのルートディレクトリの使用率が85%に達すると、ノード上のPodは退去されます。Podの退去を避けるために、containerdのデータディレクトリをデータディスクに切り替える必要があります。
# すべてのノードがReadyになったら、containerdのデータディレクトリを変更します
vim /etc/containerd/config.toml
root = "/data/containerd"
mkdir -p /data/containerd
cp -r /var/lib/containerd/* /data/containerd
chmod 777 -R /data/containerd
# containerdを再起動
sudo systemctl restart containerd
2.4 NFSのインストール¶
2.4.1 ファイアウォールの無効化
2.4.2 nfsサービスのインストール
サーバーが外部ネットワークにアクセスできる場合は、以下のコマンドでnfsをデプロイできます。
サーバーが外部ネットワークにアクセスできない場合は、解凍したファイル内のnfs-packageフォルダから対応するバージョンのオフラインパッケージを見つけ、以下のコマンドでインストールします。
2.4.3 nfs共有パスの設定
共有ディレクトリを作成します
コマンドvim /etc/exportsを実行してexportsファイルを作成し、ファイルの内容は以下の通りです。
注:/nfsdata はnfs用に設定された共有ディレクトリです。このディレクトリは通常、個別にマウントされたデータディスク上にあります(例:/data/nfsdata)。
2.4.4 nfsサービスの起動
以下のコマンドを実行してnfsサービスを起動します。
2.4.5 設定の検証
2.5 Kubernetes Storageのインストール¶
2.5.1 Kubernetes Storageのインストール
sealos load -i nfs_4.0.2.tar.gz
# nfsクラスタイメージのimageIdを取得
sealos images
# 取得したクラスタイメージIDで以下のimagesIdの値を置き換えます
sealos run imagesId -e nfs_server=192.168.0.41,nfs_path=/nfsdata
注:以下、他のコンポーネントのimageIdも同様の方法で取得および置き換えが可能です。
パラメータの説明:
| Name | Description | Value |
|---|---|---|
| nfs_server | サーバーIP | 例:192.168.3.143 |
| nfs_path | nfs共有パス | 例:/data/nfsdata |
2.6 Ingressのインストール¶
2.6.1 Ingressのインストール
注:ドメイン名が直接サーバーに解決される場合は、ingress deploymentにhostNetwork: true の設定を追加できます。
2.7 OpenEBSのインストール¶
2.7.1 OpenEBSのインストール
注:openebsのインストールはオプションです。ローカルストレージを使用する場合、nfsよりもパフォーマンスが優れています。
2.8 middleware namespaceの作成¶
2.8.1 middleware namespaceの作成
2.9 MySQLのインストール¶
2.9.1 MySQLのインストール
sealosを使用したmysqlのインストール
sealos load -i mysql_8.0.tar.gz
# サンプル1: ディスクタイプがnfs、storageclass名がdf-nfs-storageの場合のデプロイコマンド
sealos run imageId -e storageclass_type=nfs,openebs_localpath='',nfs_name=df-nfs-storage
# サンプル2: ディスクタイプがopenebs、ローカル共有パスが/data/mysql_dataの場合のデプロイコマンド
sealos run imageId -e storageclass_type=openebs,openebs_localpath='/data/mysql_data',nfs_name=''
パラメータの説明:
| Name | Description | Value |
|---|---|---|
| storageclass_type | 使用するscのタイプ。nfs または openebs から選択可能 | nfs または openebs(必須) |
| openebs_localpath | scタイプにopenebsを選択した場合のみ、ローカルパスを指定する必要があります。 | 例:/data/mysql_data scタイプがopenebsの場合、必須 |
| nfs_name | scタイプをnfsに設定した場合、pvcがバインドするstorageclass名を設定します。 | 例: df-nfs-storage scタイプがnfsの場合、必須 |
2.9.2 MySQL設定ユーザーの作成
# guance_setup_userを作成
kubectl -n middleware exec -it podname bash
# パスワード rootPassw0rd を入力
mysql -uroot -p
create user 'guance_setup_user'@'%' identified by 'Aa123456';
-- WITH GRANT OPTION このオプションは、ユーザーが自分が持っている権限を他のユーザーに付与できることを意味します。
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, LOCK TABLES, CREATE TEMPORARY TABLES, TRIGGER, EXECUTE, CREATE VIEW, SHOW VIEW, EVENT, GRANT OPTION, PROCESS, REFERENCES, RELOAD, CREATE USER, USAGE on *.* TO 'guance_setup_user'@'%' with GRANT OPTION;
FLUSH PRIVILEGES;
# 接続情報
接続アドレス:mysql.middleware
ポート:3306
ユーザー:guance_setup_user
パスワード:Aa123456
2.10 OpenSearchのインストール¶
2.10.1 OpenSearchのインストール
注:opensearchのディスクタイプは現在nfsのみサポートしています。
パラメータの説明:
| Name | Description | Value |
|---|---|---|
| nfs_name | scタイプをnfsに設定した場合、pvcがバインドするstorageclass名を設定します。 | 例: df-nfs-storage (必須) |
2.10.2 opensearchのデフォルトパスワード変更
# パスワード変更
kubectl exec -ti -n middleware opensearch-single-0 -- curl -u admin:admin \
-XPUT "http://localhost:9200/_plugins/_security/api/internalusers/elastic" \
-H 'Content-Type: application/json' \
-d '{
"password": "4dIv4VJQG5t5dcJOL8R5",
"opendistro_security_roles": ["all_access"]
}'
# 接続情報
接続アドレス:opensearch-single.middleware
ポート:9200
ユーザー:elastic
パスワード:4dIv4VJQG5t5dcJOL8R5
2.11 GuanceDBのインストール¶
2.11.1 GuanceDBのインストール
注:GuanceDBのディスクタイプは現在nfsのみサポートしています。
パラメータの説明:
| Name | Description | Value |
|---|---|---|
| nfs_name | scタイプをnfsに設定した場合、pvcがバインドするstorageclass名を設定します。 | 例: df-nfs-storage (必須) |
2.12 launcherのデプロイ¶
2.12.1 業務サービスインストールパッケージのダウンロード
イメージパッケージのダウンロードアドレス:https://static.guance.com/dataflux/package/guance-arm64-latest.tar.gz
イメージパッケージのダウンロードアドレス:https://static.guance.com/dataflux/package/guance-amd64-latest.tar.gz
2.12.2 launcher chartパッケージのダウンロード
chartパッケージのダウンロードアドレス:https://static.guance.com/dataflux/package/launcher-helm-latest.tgz
2.12.3 業務サービスイメージのインポート
# containerd環境へのインポート
gunzip guance-amd64-latest.tar.gz
ctr -n=k8s.io images import guance-amd64-latest.tar
2.12.4 launcherのインストール
helm install launcher launcher-*.tgz -n launcher --create-namespace \
--set ingress.hostName=launcher.dataflux.cn \
--set storageClassName=df-nfs-storage
2.12.5 業務サービスシングルレプリカの設定(オプション)
POC環境でシングルレプリカのみを使用したい場合は、以下のように設定します。
kubectl edit cm launcher-settings -n launcher
# 以下の設定を追加
settings.yaml: 'debug: True'
# 追加後、launcherサービスを再起動
kubectl -n launcher rollout restart deploy launcher
2.12.6 launcherへのアクセス
# ingressのnetwork方式を変更し、ingress deploymentに以下を追加
hostNetwork: true
# 変更後、ローカル設定を構成します。8.130.126.215はサーバーIPであり、外部から80ポートにアクセスできる必要があります。
8.130.126.215 launcher.dataflux.cn
2.13 launcherを介した業務サービスのデプロイ¶
launcherのデプロイが完了したら、インストールを開始 を参照して業務サービスのデプロイを行ってください。