412 lines
6.6 KiB
HCL
412 lines
6.6 KiB
HCL
job "consul-cluster-dynamic" {
|
|
datacenters = ["dc1"]
|
|
type = "service"
|
|
|
|
group "consul-master" {
|
|
count = 1
|
|
|
|
constraint {
|
|
attribute = "${node.unique.name}"
|
|
value = "kr-master"
|
|
}
|
|
|
|
network {
|
|
port "http" {
|
|
static = 8500
|
|
}
|
|
port "rpc" {
|
|
static = 8300
|
|
}
|
|
port "serf_lan" {
|
|
static = 8301
|
|
}
|
|
port "serf_wan" {
|
|
static = 8302
|
|
}
|
|
}
|
|
|
|
task "consul" {
|
|
driver = "exec"
|
|
|
|
# 使用模板生成配置文件
|
|
template {
|
|
data = <<EOF
|
|
# Consul配置文件 - 动态生成
|
|
# 此文件由consul-template根据Consul KV存储中的配置动态生成
|
|
|
|
# 基础配置
|
|
data_dir = "/opt/consul/data"
|
|
raft_dir = "/opt/consul/raft"
|
|
|
|
# 启用UI
|
|
ui_config {
|
|
enabled = true
|
|
}
|
|
|
|
# 数据中心配置
|
|
datacenter = "dc1"
|
|
|
|
# 服务器配置
|
|
server = true
|
|
bootstrap_expect = 3
|
|
|
|
# 网络配置
|
|
client_addr = "master"
|
|
bind_addr = "master"
|
|
advertise_addr = "master"
|
|
|
|
# 端口配置
|
|
ports {
|
|
dns = 8600
|
|
http = 8500
|
|
https = -1
|
|
grpc = 8502
|
|
grpc_tls = 8503
|
|
serf_lan = 8301
|
|
serf_wan = 8302
|
|
server = 8300
|
|
}
|
|
|
|
# 集群连接
|
|
retry_join = ["ash3c", "warden"]
|
|
|
|
# 服务发现
|
|
enable_service_script = true
|
|
enable_script_checks = true
|
|
enable_local_script_checks = true
|
|
|
|
# 性能调优
|
|
performance {
|
|
raft_multiplier = 1
|
|
}
|
|
|
|
# 日志配置
|
|
log_level = "INFO"
|
|
enable_syslog = false
|
|
log_file = "/var/log/consul/consul.log"
|
|
|
|
# 安全配置
|
|
encrypt = "YourEncryptionKeyHere"
|
|
|
|
# 连接配置
|
|
reconnect_timeout = "30s"
|
|
reconnect_timeout_wan = "30s"
|
|
session_ttl_min = "10s"
|
|
|
|
# Autopilot配置
|
|
autopilot {
|
|
cleanup_dead_servers = true
|
|
last_contact_threshold = "200ms"
|
|
max_trailing_logs = 250
|
|
server_stabilization_time = "10s"
|
|
redundancy_zone_tag = ""
|
|
disable_upgrade_migration = false
|
|
upgrade_version_tag = ""
|
|
}
|
|
|
|
# 快照配置
|
|
snapshot {
|
|
enabled = true
|
|
interval = "24h"
|
|
retain = 30
|
|
name = "consul-snapshot-{{.Timestamp}}"
|
|
}
|
|
|
|
# 备份配置
|
|
backup {
|
|
enabled = true
|
|
interval = "6h"
|
|
retain = 7
|
|
name = "consul-backup-{{.Timestamp}}"
|
|
}
|
|
EOF
|
|
destination = "local/consul.hcl"
|
|
}
|
|
|
|
config {
|
|
command = "consul"
|
|
args = [
|
|
"agent",
|
|
"-config-dir=local"
|
|
]
|
|
}
|
|
|
|
resources {
|
|
cpu = 300
|
|
memory = 512
|
|
}
|
|
}
|
|
}
|
|
|
|
group "consul-ash3c" {
|
|
count = 1
|
|
|
|
constraint {
|
|
attribute = "${node.unique.name}"
|
|
value = "us-ash3c"
|
|
}
|
|
|
|
network {
|
|
port "http" {
|
|
static = 8500
|
|
}
|
|
port "rpc" {
|
|
static = 8300
|
|
}
|
|
port "serf_lan" {
|
|
static = 8301
|
|
}
|
|
port "serf_wan" {
|
|
static = 8302
|
|
}
|
|
}
|
|
|
|
task "consul" {
|
|
driver = "exec"
|
|
|
|
# 使用模板生成配置文件
|
|
template {
|
|
data = <<EOF
|
|
# Consul配置文件 - 动态生成
|
|
# 此文件由consul-template根据Consul KV存储中的配置动态生成
|
|
|
|
# 基础配置
|
|
data_dir = "/opt/consul/data"
|
|
raft_dir = "/opt/consul/raft"
|
|
|
|
# 启用UI
|
|
ui_config {
|
|
enabled = true
|
|
}
|
|
|
|
# 数据中心配置
|
|
datacenter = "dc1"
|
|
|
|
# 服务器配置
|
|
server = true
|
|
bootstrap_expect = 3
|
|
|
|
# 网络配置
|
|
client_addr = "ash3c"
|
|
bind_addr = "ash3c"
|
|
advertise_addr = "ash3c"
|
|
|
|
# 端口配置
|
|
ports {
|
|
dns = 8600
|
|
http = 8500
|
|
https = -1
|
|
grpc = 8502
|
|
grpc_tls = 8503
|
|
serf_lan = 8301
|
|
serf_wan = 8302
|
|
server = 8300
|
|
}
|
|
|
|
# 集群连接
|
|
retry_join = ["master", "warden"]
|
|
|
|
# 服务发现
|
|
enable_service_script = true
|
|
enable_script_checks = true
|
|
enable_local_script_checks = true
|
|
|
|
# 性能调优
|
|
performance {
|
|
raft_multiplier = 1
|
|
}
|
|
|
|
# 日志配置
|
|
log_level = "INFO"
|
|
enable_syslog = false
|
|
log_file = "/var/log/consul/consul.log"
|
|
|
|
# 安全配置
|
|
encrypt = "YourEncryptionKeyHere"
|
|
|
|
# 连接配置
|
|
reconnect_timeout = "30s"
|
|
reconnect_timeout_wan = "30s"
|
|
session_ttl_min = "10s"
|
|
|
|
# Autopilot配置
|
|
autopilot {
|
|
cleanup_dead_servers = true
|
|
last_contact_threshold = "200ms"
|
|
max_trailing_logs = 250
|
|
server_stabilization_time = "10s"
|
|
redundancy_zone_tag = ""
|
|
disable_upgrade_migration = false
|
|
upgrade_version_tag = ""
|
|
}
|
|
|
|
# 快照配置
|
|
snapshot {
|
|
enabled = true
|
|
interval = "24h"
|
|
retain = 30
|
|
name = "consul-snapshot-{{.Timestamp}}"
|
|
}
|
|
|
|
# 备份配置
|
|
backup {
|
|
enabled = true
|
|
interval = "6h"
|
|
retain = 7
|
|
name = "consul-backup-{{.Timestamp}}"
|
|
}
|
|
EOF
|
|
destination = "local/consul.hcl"
|
|
}
|
|
|
|
config {
|
|
command = "consul"
|
|
args = [
|
|
"agent",
|
|
"-config-dir=local"
|
|
]
|
|
}
|
|
|
|
resources {
|
|
cpu = 300
|
|
memory = 512
|
|
}
|
|
}
|
|
}
|
|
|
|
group "consul-warden" {
|
|
count = 1
|
|
|
|
constraint {
|
|
attribute = "${node.unique.name}"
|
|
value = "bj-warden"
|
|
}
|
|
|
|
network {
|
|
port "http" {
|
|
static = 8500
|
|
}
|
|
port "rpc" {
|
|
static = 8300
|
|
}
|
|
port "serf_lan" {
|
|
static = 8301
|
|
}
|
|
port "serf_wan" {
|
|
static = 8302
|
|
}
|
|
}
|
|
|
|
task "consul" {
|
|
driver = "exec"
|
|
|
|
# 使用模板生成配置文件
|
|
template {
|
|
data = <<EOF
|
|
# Consul配置文件 - 动态生成
|
|
# 此文件由consul-template根据Consul KV存储中的配置动态生成
|
|
|
|
# 基础配置
|
|
data_dir = "/opt/consul/data"
|
|
raft_dir = "/opt/consul/raft"
|
|
|
|
# 启用UI
|
|
ui_config {
|
|
enabled = true
|
|
}
|
|
|
|
# 数据中心配置
|
|
datacenter = "dc1"
|
|
|
|
# 服务器配置
|
|
server = true
|
|
bootstrap_expect = 3
|
|
|
|
# 网络配置
|
|
client_addr = "warden"
|
|
bind_addr = "warden"
|
|
advertise_addr = "warden"
|
|
|
|
# 端口配置
|
|
ports {
|
|
dns = 8600
|
|
http = 8500
|
|
https = -1
|
|
grpc = 8502
|
|
grpc_tls = 8503
|
|
serf_lan = 8301
|
|
serf_wan = 8302
|
|
server = 8300
|
|
}
|
|
|
|
# 集群连接
|
|
retry_join = ["master", "ash3c"]
|
|
|
|
# 服务发现
|
|
enable_service_script = true
|
|
enable_script_checks = true
|
|
enable_local_script_checks = true
|
|
|
|
# 性能调优
|
|
performance {
|
|
raft_multiplier = 1
|
|
}
|
|
|
|
# 日志配置
|
|
log_level = "INFO"
|
|
enable_syslog = false
|
|
log_file = "/var/log/consul/consul.log"
|
|
|
|
# 安全配置
|
|
encrypt = "YourEncryptionKeyHere"
|
|
|
|
# 连接配置
|
|
reconnect_timeout = "30s"
|
|
reconnect_timeout_wan = "30s"
|
|
session_ttl_min = "10s"
|
|
|
|
# Autopilot配置
|
|
autopilot {
|
|
cleanup_dead_servers = true
|
|
last_contact_threshold = "200ms"
|
|
max_trailing_logs = 250
|
|
server_stabilization_time = "10s"
|
|
redundancy_zone_tag = ""
|
|
disable_upgrade_migration = false
|
|
upgrade_version_tag = ""
|
|
}
|
|
|
|
# 快照配置
|
|
snapshot {
|
|
enabled = true
|
|
interval = "24h"
|
|
retain = 30
|
|
name = "consul-snapshot-{{.Timestamp}}"
|
|
}
|
|
|
|
# 备份配置
|
|
backup {
|
|
enabled = true
|
|
interval = "6h"
|
|
retain = 7
|
|
name = "consul-backup-{{.Timestamp}}"
|
|
}
|
|
EOF
|
|
destination = "local/consul.hcl"
|
|
}
|
|
|
|
config {
|
|
command = "consul"
|
|
args = [
|
|
"agent",
|
|
"-config-dir=local"
|
|
]
|
|
}
|
|
|
|
resources {
|
|
cpu = 300
|
|
memory = 512
|
|
}
|
|
}
|
|
}
|
|
} |