Complete the 1st part before you go on SET UP CLUSTER
- Create service Policy
cd ~ && echo "
service \"traefik\" {
policy = \"write\"
}
service \"traefik-sidecar-proxy\" {
policy = \"write\"
}
service_prefix \"\" {
policy = \"read\"
}
node_prefix \"\" {
policy = \"read\"
}
"| tee traefik-policy.hcl
- Deploy and create token from policy
consul acl policy create -name "traefik-service" -description "Traefik Proxy Service Access Policy" -rules @traefik-policy.hcl
consul acl token create -description "Traefik Service Token" -policy-name "traefik-service"| tee traefik-service.token
##### OUTPUT #####
AccessorID: 53078cee-9f5d-e78d-7928-8850b9934485
SecretID: aae2f550-a21c-b20f-90ab-f939e1d35536 <=================== Save the key for deployment
Description: Traefik Service Token
Local: false
Create Time: 2022-11-21 15:35:03.275568004 +0700 +07
Policies:
d0a1ca0f-ee56-b0bd-dbb4-80f661ce393c - traefik-service
- Deloy nomad job with describe
job "proxy" {
datacenters = ["saigon"]
type = "system"
group "traefik" {
count = 1
network {
port "http" {
static = 8888
}
port "admin" {
static = 9999
}
}
service {
name = "traefik"
provider = "consul"
port = "http"
check {
name = "alive"
type = "tcp"
port = "http"
interval = "10s"
timeout = "2s"
}
}
task "traefik" {
driver = "docker"
constraint {
attribute = "${node.class}"
operator = "="
value = "core"
}
config {
image = "traefik:2.9"
ports = ["admin", "http"]
network_mode = "host"
args = [
"--log.level=DEBUG",
"--api.dashboard=true",
"--api.insecure=true",
"--entrypoints.web.address=:${NOMAD_PORT_http}",
"--entrypoints.traefik.address=:${NOMAD_PORT_admin}",
"--providers.consulCatalog.exposedByDefault=true",
"--providers.consulCatalog.prefix=traefik",
"--providers.consulcatalog.endpoint.address=10.238.22.182:8500",
"--providers.consulcatalog.endpoint.token=aae2f550-a21c-b20f-90ab-f939e1d35536",
"--providers.consulcatalog.endpoint.scheme=http"
]
}
resources {
cpu = 100
memory = 512
memory_max = 2048
}
}
}
}
- Access via link