Traefik je moderní HTTP reverzní proxy a load balancer pro mikroslužby. Díky Traefik je nasazení všech mikroslužeb snadné, integrované se stávajícími komponentami infrastruktury, jako je Docker, Swarm Mode, Kubernetes, Amazon ECS, Rancher, Etcd, Consul atd.
Traefik slouží jako router pro všechny vaše aplikace mikroslužeb a směruje všechny požadavky klientů do správného cíle mikroslužeb.
V tomto tutoriálu vám krok za krokem ukážu, jak nainstalovat a nakonfigurovat moderní reverzní proxy Traefik jako kontejner Docker na Ubuntu 18.04 LTS (Bionic Beaver).
Předpoklady
- Ubuntu 18.04
- Oprávnění uživatele root
Co uděláme?
- Nainstalujte Docker na Ubuntu 18.04
- Nainstalujte Docker Compose
- Vytvořit vlastní síť dockerů
- Nainstalujte a nakonfigurujte Traefik
- Testování
Krok 1 – Instalace Dockeru na Ubuntu 18.04
V této příručce budeme používat nejnovější verzi dockeru, kterou lze nainstalovat z oficiálního úložiště dockerů.
Přidejte klíč dockeru a úložiště pomocí příkazu níže.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Příkaz 'add-apt-repository' automaticky aktualizuje všechna úložiště.
Nyní nainstalujte nejnovější docker-ce.
sudo apt install docker-ce
Po dokončení instalace spusťte službu docker a povolte její spuštění při každém spuštění systému.
systemctl start docker
systemctl enable docker
Komunitní edice dockeru byla nainstalována na systém Ubuntu 18.04, zkontrolujte nainstalovanou verzi dockeru.
docker version
Dodatečné:Spuštění Dockeru pro uživatele bez oprávnění root
Kontejner Docker lze spustit pod uživatelem bez oprávnění root. Potřebujeme pouze přidat uživatele do skupiny dockerů.
Přidat uživatele 'mohammad'.
useradd -m -s /bin/bash mohammad
Nyní přidejte uživatele 'mohammad' do skupiny dockerů a restartujte službu dockeru.
usermod -a -G docker mohammad
systemctl restart docker
Otestujte spuštěním docker hello-world.
docker run -it hello-world
A následuje výsledek.
Krok 2 – Instalace Docker Compose
Docker-Compose je nástroj příkazového řádku pro definování a správu aplikací dokovacích stanic s více kontejnery.
Docker Compose je python skript, lze jej snadno nainstalovat pomocí příkazu python pip nebo pomocí příkazu apt z úložiště Ubuntu. Pomocí compose můžeme spustit více kontejnerů Docker pomocí jediného příkazu.
Nainstalujte docker compose z úložiště pomocí příkazu apt níže.
sudo apt install docker-compose
Po dokončení instalace zkontrolujte verzi pro psaní dockeru.
docker-compose version
Docker compose 1.17 byl nainstalován na Ubuntu 18.04.
Krok 3 – Vytvoření vlastní sítě dockerů
V tomto tutoriálu bude kontejner traefik spuštěn ve vlastní síti dockeru. Potřebujeme tedy na serveru vytvořit novou vlastní síť dockeru.
Zkontrolujte dostupnou síť dockeru v systému.
docker network ls
Nyní vytvořte novou vlastní síť s názvem 'proxy' pro kontejner traefik.
docker network create proxy
A získáte náhodný řetězec názvu síťového kontejneru. Zkontrolujte znovu dostupnou síť.
docker network ls
Níže je uveden výsledek.
Vlastní síť dockerů s názvem 'proxy' pro traefik byla vytvořena.
Krok 4 – Instalace a konfigurace Traefik Reverse Proxy
V tomto kroku vytvoříme kontejner traefik s povoleným HTTPS letsencrypt (pomocí názvu domény 'traefik.hakase-labs.io) a automaticky přesměrujeme HTTP na HTTPS na traefik.
Předinstalace Traefik
Před vytvořením veškeré konfigurace traefik musíme nainstalovat 'apache2-utils' pro generování šifrovaného hesla htpasswd a vytvoření nového adresáře traefik.
Nainstalujte 'apache2-utils' pomocí příkazu apt níže.
sudo apt install apache2-utils -y
Nyní spusťte níže uvedený příkaz htpasswd a vygenerujte nové heslo pro ověření řídicího panelu traefik.
htpasswd -nb mohammad password
Výsledek si ponechte v poznámce.
mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.
Dále se přihlaste k uživateli 'mohammad'.
su - mohammad
Vytvořte nový adresář s názvem 'traefik' pro veškerou konfiguraci traefik.
mkdir -p traefik/
cd traefik/
Vytvořit konfiguraci Traefik
Přejděte do adresáře 'traefik' a vytvořte nový konfigurační soubor 'traefik.toml' pomocí editoru vim.
cd traefik/
vim traefik.toml
Vložte konfiguraci níže.
#Traefik Global Configuration debug = false checkNewVersion = true logLevel = "ERROR" #Define the EntryPoint for HTTP and HTTPS defaultEntryPoints = ["https","http"] #Enable Traefik Dashboard on port 8080 #with basic authentication method #mohammad and password [web] address = ":8080" [web.auth.basic] users = ["mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi."] #Define the HTTP port 80 and #HTTPS port 443 EntryPoint #Enable automatically redirect HTTP to HTTPS [entryPoints] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls] #Enable retry sending a request if the network error [retry] #Define Docker Backend Configuration [docker] endpoint = "unix:///var/run/docker.sock" domain = "traefik.hakase-labs.io" watch = true exposedbydefault = false #Letsencrypt Registration #Define the Letsencrypt ACME HTTP challenge [acme] email = "[email protected]" storage = "acme.json" entryPoint = "https" OnHostRule = true [acme.httpChallenge] entryPoint = "http"
Uložte a ukončete.
Poznámka:
Všechny informace o konfiguraci jsou v sekci komentáře '#... '.
Vytvořit skript Traefik Docker Compose Script
Nyní vytvořte skript docker-compose yml.
vim docker-compose.yml
Vložte konfiguraci níže.
version: '3' services: traefik: image: traefik:latest command: --docker --docker.domain=hakase-labs.io ports: - 80:80 - 443:443 networks: - proxy volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json labels: - "traefik.frontend.rule=Host:traefik.hakase-labs.io" - "traefik.port=8080" container_name: traefik restart: always networks: proxy: external: true
Uložte a ukončete.
Poznámka:
- Vytváříme nový kontejner s názvem 'traefik' na základě obrázku dockeru 'traefik:latest'.
- Kontejner 'traefik' poběží ve vlastní dockerové síti s názvem 'proxy' a vystavuje externí porty HTTP 80 a HTTPS 443.
- Kontejner připojí konfiguraci traefik „traefik.toml“ a „acme.json“, včetně souboru docker sock.
- Konfigurace štítku pro traefik, název frontendové domény a port traefik.
Konfigurace Letsencrypt ACME
Konfigurace acme na 'traefik.toml' se používá pro automatické generování SSL letsencrypt. A je vyžadován pro soubor úložiště 'acme.json'.
Vytvořte nový soubor JSON „acme.json“ a změňte oprávnění na „600“.
touch acme.json
chmod 600 acme.json
Všechny protokoly o SSL letsencrypt info budou uloženy do souboru.
Sestavení kontejneru Traefik
Nyní jsme připraveni vytvořit vlastní kontejner traefik pomocí výše uvedených konfiguračních souborů.
cd traefik/
ls -lah
Všechny konfigurační soubory 'traefik.toml', 'docker-compose.yml' a 'acme.json'.
Sestavte kontejner pomocí příkazu docker compose níže.
docker-compose up -d
Po dokončení zkontrolujte běžící kontejner.
docker-compose ps
A zprovozníte kontejner Traefik, odhalíte externí porty HTTP a HTTPS.
Krok 5 – Testování
Otevřete webový prohlížeč a do adresního řádku zadejte název domény traefik. Můj je:
http://traefik.hakase-labs.io/
Budete přesměrováni na připojení HTTPS a budete požádáni o ověření uživatelského jména a hesla.
Přihlaste se pomocí uživatele 'mohammad' a heslo je 'password'.
A získáte ovládací panel Traefik, jak je uvedeno níže.
Stránka zdravotního stavu Traefik.
Traefik moderní HTTP reverzní proxy byl nainstalován jako kontejner Docker na Ubuntu 18.04.