クラスター (ノード)
ノードとは
Newtroidはコンテナを Node 上で実行します。 ノードはクラスターによりますが、1つのVMまたは物理的なサーバーです。 各ノードはコンテナを制御するのに必要なサービスを含んでいます。
通常、1つのクラスターで複数のノードを持ちます。学習用途やリソースの制限がある環境では、1ノードかもしれません。
ノードを増やすメリット
コンテナが動作するノードを増やすことには、さまざまなメリットがあります。以下に、その主要なメリットをいくつか挙げます。
- スケーラビリティ
処理能力の向上: ノードを増やすことで、より多くのコンテナを同時に実行できるようになり、全体の処理能力が向上します。これにより、トラフィックの増加や負荷の高い処理にも対応できます。 負荷分散: ワークロードを複数のノードに分散させることで、特定のノードに集中する負荷を分散し、システム全体の安定性を向上させます。
- スケーラビリティ
- 高可用性
フォールトトレランス: 複数のノードが存在することで、1つのノードが障害を起こしても他のノードが稼働し続けることができ、サービスの継続性が保たれます。 冗長性: 複数のノードに同じコンテナをデプロイすることで、1つのノードの障害時にも他のノードでサービスを提供し続けることができます。
- 高可用性
- 効率的なリソース利用
リソース分散: CPU、メモリ、ストレージなどのリソースを複数のノードに分散させることで、リソースの利用効率が向上します。これにより、特定のノードにリソースが集中するのを防ぎます。 柔軟なリソース管理: リソースの追加や削減が容易になるため、需要に応じてリソースを動的に管理できます。
- 効率的なリソース利用
- メンテナンスとアップグレードの容易さ
ローリングアップデート: ノードを順次アップグレードしたり、メンテナンスを行ったりすることで、サービスの停止時間を最小限に抑えながらシステムを更新できます。 ノードの交換: 古いノードを新しいノードに交換する際にも、サービスの中断を最小限に抑えながら実施できます。
- メンテナンスとアップグレードの容易さ
- 地理的分散と遅延の低減
地理的分散: 複数のノードを異なる地理的な場所に配置することで、ユーザーに近い場所でコンテナを実行し、遅延を低減できます。 レイテンシの改善: 地理的に分散したノードを活用することで、ユーザーとの通信のレイテンシを改善し、より快適なサービスを提供できます。
- 地理的分散と遅延の低減
- 災害復旧
データのレプリケーション: 複数のノードにデータをレプリケートすることで、データの消失リスクを軽減し、災害発生時の復旧が迅速に行えます。 バックアップとリストア: ノード間でデータのバックアップとリストアを効率的に行うことで、災害からの迅速な復旧が可能になります。
- 災害復旧
コンテナが動作するノードを増やすことは、システムのスケーラビリティ、高可用性、効率的なリソース利用、メンテナンスの容易さ、地理的分散、遅延の低減、災害復旧など、さまざまな面でメリットをもたらします。これにより、より安定した、高性能なサービス提供が可能になります。
ノードのサポート状況
※最終更新月:2024/06
サービス | # |
---|---|
オンプレミス | ✅ |
AWS EC2 | ✅ |
さくらのクラウド | ✅ |
ノードの追加手順
概要
ここではNewtroidを使ってコンテナを稼働させるためにノードを追加する手順を説明します。 ノードを追加する一番簡単な方法はNewtroidコンソールとOptXStoreで提供されるnAnsibleを使用する方法です。
例として物理サーバーをノードとして追加する手順を紹介します。
nAnsibleを利用するためにはOS:Ubuntu22.04LTSがインストールされたサーバーを用意してください。仮想サーバー(インスタンス)でも同様です。
nAnsibleを利用したノードの追加方法
nAnsibleはNewtroidのノード構築用のAnsibleのカスタムモジュールです。 Newtroidに新たにノードを追加する際に利用します。
nAnsibleは主に以下の処理を実行します。
- コンテナランタイム「Docker」のインストールと基本設定
- コンテナを制御するのに必要なサービスのインストール
Ansible ... OSSのツール。IT自動化ツールの一つで、システム管理者やデベロッパーがインフラストラクチャを管理し、アプリケーションのデプロイを自動化するために使用されます。以下にAnsibleの主要な特徴とその機能を詳しく説明します。
概要を以下に示します。
- NewtroidコンソールでNodeを登録します。
- Newtroidコンソールで
手順① サーバー情報の登録
- Newtroidコンソールを開きます。
- Infrastructureメニューをクリックします。
- Createボタンをクリックします。
- サーバー情報を入力し作成をします。
入力フィールドに入力する情報は以下の通りです。
Server Name … サーバーの名称をユニークになるように設定してください。
SSH Host … SSH情報を設定してください。
SSH PrivateKey … サーバーに接続するための秘密鍵を設定して下さい。
SSH PublicKey … サーバーに設置したnAnsibleが接続するためのPublicKeyを設定してください。
手順② nAnsibleの設定
nAnsibleはNewtroidのXervice機能を使って実行します。 以下の手順でnAnsibleの実行のための設定を行なってください。
- Xerviceメニューをクリックします。
- 「+」ボタンから新規Xerviceを作成する。
- 作成したXerviceをクリックし編集画面を表示する。
- 「+」ボタンから新規Slot(ContainerSlot)を作成する。
- 空のSlotが表示されるのでクリックする。画面の右側に詳細設定欄(インスペクタビュー)が表示されます。
- インスペクタビューのSelect OptXボタンをおし、nAnsibleを選択します。
- インスペクタビューの「Newtwork」タブのServerIdにnAnsibleを実行するサーバーのIPを入力してください。※ここで入力するnAnsibleを実行するサーバーであり、構築するノードのIPではないので注意してください。nAnsible自体を起動するサーバーになります。既存のノードである必要があります。セットアップを行いたいノードサーバーにSSH(IPとPort22番にアクセス)できるサーバーである必要があります。
- Environmentsタブをクリックし、環境変数を入力します。
環境変数の設定内容の詳細は以下の通りです。以下を参考に適切に設定情報を入力してください。
環境変数 | 内容 | 設定例 |
---|---|---|
CM_API_KEY | ContainerManagerがnXtalのAPIキー利用する際のを設定します。 | 34ewmk643j.... |
CM_HOST_IP | 稼働するノードのIPアドレスを設定します。 | 172.31.40.162 |
CM_XTAL_API_DOMAIN | nXtalのAPIのドメインを設定します。 | newtroid.io |
CM_OPTX_REGISTRY_HOST | ContainerManagerがコンテナを起動する際に、コンテナイメージをダウンロードするレジストリのホスト情報を設定します。 | registry.optxstore.io |
CM_USE_SSL | APIを利用する際にhttps通信を利用します。 | true |
CM_OPTIONAL_PRIVATE_DOMAIN | プライベートで起動した際のコンテナに割り当てるドメインを設定します。 | optx.local |
CM_OPTIONAL_PUBLIC_DOMAIN | パブリックで起動した際のコンテナに割り当てるドメインを設定します。 | optx.app |
NA_API_KEY | nAnsibleがServer情報を取得するためのAPIキーを設定します。 | 34ewmk643j.... |
NA_API_BASE_URL | nAnsibleがServer情報を取得するためのAPIのURLを設定します。 | https://newtroid.io |
NA_SERVER_NAME | nAnsibleが取得するServer情報のServerNameを設定します。nAnsibleはこの値でデータを取得し、そのサーバーに対し、SSH接続し、ノードに必要なセットアップを行います。 | AWS-EC2-SERVER-001 |
NA_ENGINE_REGISTRY_HOST | ContainerManagerのコンテナイメージをダウンロードするレジストリのホスト情報を設定します。 | registry.optxstore.io |
NA_REGISTRY_USER_NAME | レジストリの認証情報 | newtroid |
NA_REGISTRY_PASSWORD | レジストリの認証情報 | PassWord555 |
NA_INSTALL_CM_VERSION_TAG | インストールするコンテナマネージャのイメージのタグ(バージョン)を指定します。 | commit-6751bce |
NA_OPTIONAL_EBS_MOUNT_ENABLE | 有効にするとAWSのEBSのマウントを実行します。 | true |
NA_EBS_DEV_DIR | マウントを行うEBSデバイスパス | /dev/nvme1n1 |
NA_EBS_MOUNT_DIR | マウントを行う対象ディレクトリ | /mnt/ebs |
手順③ nAnsibleの実行
設定が完了したらnAnsibleを実行します。 nAnsibleは起動されたら設定に基づき、ノードの構築を自動で行います。
実行完了には数分かかります。
nAnsibleを実行するには以下の手順を実行します。
- インスペクタービューの起動ボタン(上部の三角形のアイコンボタン)を押してnAnsibleを起動してください。
nAnsibleが起動するとSlotの起動ステータス表示がグリーンに変わります。
うまくいかない場合 nAnsibleを起動するサーバーからSSH対象のサーバーのIP1に対して、疎通ができることを確認してください。ファイアーウォール、ネットワークセグメントなどを確認してください。