Consulは、セグメンテーション機能、構成、サービス検出など、フル機能のコントロールプレーンを提供するサービスメッシュソリューションです。これらの機能は、必要に応じて個別に使用することも、フルサービスメッシュを作成するために一緒に使用することもできます。 Consulはデータプレーン上で動作し、プロキシとネイティブ統合モデルの両方をサポートします。 Consulには、すべてがすぐに機能することを保証するシンプルな組み込みプロキシが付属しています。 Consulは、Envoyなどのサードパーティのプロキシ統合もサポートしています。
領事の主な機能は次のとおりです。
- サービスディスカバリ
- ヘルスチェック
- KVストア
- 安全なサービス通信
- マルチデータセンター機能
このチュートリアルでは、Ubuntu20.04にConsulサーバーをインストールする方法を紹介します。
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu20.04VPS
- サーバーにルートパスワードが設定されています
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu20.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 20.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
まず、次のコマンドを使用して必要なパッケージをインストールします。
apt-get install unzip gnupg2 curl wget -y
次に、次のコマンドを使用して、Consulの最新バージョンをダウンロードします。
wget https://releases.hashicorp.com/consul/1.8.4/consul_1.8.4_linux_amd64.zip
ダウンロードが完了したら、次のコマンドを使用してダウンロードしたファイルを解凍します。
unzip consul_1.8.4_linux_amd64.zip
次に、次のコマンドを使用して、領事館のバイナリを/ usr / local/binディレクトリに移動します。
mv consul /usr/local/bin/
次に、次のコマンドを使用して領事のバージョンを確認します。
consul --version
次の出力が得られるはずです:
Consul v1.8.4 Revision 12b16df32 Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
まず、領事のために別のユーザーとグループを作成する必要があります。次のコマンドで作成できます:
groupadd --system consul useradd -s /sbin/nologin --system -g consul consul
次に、次のコマンドを使用して必要なディレクトリを作成します。
mkdir -p /var/lib/consul mkdir /etc/consul.d
次に、これらのディレクトリの所有権と権限を変更します。
chown -R consul:consul /var/lib/consul chmod -R 775 /var/lib/consul chown -R consul:consul /etc/consul.d
次に、次のコマンドを使用してConsulsystemdサービスファイルを作成します。
nano /etc/systemd/system/consul.service
次の行を追加します:
[Unit] Description=Consul Service Discovery Agent After=network-online.target Wants=network-online.target [Service] Type=simple User=consul Group=consul ExecStart=/usr/local/bin/consul agent -server -ui \ -advertise=your-server-ip \ -bind=your-server-ip \ -data-dir=/var/lib/consul \ -node=consul-01 \ -config-dir=/etc/consul.d ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT TimeoutStopSec=5 Restart=on-failure SyslogIdentifier=consul [Install] WantedBy=multi-user.target
終了したら、ファイルを保存して閉じます。
注 :以前に作成した適切なserver-ip、データディレクトリパス、および構成ディレクトリを提供します。
次に、次のコマンドを使用してsystemdデーモンをリロードします。
systemctl daemon-reload
まず、必要な長さとエンコーディングのキーを生成する必要があります。次のコマンドで生成できます:
consul keygen
次の出力が得られるはずです:
TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=
次に、ConsulのJson構成ファイルを作成する必要があります。次のコマンドで作成できます:
nano /etc/consul.d/config.json
以下に示すように、サーバーのIP、ホスト名、および領事キーを入力します。
{ "bootstrap": true, "server": true, "log_level": "DEBUG", "enable_syslog": true, "datacenter": "server1", "addresses" : { "http": "0.0.0.0" }, "bind_addr": "your-server-ip", "node_name": "ubuntu2004", "data_dir": "/var/lib/consul", "acl_datacenter": "server1", "acl_default_policy": "allow", "encrypt": "TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=" }
終了したら、ファイルを保存して閉じます。
次に、Consulサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。
systemctl start consul systemctl enable consul
次に、次のコマンドで領事のステータスを確認します。
systemctl status consul
次の出力が得られるはずです:
● consul.service - Consul Service Discovery Agent Loaded: loaded (/etc/systemd/system/consul.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 10:35:52 UTC; 4min 11s ago Main PID: 5511 (consul) Tasks: 9 (limit: 2353) Memory: 17.4M CGroup: /system.slice/consul.service └─5511 /usr/local/bin/consul agent -server -ui -advertise=your-server-ip -bind=your-server-ip -data-dir=/var/lib/consul -node=con>
この時点で、Consulサーバーが起動し、ポート8500でリッスンしています。次のコマンドで確認できます。
ss -plunt | grep 8500
次の出力が得られるはずです:
tcp LISTEN 0 4096 *:8500 *:* users:(("consul",pid=5511,fd=17))
次に、ポート80で領事館にアクセスするためのリバースプロキシとしてNginxをインストールして構成することをお勧めします。
まず、次のコマンドを使用してNginxサーバーをインストールします。
apt-get install nginx -y
インストールしたら、Nginxのデフォルトの仮想ホスト構成ファイルを削除します。
rm -rf /etc/nginx/sites-enabled/default
次に、次のコマンドを使用してConsul仮想ホスト構成ファイルを作成します。
nano /etc/nginx/sites-available/consul.conf
次の行を追加します:
server { listen 80 ; server_name your-server-ip; root /var/lib/consul; location / { proxy_pass http://127.0.0.1:8500; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } }
ファイルを保存して閉じてから、次のコマンドで仮想ホストをアクティブ化します。
ln -s /etc/nginx/sites-available/consul.conf /etc/nginx/sites-enabled/
次に、次のコマンドを使用して、構文エラーがないかNginxを確認します。
nginx -t
次の出力が得られるはずです:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
次に、次のコマンドを使用してNginxサービスを再起動します。
systemctl restart nginx
エラーが発生した場合は、Nginxのデフォルトのサーバー構成ファイルを編集してserver_names_hash_bucket_sizeを設定する必要があります:
nano /etc/nginx/nginx.conf
http{の下に次の行を追加します :
server_names_hash_bucket_size 64;
ファイルを保存して閉じてから、Nginxサービスを再起動して変更を適用します。
systemctl restart nginx
次に、Webブラウザーを開き、URL http:// your-server-ip / uiを使用してConsulWebインターフェースにアクセスします。 。次のページに領事館のダッシュボードが表示されます。
ノードをクリックします 以下に示すように、サーバー内のアクティブなノードを一覧表示します。
おめでとう!これで、Ubuntu20.04にConsulサーバーが正常にインストールされました。これで、Consulサーバーにクライアントノードを追加して、Consulダッシュボードからそれらの管理を開始できます。詳細については、領事館のドキュメントをご覧ください。 Atlantic.NetからVPSホスティングの領事を始めましょう!