Below you will find pages that utilize the taxonomy term “Consul”
Posts
Consul - Install on Windows
要在 Windows 安裝 Consul,要先在 Download Consul - Consul by HashiCorp 這邊找到 Consul 檔案位置。
下載 Consul 檔案後解壓縮。
Consul 的安裝就完成了,可以簡單的輸入 Consul 命令做個測試。
Link Install Consul | Consul - HashiCorp Learn Download Consul - Consul by HashiCorp
read morePosts
Consul - KV Data
Consul 支援簡易的 Key-Value Store 功能。
可用 consul kv put 將資料存入 Key-Value Store。
consul kv put <Key> <Value> 用 consul kv get 將資料取出。
consul kv get <Key> 可加帶 -detailed 參數取出更為詳細的資料,像是 Flags、ModifyIndex…等。
consul kv get -detailed <Key> 如果要設置資料的 Flags,可在放入資料時加帶 -flags 參數指定 Flags。
consul kv put -flags=<Flags> <Key> <Value> 若要列出所有存放的資料,可用 consul kv get 加帶 -recurse 參數。
consul kv get -recurse 要刪除存放的特定資料,可使用 consul kv delete 帶入要刪除的 Key。
consul kv delete <Key> 要刪除存放的所有資料,可使用 consul kv delete 加帶 -recurse 參數。
read morePosts
Consul - Registering health checks
Consul health check 可透過 Consul config 設定,在 Consul config 加入 check definition。
像是可以定義用定時去 ping 服務的方式去檢查服務的健康狀態。
echo '{"check": {"name": "ping", "args": ["ping", "-c1", "google.com"], "interval": "30s"}}' > /etc/consul.d/ping.json 或是定義定時用 curl 檢查服務的健康狀態。
echo '{"service": {"name": "web", "tags": ["rails"], "port": 80, "check": {"args": ["curl", "localhost"], "interval": "10s"}}}' > /etc/consul.d/web.json 定義好後啟用 Consul Agent,並帶入 enable_script_checks 參數。
啟動後 Consul 會依設定定時去檢查服務的狀態,如果有檢測到服務異常,可在 Consul Agent 的訊息中看到警告訊息會標示服務目前是 Critical。
要抓出異常服務的話,可用 HTTP API 檢測狀態為 Critical 的服務。
curl http://<IP>:<Port>/v1/health/state/critical 或是用 DNS API 直接檢測服務也可以,異常的服務不會正常的給予回應。
read morePosts
Consul - Web UI
要啟動 Consul Web UI 可在調用 Consul 命令時帶入 -ui 參數,如果是用開發人員模式 (帶入-dev 參數),-ui 參數可忽略不帶。
consul agent -dev -ui 訪問 http://<Url>/ui,即可看到 Consul Web UI。
如果要使用舊的 Consul Web UI 畫面,可將 CONSUL_UI_LEGACY 環境變數設定為 true。
在次起動 Consul Agent,會看到 Consul Web UI 畫面變成舊版畫面。
如果運行環境比較複雜的(像是筆者在 Vagrant 的虛擬機內啟用 Consul Agent),在啟用 Consul Web UI 後可能會有訪問被拒的現象。
在 Consul Agent 起動時再加帶 -client 參數應該就可以了。
consul agent -dev -client=0.0.0.0 Link Web UI | Consul - HashiCorp Learn
read morePosts
Consul - Registering services
要使用 Consul 註冊服務,先準備一個目錄用來存放 Consul 的設定。
mkdir <ConfigDir> 在建立的設定檔目錄內放置 Consul 的設定檔,設定檔內會指定服務的名稱、Tag、與服務的 Port。
{"service": {"name": "<Name>", "tags": ["<Tag>"], "port": <Port>}} 設定檔準備好後,啟動 Consul agent,使用 -config-dir 參數指定設定檔目錄。
consul agent -dev -config-dir=<ConfigDir> 啟動後可用 DNS API 做個測試。
dig @<IP> -p <Port> <ServiceName>.service.consul 或是用 HTTP API 測試也可以。
curl http://<IP>/v1/catalog/service/<ServiceName> Link Registering Services | Consul - HashiCorp Learn
read morePosts
Consul - Consul cluster
要設定 Consul Cluster,我們可以在一台電腦上用 Consul 命令啟用 Server 模式的 Agent。
consul agent -server -bootstrap-expect=1 \ -data-dir=<DataDir> -node=<NodeName> -bind=<IP> \ -enable-script-checks=true -config-dir=<ConfigDir> 然後在另外一台電腦用 Consul 命令啟用 Client 模式的 Agent。
consul agent -data-dir=<DataDir> -node=<NodeName> \ -bind=<IP> -enable-script-checks=true -config-dir=<ConfigDir> 使用 Consul 的 join 命令將他們加到同一個 Cluster。
consul join <IP> 調用 Consul 的 members 命令可查驗 Cluster 的組成,確認 Cluster 是否設定成功。
consul members Link Consul Cluster | Consul - HashiCorp Learn
read morePosts
Consul - Run the Consul agent
要簡單的將 Consul agent 跑起來玩玩,可以用 development 模式將 Consul agent 跑起來。
consul agent -dev 跑起來後可用 members 指令查閱節點。
consul members 或是用 HTTP API 查閱。
curl <IP>/v1/catalog/nodes 抑或是用 DNS 去查詢。
dig @<IP> -p <Port> <DNSEntries> 要停止 Consul agent 的話用熱鍵 Ctrl + C 即可。
Link Run the Consul Agent | Consul - HashiCorp Learn
read morePosts
Consul - Install on Ubuntu
要在 Ubuntu 安裝 Consul,要先在 Download Consul - Consul by HashiCorp 這邊找到 Consul 檔案位置。
下載 Consul 檔案。
wget <ConsulFileUrl> 將下載下來的 Consul 檔案進行解壓縮。
apt-get install unzip unzip <ConsulFile> 將檔案搬至 /usr/local/bin 下。
mv consul /usr/local/bin/consul Consul 的安裝就完成了,可以簡單的輸入 Consul 命令做個測試。
Link Install Consul | Consul - HashiCorp Learn Download Consul - Consul by HashiCorp
read more