Académique Documents
Professionnel Documents
Culture Documents
#ContainerDayFR
Nomad, lorchestration made in Hashicorp
Je suis...
Bastien Cadiot (@bcadiot)
Architecte virtualisation
Lead DevOps
Cloud Builder
www.wescale.fr | @YesWeScale
Un monde de conteneurs
Au commencement...
En ralit...
Nos clients
La dmo nest pas la ralit
Pourquoi orchestrer ?
Rappel des principes
Rationaliser Ordonnancer
Simplifier Prioriser
Standardiser Piloter
Densifier Scuriser
Pourquoi Nomad ?
advertise {
{
rpc = "8.7.6.5"
"bootstrap_expect": 3,
http = "8.7.6.5"
"server": true,
serf = "8.7.6.5"
"datacenter": "gce-west1",
}
"data_dir": "/var/consul",
"log_level": "INFO", server {
"enable_syslog": true, enabled = true
"bind_addr": "10.1.2.3", bootstrap_expect = 3
}
"client_addr": "0.0.0.0",
"advertise_addr": "8.7.6.5" consul {
} address = "127.0.0.1:8500"
}
Etape 1 - Dmo
Consul
# consul members
Etape 1 - Dmo
Nomad
# nomad server-members
# nomad node-status
ID DC Name Class Drain Status
47e449e7 gce-west1 client-europe-3 <none> false ready
e53bb5ae gce-west1 client-europe-1 <none> false ready
f3e16921 gce-west1 client-europe-2 <none> false ready
Etape 2 - Running
group "webs" {
count = 2
Etape 2 - Dmo
Job run
Etape 2 - Dmo
Job status
nomad status Summary
ID = pcd2017 Allocations
Etape 3 - Extending
Fichier de configuration (Nomad Client)
region = "europe"
datacenter = "france"
data_dir = "/var/nomad"
bind_addr = "0.0.0.0"
advertise {
rpc = "5.6.7.8"
http = "5.6.7.8"
serf = "5.6.7.8"
}
client {
enabled = true
node_class = "data"
}
Etape 3 - Dmo
Consul
Etape 3 - Dmo
Nomad
# nomad node-status
... constraint {
attribute = "${node.class}"
datacenters = ["gce-west1", "france"] value = "data"
}
...
constraint {
group "webs" { } attribute = "${node.datacenter}"
value = "france"
group "database" { } }
} ...
}
Paris Container Day 2017 #ContainerDayFR 24
Nomad, lorchestration made in Hashicorp
Etape 4 - Dmo
Job run
Etape 4 - Dmo
Job status
nomad status Summary
ID = pcd2017 Allocations
Scaling
Besoin : Accompagner la monte en puissance
advertise {
{
rpc = "35.99.88.77"
"bootstrap_expect": 3,
http = "35.99.88.77"
"server": true,
serf = "35.99.88.77"
"datacenter": "aws-west2",
}
"data_dir": "/var/consul",
"log_level": "INFO", server {
"enable_syslog": true, enabled = true
"bind_addr": "35.99.88.77", bootstrap_expect = 3
}
"client_addr": "0.0.0.0",
"advertise_addr": "35.99.88.77" consul {
} address = "127.0.0.1:8500"
}
Etape 5 - Dmo
Consul
Etape 5 - Dmo
Nomad
# nomad server-members
Name Address Port Status Leader Protocol Build Datacenter Region
server-europe-1.europe 104.199.99.190 4648 alive false 2 0.5.6 gce-west1 europe
server-europe-2.europe 104.199.75.126 4648 alive true 2 0.5.6 gce-west1 europe
server-europe-3.europe 146.148.13.182 4648 alive false 2 0.5.6 gce-west1 europe
ip-10-59-1-10.us 54.218.254.37 4648 alive false 2 0.5.6 aws-west2 us
ip-10-59-1-201.us 54.191.239.249 4648 alive true 2 0.5.6 aws-west2 us
ip-10-59-1-217.us 54.202.180.132 4648 alive false 2 0.5.6 aws-west2 us
Pour finir...
Scurit Stockage
Rseau
Questions ?
Sources :
https://github.com
/bcadiot/ParisContainerDay_2017
Twitter : @bcadiot
Merci !