consul 多節點/單節點集群搭建


三節點配置

  • 下載安裝包
mkdir /data/consul
mkdir /data/consul/data

curl -SLO https://github.com/consul/1.9.5/consul_1.9.5_linux_amd64.zip
unzip consul_1.9.5_linux_amd64.zip
mv consul /data/consul/
  • 創建配置文件
生成集群密鑰
/data/consul/consul keygen
# XYefgTnef1tB/X6Q3gVOfx2XlTbfbwvNzG0KLQMm1/s=

vim /data/consul/config.json
{
  "bootstrap_expect": 3,
  "client_addr": "0.0.0.0",
  "bind_addr": "{{GetInterfaceIP \"eth0\"}}",
  "datacenter": "lmtce",
  "data_dir": "/data/consul/data",
  "domain": "consul",
  "enable_script_checks": true,
  "dns_config": {
    "enable_truncate": true,
    "only_passing": true
  },
  "enable_syslog": true,
  "encrypt": "P+8L7Z3K6ItXsvS9moNWlvnuYuT136tVVInmzsOxEVc=",
  "leave_on_terminate": true,
  "log_level": "INFO",
  "rejoin_after_leave": true,
  "server": true,
  "start_join": [
    "192.168.100.11",
    "192.168.100.12",
    "192.168.100.13"
  ],
  "ui": true
}

注意修改 start_join 里面的節點 ip;如果節點有多個網卡,還要使用 bind_addr 指令將端口監聽到具體的網卡上。
網卡名只能使用雙引號引用並轉義,不能使用單引號。

  • 創建systemd啟動文件
vim /usr/lib/systemd/system/consul.service

[Unit]
Description=Consul Startup process
After=network.target

[Service]
User=worker
Type=simple
ExecStart=/data/consul/consul agent -server -config-dir /data/consul
TimeoutStartSec=0

[Install]
WantedBy=default.target
  • 啟動服務

注意,由於是集群節點,當只啟動一個節點時,服務狀態是 error 的,這個不用擔心,等其他兩個節點啟動起來就好了。

chown -R worker. /data
systemctl daemon-reload
systemctl restart consul

三個節點要重復執行上述配置。


單節點配置

{
  "bootstrap_expect": 1,
  "client_addr": "0.0.0.0",
  "bind_addr": "{{GetInterfaceIP \"eth0\"}}",
  "datacenter": "sloan",
  "data_dir": "/data/consul/data",
  "domain": "consul",
  "enable_script_checks": true,
  "dns_config": {
    "enable_truncate": true,
    "only_passing": true
  },
  "enable_syslog": true,
  "encrypt": "XYefgTnef1tB/X6Q3gVOfx2XlTbfbwvNzG0KLQMm1/s=",
  "leave_on_terminate": true,
  "log_level": "INFO",
  "rejoin_after_leave": true,
  "server": true,
  "start_join": [
    "192.168.100.11"
  ],
  "ui": true
}

注意 bootstrap_expect 為1 ,並且start_join 只有1個節點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM