Instal·leu Plesk a CentOS 7
Utilitzeu un sistema diferent? Plesk és un tauler de control d'amfitrió web propietari que permet als usuaris administrar els seus llocs web personals i/o de clients, bases de dades
Docker Swarm converteix els vostres servidors individuals en un clúster d'ordinadors, facilitant l'escalat, l'alta disponibilitat i l'equilibri de càrrega. L'equilibrador de càrrega Swarm implementa una estratègia d'equilibri de càrrega i això pot interferir amb el funcionament correcte de les aplicacions amb estat (heretats) que requereixen algun tipus de sessions enganxades per permetre una configuració d'alta disponibilitat amb múltiples instàncies. Docker Enterprise Edition admet la sessió adhesiva de capa 7, però en aquesta guia ens centrarem en la versió gratuïta (CE) de Docker. Per implementar sessions adhesives farem servir Traefik.
En aquest tutorial farem servir dues instàncies de Vultr amb adreces IP privades 192.168.0.100 i 192.168.0.101, totes dues són nodes gestors de Docker Swarm (que no és ideal per a la producció però suficient per a aquest tutorial).
Aquest tutorial utilitza la jwilder/whoami
imatge Docker com a aplicació de demostració. Aquest senzill contenidor respondrà a una trucada REST amb el nom del contenidor que respon, de manera que és molt fàcil provar si les sessions enganxades funcionen. Aquesta imatge només s'utilitza amb finalitats de demostració i s'ha de substituir per la imatge de la vostra aplicació. Es whoami-service
configura de la següent manera:
sudo docker network create whoaminet -d overlay
sudo docker service create --name whoami-service --mode global --network whoaminet --publish "80:8000" jwilder/whoami
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Si posteriorment poguéssim curl
el whoami
punt final REST a http://192.168.0.100/
, podem veure l'equilibri de càrrega de Docker Swarm en funcionament.
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
curl http://192.168.0.100
I'm ae9d1763b4ad
curl http://192.168.0.100
I'm a6a8c9294fc3
No serveix de res provar-ho amb navegadors moderns com Chrome o Firefox perquè estan dissenyats per mantenir les connexions vives (obertes) i l'equilibrador de càrrega Docker Swarm només canviarà a l'altre contenidor amb cada connexió nova . Si voleu provar-ho amb un navegador, haureu d'esperar almenys 30 segons perquè la connexió es tanqui abans de tornar a actualitzar.
Traefik admet de manera nativa Docker Swarm, pot detectar i registrar o cancel·lar el registre de contenidors sobre la marxa i es comunica amb la vostra aplicació a través de la xarxa interna de superposició. Traefik necessita informació sobre la vostra aplicació abans que pugui començar a gestionar-ne les sol·licituds. Aquesta informació es proporciona a Traefik afegint etiquetes al vostre servei Swarm.
sudo docker service update --label-add "traefik.docker.network=whoaminet" --label-add "traefik.port=8000" --label-add "traefik.frontend.rule=PathPrefix:/" --label-add "traefik.backend.loadbalancer.stickiness=true" whoami-service
La llista següent descriu el que significa cada etiqueta:
traefik.docker.network
: la xarxa de superposició de Docker a través de la qual Traefik es comunicarà amb el vostre servei traefik.port
: el port on està escoltant el vostre servei (és el port exposat internament, no el port publicat)traefik.frontend.rule
: PathPrefix:/
enllaça l'arrel de context /
a aquest servei.traefik.backend.loadbalancer.stickiness
: activa sessions enganxades per a aquest serveiAra que whoami-service
s'ha configurat amb les etiquetes necessàries, podem afegir el servei Traefik a l'eixam:
sudo docker service create --name traefik -p8080:80 -p9090:8080 --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mode=global --constraint 'node.role == manager' --network whoaminet traefik --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
Aquesta comanda fa moltes coses alhora. La llista següent s'explicarà amb més detall:
--name traefik
: el nom del nostre nou servei Docker és traefik
-p8080:80
: publiquem el port 80
a port de Traefik 8080
(el nostre port 80
ja està en ús whoami-service
)-p9090:8080
: publiquem la interfície web pròpia de Traefik al port 9090
--mount ...
: Muntem el Socket Docker al contenidor perquè Traefik pugui accedir al temps d'execució de Docker de l'amfitrió --global
: Volem contenidors Traefik a cada node gestor per motius d'alta disponibilitat --constraint 'node.role == manager'
: només volem que Traefik s'executi en nodes de gestor perquè els nodes de treball no poden proporcionar a Traefik la informació que necessita. Per exemple, docker service ls
en un node de treball no funciona, de manera que Traefik ni tan sols podria descobrir quins serveis s'estan executant--network whoaminet
: Connecta Traefik a la mateixa xarxa que la nostra whoami-service
, en cas contrari no es podran connectar. Abans li vam dir a Traefik que es connectés al nostre servei a través d'aquesta xarxa amb l' traefik.docker.network
etiquetatraefik
: Digueu a Docker que utilitzi la darrera imatge de Docker de Traefik per a aquest servei--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
: Els arguments de la línia d'ordres s'han passat directament a Traefik per permetre que s'executi en mode eixam Docker ( --loglevel=DEBUG
és opcional aquí però interessant durant la configuració i per a aquest tutorial)Tot el que queda per fer és obrir els ports necessaris al tallafoc CentOS:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload
Tan bon punt en Traefik s'engega, podeu veure als registres que Traefik descobreix els dos whoami
contenidors. També mostra el nom de la galeta que utilitzarà per gestionar la sessió enganxosa:
time="2018-11-25T13:17:30Z" level=debug msg="Configuration received from provider docker: {\"backends\":{\"backend-whoami-service\":{\"servers\":{\"server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05\":{\"url\":\"http://10.0.0.5:8000\",\"weight\":1},\"server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6\":{\"url\":\"http://10.0.0.4:8000\",\"weight\":1}},\"loadBalancer\":{\"method\":\"wrr\",\"stickiness\":{}}}},\"frontends\":{\"frontend-PathPrefix-0\":{\"entryPoints\":[\"http\"],\"backend\":\"backend-whoami-service\",\"routes\":{\"route-frontend-PathPrefix-0\":{\"rule\":\"PathPrefix:/\"}},\"passHostHeader\":true,\"priority\":0,\"basicAuth\":null}}}"
time="2018-11-25T13:17:30Z" level=debug msg="Wiring frontend frontend-PathPrefix-0 to entryPoint http"
time="2018-11-25T13:17:30Z" level=debug msg="Creating backend backend-whoami-service"
time="2018-11-25T13:17:30Z" level=debug msg="Adding TLSClientHeaders middleware for frontend frontend-PathPrefix-0"
time="2018-11-25T13:17:30Z" level=debug msg="Creating load-balancer wrr"
time="2018-11-25T13:17:30Z" level=debug msg="Sticky session with cookie _a49bc"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-1-a179b2e38a607b1127e5537c2e614b05 at http://10.0.0.5:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating server server-whoami-service-2-df8a622478a5a709fcb23c50e689b5b6 at http://10.0.0.4:8000 with weight 1"
time="2018-11-25T13:17:30Z" level=debug msg="Creating route route-frontend-PathPrefix-0 PathPrefix:/"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :80"
time="2018-11-25T13:17:30Z" level=info msg="Server configuration reloaded on :8080"
Si ens enrosquem http://192.168.0.100:8080
podem veure que _a49bc
s'ha establert una nova galeta :
curl -v http://192.168.0.100:8080
* About to connect() to 192.168.0.100 port 8080 (#0)
* Trying 192.168.0.100...
* Connected to 192.168.0.100 (192.168.0.100) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 192.168.0.100:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 17
< Content-Type: text/plain; charset=utf-8
< Date: Sun, 25 Nov 2018 13:18:40 GMT
< Set-Cookie: _a49bc=http://10.0.0.5:8000; Path=/
<
I'm a6a8c9294fc3
* Connection #0 to host 192.168.0.100 left intact
Si, en trucades posteriors, enviem aquesta galeta a Traefik, sempre serem reenviats al mateix contenidor:
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
curl http://192.168.0.100:8080 --cookie "_a49bc=http://10.0.0.5:8000"
I'm a6a8c9294fc3
La galeta no conté més que l'adreça IP interna (superposada) del contenidor al qual Traefik hauria d'enviar per sol·licitar. Si canvieu el valor de la galeta http://10.0.0.4:8000
, la sol·licitud s'enviarà efectivament a l'altre contenidor. Si la galeta no es torna a enviar mai a Traefik, la sessió enganxosa no funcionarà i les sol·licituds s'equilibraran entre els contenidors de l'aplicació i els contenidors de Traefik.
Això és tot el que es necessita per configurar les sessions adhesives de la capa 7 a Docker CE a CentOS 7.
Utilitzeu un sistema diferent? Plesk és un tauler de control d'amfitrió web propietari que permet als usuaris administrar els seus llocs web personals i/o de clients, bases de dades
Squid és un popular programa Linux gratuït que us permet crear un servidor intermediari web de reenviament. En aquesta guia, veureu com instal·lar Squid a CentOS per convertir-vos-hi
Introducció Lighttpd és una bifurcació d'Apache destinada a ser molt menys intensiu en recursos. És lleuger, d'aquí el seu nom, i és bastant senzill d'utilitzar. Instal·lant
Recentment, VULTR ha fet canvis al seu extrem, i ara tot hauria de funcionar bé des de la caixa amb NetworkManager habilitat. Si voleu desactivar
Icinga2 és un sistema de supervisió potent i, quan s'utilitza en un model de client mestre, pot substituir la necessitat de controls de monitoratge basats en NRPE. El mestre-client
Utilitzeu un sistema diferent? Apache Cassandra és un sistema de gestió de bases de dades NoSQL gratuït i de codi obert dissenyat per proporcionar escalabilitat, alta
Utilitzeu un sistema diferent? Microweber és un CMS d'arrossegar i deixar anar de codi obert i una botiga en línia. El codi font de Microweber està allotjat a GitHub. Aquesta guia us mostrarà
Utilitzeu un sistema diferent? Vanilla Forum és una aplicació de fòrum de codi obert escrita en PHP. És totalment personalitzable, fàcil d'utilitzar i admet externa
Utilitzeu un sistema diferent? Mattermost és una alternativa autoallotjada de codi obert al servei de missatgeria Slack SAAS. En altres paraules, amb Mattermost, ca
Què necessitareu Un Vultr VPS amb almenys 1 GB de RAM. Accés SSH (amb privilegis d'arrel/administrador). Pas 1: instal·lació de BungeeCord Primer de tot
El tauler de control de Plesk inclou una integració molt agradable per Lets Encrypt. Lets Encrypt és un dels únics proveïdors SSL que ofereix certificats complets
Lets Encrypt és una autoritat de certificació dedicada a proporcionar certificats SSL de manera gratuïta. cPanel ha creat una integració perfecta perquè tu i el teu client
Utilitzeu un sistema diferent? Concrete5 és un CMS de codi obert que ofereix moltes característiques distintives i útils per ajudar els editors a produir continguts fàcilment i
Utilitzeu un sistema diferent? Review Board és una eina gratuïta i de codi obert per revisar el codi font, la documentació, les imatges i molts més. És un programari basat en web
En aquesta guia, aprendràs a configurar l'autenticació HTTP per a un servidor web Nginx que s'executa a CentOS 7. Requisits Per començar, necessitareu el
Utilitzeu un sistema diferent? GoAccess és un analitzador de registres web de codi obert. Podeu utilitzar-lo per analitzar els registres en temps real al terminal o
YOURLS (Your Own URL Shortener) és una aplicació d'anàlisi de dades i escurçament d'URL de codi obert. En aquest article, tractarem el procés d'instal·lació
Utilitzeu un sistema diferent? Introducció ArangoDB és una base de dades NoSQL de codi obert amb un model de dades flexible per a documents, gràfics i claus-valors. És
Introducció El directori /etc/ té un paper crític en el funcionament d'un sistema Linux. La raó d'això és perquè gairebé totes les configuracions del sistema
Molts administradors de sistemes gestionen grans quantitats de servidors. Quan s'hagi d'accedir als fitxers a través de diferents servidors, inicieu sessió a cadascun individualment ca
La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.
També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.
Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.
Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.
El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...
A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.
Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.
Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.
En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.
Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació