Cara Memasang Panel Kontrol Hosting Mudah di Ubuntu 16.04
Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.
Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer, memfasilitasi penskalaan, ketersediaan tinggi, dan penyeimbangan beban. Penyeimbang beban Swarm menerapkan strategi penyeimbangan beban round-robin dan ini dapat mengganggu fungsi yang benar dari aplikasi stateful (legacy) yang membutuhkan beberapa bentuk sesi sticky untuk memungkinkan pengaturan ketersediaan tinggi dengan banyak instance. Docker Enterprise Edition mendukung sesi lengket Layer-7, tetapi dalam panduan ini kami akan fokus pada versi Docker yang gratis (CE). Untuk menerapkan sesi lengket kami akan menggunakan Traefik.
Dalam tutorial ini kita akan menggunakan dua instance Vultr dengan alamat IP pribadi 192.168.0.100 dan 192.168.0.101, keduanya adalah node manajer Docker Swarm (yang tidak ideal untuk produksi tetapi cukup untuk tutorial ini).
Tutorial ini menggunakan jwilder/whoamigambar buruh pelabuhan sebagai aplikasi demo. Wadah sederhana ini akan menanggapi panggilan REST dengan nama wadah merespons, sehingga sangat mudah untuk menguji apakah sesi lengket berfungsi. Gambar ini hanya digunakan untuk tujuan demo dan perlu diganti dengan gambar aplikasi Anda sendiri. The whoami-servicedikonfigurasi sebagai berikut:
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
Jika kita akan selanjutnya curlyang whoamiendpoint ISTIRAHAT di http://192.168.0.100/, kita bisa melihat round-robin load-balancing dari Docker Swarm di tempat kerja.
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
Tidak ada gunanya menguji ini dengan browser modern seperti Chrome atau Firefox karena mereka dirancang untuk menjaga koneksi tetap hidup (terbuka) dan penyeimbang beban Docker Swarm hanya akan beralih ke wadah lain pada setiap koneksi baru . Jika Anda ingin menguji ini dengan browser Anda harus menunggu setidaknya 30 detik untuk koneksi ditutup sebelum menyegarkan kembali.
Traefik secara alami mendukung Docker Swarm, ia dapat mendeteksi dan mendaftarkan atau membatalkan registrasi kontainer saat bepergian dan berkomunikasi dengan aplikasi Anda melalui jaringan overlay internal. Traefik memerlukan beberapa informasi tentang aplikasi Anda sebelum dapat mulai menangani permintaan untuk itu. Informasi ini diberikan kepada Traefik dengan menambahkan label ke layanan Swarm Anda.
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
Daftar di bawah ini menjelaskan arti setiap label:
traefik.docker.network: Jaringan hamparan Docker tempat Traefik akan berkomunikasi dengan layanan Anda traefik.port: Port tempat layanan Anda mendengarkan (ini adalah port yang terlihat secara internal, bukan port yang dipublikasikan)traefik.frontend.rule: PathPrefix:/mengikat root konteks /ke layanan ini.traefik.backend.loadbalancer.stickiness: Mengaktifkan sesi lengket untuk layanan iniSekarang setelah whoami-servicedikonfigurasi dengan label yang diperlukan, kita dapat menambahkan layanan Traefik ke swarm:
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
Perintah ini melakukan beberapa hal sekaligus. Daftar di bawah ini akan menjelaskan secara lebih rinci:
--name traefik: Nama layanan Docker baru kami adalah traefik-p8080:80: Kami menerbitkan port Traefik 80ke port 8080(port 80sudah digunakan oleh kami whoami-service)-p9090:8080: Kami menerbitkan antarmuka web Traefik sendiri ke porta 9090--mount ...: Kami memasang Docker Socket ke wadah agar Traefik dapat mengakses runtime Docker host --global: Kami ingin wadah Traefik pada setiap simpul manajer untuk alasan ketersediaan tinggi --constraint 'node.role == manager': Kami hanya ingin Traefik dijalankan pada node manajer karena node pekerja tidak dapat memberikan informasi yang dibutuhkan Traefik. Misalnya, docker service lspada simpul pekerja tidak berfungsi, jadi Traefik bahkan tidak akan dapat menemukan layanan apa yang sedang berjalan--network whoaminet: Menghubungkan Traefik ke jaringan yang sama dengan kami whoami-service, jika tidak mereka tidak dapat terhubung. Kami sebelumnya memberi tahu Traefik untuk terhubung ke layanan kami melalui jaringan ini dengan traefik.docker.networklabeltraefik: Katakan kepada buruh pelabuhan untuk menggunakan gambar buruh pelabuhan Traefik terbaru untuk layanan ini--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG: Argumen baris perintah diteruskan langsung ke Traefik untuk memungkinkannya berjalan dalam mode segerombolan Docker ( --loglevel=DEBUGopsional di sini tetapi menarik selama pengaturan dan untuk tutorial ini)Yang harus dilakukan adalah membuka port yang diperlukan di firewall 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
Segera setelah Traefik mulai, Anda dapat melihat di log bahwa Traefik menemukan dua whoamikontainer. Itu juga mengeluarkan nama cookie yang akan digunakan untuk menangani sesi lengket:
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"
Jika kita meringkuk, http://192.168.0.100:8080kita dapat melihat bahwa cookie baru _a49bctelah disetel:
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
Jika, pada panggilan berikutnya, kami mengirim cookie ini ke Traefik, kami akan selalu diteruskan ke wadah yang sama:
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
Cookie tidak berisi apa pun kecuali alamat IP internal, (hamparan), dari wadah yang akan dikirim Traefik untuk diminta. Jika Anda mengubah nilai cookie http://10.0.0.4:8000maka permintaan secara efektif akan diteruskan ke wadah lain. Jika cookie tidak pernah dikirim kembali ke Traefik maka sesi lengket tidak akan berfungsi dan permintaan akan seimbang antara wadah aplikasi dan wadah Traefik.
Itu semua yang diperlukan untuk mengatur Layer 7 Sticky Sessions di Docker CE pada CentOS 7.
Pelajari langkah-langkah untuk memasang Panel Kontrol Hosting Mudah (EHCP) di Ubuntu 16.04 dengan panduan ini.
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.
Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.
Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.
Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.
Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.
CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?
Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!
Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.