GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Panduan Docker:Menginstal Traefik - Proxy Terbalik Modern untuk Layanan Mikro

Traefik adalah proxy terbalik HTTP modern dan penyeimbang beban untuk layanan mikro. Traefik membuat semua penerapan layanan mikro menjadi mudah, terintegrasi dengan komponen infrastruktur yang ada seperti Docker, Swarm Mode, Kubernetes, Amazon ECS, Rancher, Etcd, Consul, dll.

Traefik berfungsi sebagai router untuk semua aplikasi layanan mikro Anda, mengarahkan semua permintaan klien ke tujuan layanan mikro yang benar.

Dalam tutorial ini, saya akan menunjukkan langkah demi langkah cara menginstal dan mengkonfigurasi Traefik modern reverse proxy sebagai wadah Docker di Ubuntu 18.04 LTS (Bionic Beaver).

Prasyarat

  • Ubuntu 18.04
  • Hak istimewa root

Apa yang akan kita lakukan?

  1. Instal Docker di Ubuntu 18.04
  2. Instal Docker Compose
  3. Buat Jaringan Docker Khusus
  4. Instal dan Konfigurasi Traefik
  5. Pengujian

Langkah 1 - Instal Docker di Ubuntu 18.04

Untuk panduan ini, kami akan menggunakan versi buruh pelabuhan terbaru yang dapat diinstal dari repositori buruh pelabuhan resmi.

Tambahkan kunci buruh pelabuhan dan repositori menggunakan perintah di bawah ini.

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"

Perintah 'add-apt-repository' akan secara otomatis memperbarui semua repositori.

Sekarang instal docker-ce terbaru.

sudo apt install docker-ce

Setelah instalasi selesai, mulai layanan buruh pelabuhan dan aktifkan untuk diluncurkan setiap kali sistem boot.

systemctl start docker
systemctl enable docker

Edisi komunitas buruh pelabuhan telah diinstal pada sistem Ubuntu 18.04, periksa versi buruh pelabuhan yang diinstal.

docker version

Tambahan:Menjalankan Docker untuk pengguna non-root

Wadah Docker dapat dijalankan di bawah pengguna non-root. Kita hanya perlu menambahkan pengguna ke grup buruh pelabuhan.

Tambahkan pengguna 'mohammad'.

useradd -m -s /bin/bash mohammad

Sekarang tambahkan pengguna 'mohammad' ke grup buruh pelabuhan, lalu mulai ulang layanan buruh pelabuhan.

usermod -a -G docker mohammad
systemctl restart docker

Uji dengan menjalankan docker hello-world.

docker run -it hello-world

Dan berikut adalah hasilnya.

Langkah 2 - Instal Docker Compose

Docker-Compose adalah alat baris perintah untuk mendefinisikan dan mengelola aplikasi buruh pelabuhan multi-kontainer.

Docker Compose adalah skrip python, dapat diinstal dengan perintah python pip atau dengan perintah apt dari repositori Ubuntu dengan mudah. Dengan compose, kita dapat menjalankan beberapa container Docker dengan satu perintah.

Instal docker compose dari repositori menggunakan perintah apt di bawah ini.

sudo apt install docker-compose

Setelah instalasi selesai, periksa versi penulisan buruh pelabuhan.

docker-compose version

Docker compose 1.17 telah diinstal di Ubuntu 18.04.

Langkah 3 - Buat Jaringan Docker Khusus

Dalam tutorial ini, wadah traefik akan berjalan di jaringan kustom buruh pelabuhan. Jadi kita perlu membuat jaringan khusus buruh pelabuhan baru di server.

Periksa jaringan buruh pelabuhan yang tersedia di sistem.

docker network ls

Sekarang buat jaringan kustom baru bernama 'proxy' untuk wadah traefik.

docker network create proxy

Dan Anda akan mendapatkan string acak dari nama wadah jaringan. Periksa kembali jaringan yang tersedia.

docker network ls

Di bawah ini adalah hasilnya.

Jaringan buruh pelabuhan khusus bernama 'proxy' untuk traefik telah dibuat.

Langkah 4 - Instal dan Konfigurasikan Traefik Reverse Proxy

Pada langkah ini, kita akan membuat wadah traefik dengan HTTPS letsencrypt diaktifkan (menggunakan nama domain 'traefik.hakase-labs.io), dan secara otomatis mengarahkan HTTP ke HTTPS di traefik.

Praefik Pra-Instalasi

Sebelum membuat semua konfigurasi traefik, kita perlu menginstal 'apache2-utils' untuk membuat sandi htpasswd terenkripsi dan membuat direktori traefik baru.

Instal 'apache2-utils' menggunakan perintah apt di bawah ini.

sudo apt install apache2-utils -y

Sekarang jalankan perintah htpasswd di bawah ini untuk membuat kata sandi baru untuk otentikasi dasbor traefik.

htpasswd -nb mohammad password

Simpan hasilnya di catatan Anda.

mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.

Selanjutnya, login ke pengguna 'mohammad'.

su - mohammad

Buat direktori baru bernama 'traefik' untuk semua konfigurasi traefik.

mkdir -p traefik/
cd traefik/

Buat Konfigurasi Traefik

Buka direktori 'traefik' dan buat file konfigurasi baru 'traefik.toml' menggunakan editor vim.

cd traefik/
vim traefik.toml

Tempelkan konfigurasi di bawah ini.

#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"

Simpan dan keluar.

Catatan:

Semua informasi tentang konfigurasi ada di bagian komentar '#... '.

Buat Skrip Penulisan Traefik Docker

Sekarang buat skrip docker-compose yml.

vim docker-compose.yml

Tempelkan konfigurasi di bawah ini.

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

Simpan dan keluar.

Catatan:

  1. Kami membuat wadah baru bernama 'traefik' berdasarkan gambar buruh pelabuhan 'traefik:latest'.
  2. Kontainer 'traefik' akan berjalan pada jaringan buruh pelabuhan khusus bernama 'proxy' dan mengekspos port eksternal HTTP 80 dan HTTPS 443.
  3. Wadah akan memasang konfigurasi traefik 'traefik.toml' dan 'acme.json', termasuk file kaus kaki buruh pelabuhan.
  4. Konfigurasi label untuk traefik, nama domain frontend, dan port traefik.

Letsencrypt Konfigurasi ACME

Konfigurasi acme pada 'traefik.toml' digunakan untuk membuat SSL letsencrypt secara otomatis. Dan itu diperlukan untuk file penyimpanan 'acme.json'.

Buat file JSON baru 'acme.json' dan ubah izin menjadi '600'.

touch acme.json
chmod 600 acme.json

Semua log tentang info SSL letsencrypt akan disimpan dalam file.

Membangun Penampung Traefik

Sekarang kita siap untuk membangun wadah traefik kita sendiri menggunakan file konfigurasi di atas.

cd traefik/
ls -lah

Semua file konfigurasi 'traefik.toml', 'docker-compose.yml', dan 'acme.json'.

Bangun wadah menggunakan perintah penulisan buruh pelabuhan di bawah ini.

docker-compose up -d

Jika sudah selesai, periksa container yang sedang berjalan.

docker-compose ps

Dan Anda akan mengaktifkan dan menjalankan wadah Traefik, mengekspos port eksternal HTTP dan HTTPS.

Langkah 5 - Pengujian

Buka browser web Anda dan ketik nama domain traefik di bilah alamat. Milik saya adalah:

http://traefik.hakase-labs.io/

Anda akan diarahkan ke koneksi HTTPS dan akan dimintai otentikasi nama pengguna dan sandi.

Login dengan user 'mohammad' dan passwordnya adalah 'password'.

Dan Anda akan mendapatkan dashboard Traefik seperti di bawah ini.

Halaman status Traefik Health.

Traefik HTTP reverse-proxy modern telah diinstal sebagai wadah Docker di Ubuntu 18.04.


Docker
  1. Panduan untuk menjalankan proxy Terbalik untuk HTTP(S), SSH, dan MySQL/MariaDB menggunakan NGINX

  2. Apa itu Docker Container:Panduan Pengantar untuk Pemula

  3. Reverse Proxy dengan Nginx:Panduan Pengaturan Langkah-demi-Langkah

  1. Cara Mengonfigurasi Nginx Reverse Proxy untuk Kibana

  2. Panduan Pemula untuk LXD:Menyiapkan Proksi Terbalik untuk Meng-host Situs Web Mulitple

  3. Menginstal Docker (Ubuntu)

  1. Cara Menyebarkan Proksi Terbalik NGINX di Docker

  2. Cara menginstal Nginx sebagai Reverse Proxy untuk Apache di Ubuntu 15.10

  3. Panduan Docker:Menyebarkan Blog Hantu dengan MySQL dan Traefik dengan Docker