コンテンツにスキップ

オフラインデプロイメント

シングルノードデプロイメント

注意

シングルノードデプロイメントは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 インストールパッケージを解凍します:

tar -zvxf guance-middleware-arm64.tar.gz

インストールパッケージのアドレス:https://static.guance.com/dataflux/package/guance-middleware-amd64.tar.gz インストールパッケージを解凍します:

tar -zvxf guance-middleware-amd64.tar.gz

2.2 sealosのインストール

2.2.1 sealosのインストール

tar zxvf sealos_4.3.0_linux.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin && sealos -h
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 ファイアウォールの無効化

CentOSの無効化コマンド

systemctl stop firewalld
systemctl disable firewalld

Ubuntuの無効化コマンド

sudo systemctl stop ufw.service
sudo systemctl disable ufw.service

2.4.2 nfsサービスのインストール

サーバーが外部ネットワークにアクセスできる場合は、以下のコマンドでnfsをデプロイできます。

CentOSのインストールコマンド

yum install rpcbind nfs-utils -y

Ubuntuのインストールコマンド

apt-get install nfs-kernel-server -y

サーバーが外部ネットワークにアクセスできない場合は、解凍したファイル内のnfs-packageフォルダから対応するバージョンのオフラインパッケージを見つけ、以下のコマンドでインストールします。

CentOSのオフラインインストールコマンド

tar -zvxf nfs-utils.tar.gz
cd nfs-utils
rpm -Uvh *.rpm --nodeps --force

Ubuntuのオフラインインストールコマンド

tar -zvxf nfs-utils.tar.gz
cd nfs-utils
sudo dpkg -i *.deb    

2.4.3 nfs共有パスの設定

共有ディレクトリを作成します

mkdir /nfsdata
コマンドvim /etc/exportsを実行してexportsファイルを作成し、ファイルの内容は以下の通りです。

#/nfsdata *(insecure,rw,async,no_root_squash)
/nfsdata *(rw,no_root_squash,no_all_squash,insecure) 

注:/nfsdata はnfs用に設定された共有ディレクトリです。このディレクトリは通常、個別にマウントされたデータディスク上にあります(例:/data/nfsdata)。

2.4.4 nfsサービスの起動

以下のコマンドを実行してnfsサービスを起動します。

CentOSの起動コマンド

systemctl enable rpcbind
systemctl enable nfs-server
systemctl restart rpcbind
systemctl restart nfs-server

Ubuntuの起動コマンド

service nfs-kernel-server start   

2.4.5 設定の検証

showmount -e localhost
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のインストール

sealos load -i ingress_1.3.0.tar.gz
sealos run imagesId

注:ドメイン名が直接サーバーに解決される場合は、ingress deploymentにhostNetwork: true の設定を追加できます。

2.7 OpenEBSのインストール

2.7.1 OpenEBSのインストール

sealos load -i localpv-provisioner_3.3.0.tar.gz
sealos run imagesId

注:openebsのインストールはオプションです。ローカルストレージを使用する場合、nfsよりもパフォーマンスが優れています。

2.8 middleware namespaceの作成

2.8.1 middleware namespaceの作成

kubectl create ns middleware
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のインストール

sealos load -i opensearch_2.3.0.tar.gz
sealos run imagesId -e nfs_name=df-nfs-storage

注: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のインストール

sealos load -i guancedb.tar.gz
sealos run imagesId -e nfs_name=df-nfs-storage

注: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のデプロイが完了したら、インストールを開始 を参照して業務サービスのデプロイを行ってください。

フィードバック

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