GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Docker Guide:Instalace Traefik – moderního reverzního proxy pro mikroslužby

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?

  1. Nainstalujte Docker na Ubuntu 18.04
  2. Nainstalujte Docker Compose
  3. Vytvořit vlastní síť dockerů
  4. Nainstalujte a nakonfigurujte Traefik
  5. 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:

  1. Vytváříme nový kontejner s názvem 'traefik' na základě obrázku dockeru 'traefik:latest'.
  2. Kontejner 'traefik' poběží ve vlastní dockerové síti s názvem 'proxy' a vystavuje externí porty HTTP 80 a HTTPS 443.
  3. Kontejner připojí konfiguraci traefik „traefik.toml“ a „acme.json“, včetně souboru docker sock.
  4. 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.


Docker
  1. Průvodce spuštěním reverzního proxy pro HTTP(S), SSH a MySQL/MariaDB pomocí NGINX

  2. Co je Docker Container:Úvodní příručka pro začátečníky

  3. Reverzní proxy s Nginx:Průvodce nastavením krok za krokem

  1. Jak nakonfigurovat Nginx Reverse Proxy pro Kibana

  2. Průvodce LXD pro začátečníky:Nastavení reverzního proxy pro hostování více webových stránek

  3. Instalace Dockeru (Ubuntu)

  1. Jak nasadit NGINX Reverse Proxy na Docker

  2. Jak nainstalovat Nginx jako Reverse Proxy pro Apache na Ubuntu 15.10

  3. Docker Guide:Deploying Ghost Blog with MySQL a Traefik with Docker