Menyebarkan Kubernet Dengan Kubeadm di CentOS 7
Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada
Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer; memfasilitasi penskalaan, ketersediaan tinggi, dan keseimbangan beban. Penyeimbang beban Swarm menerapkan strategi penyeimbangan beban round-robin, dan ini dapat mengganggu fungsi yang benar dari aplikasi stateful (legacy) yang memerlukan beberapa bentuk sesi sticky untuk memungkinkan pengaturan yang tersedia 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.
sudo
hak (opsional tetapi sangat disarankan untuk tidak menggunakan pengguna root)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/whoami
gambar 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 jelas hanya digunakan untuk tujuan demo dan perlu diganti oleh gambar aplikasi Anda sendiri.
Layanan whoami dikonfigurasi 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 iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Jika kemudian curl
titik akhir whoami REST di http://192.168.0.100/
, kita dapat melihat penyeimbangan muatan round-robin 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, 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 berikut 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 initraefik.backend.loadbalancer.stickiness
: Mengaktifkan sesi lengket untuk layanan iniSekarang setelah whoami-service
dikonfigurasi 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 banyak hal sekaligus, seperti yang ditunjukkan dalam daftar berikut:
--name traefik
: Nama layanan Docker baru kami adalah Traefik -p8080:80
: Kami menerbitkan port Traefik 80
ke port 8080
karena port 80
sudah digunakan oleh layanan whoami kami-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 ls
pada simpul pekerja tidak berfungsi, jadi Traefik bahkan tidak akan dapat menemukan layanan apa yang sedang berjalan--network whoaminet
: Sambungkan Traefik ke jaringan yang sama dengan kami whoami-service
, jika tidak, ia tidak dapat terhubung. Kami sebelumnya memberi tahu Traefik untuk terhubung ke layanan kami melalui jaringan ini dengan traefik.docker.network
labeltraefik
: 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 kawanan Docker. DEBUG
opsional di sini, tetapi menarik selama pengaturan, dan untuk tutorial iniYang harus dilakukan adalah membuka port yang diperlukan di firewall Debian:
sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 9090 -j ACCEPT
Segera setelah Traefik mulai, Anda dapat melihat di log bahwa Traefik menemukan dua whoami
kontainer. 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 kami curl ke http://192.168.0.100:8080
kami dapat melihat bahwa cookie baru _a49bc
,, telah ditetapkan:
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 wadah tempat Traefik harus mengirim untuk meminta. Jika Anda mengubah nilai cookie menjadi http://10.0.0.4:8000
, maka permintaan secara efektif akan diteruskan ke wadah lain. Jika cookie tidak pernah dikirim kembali ke Traefik, maka sesi sticky 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 Debian 9.
Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada
Rancher OS adalah distribusi Linux yang sangat ringan yang dibangun di sekitar Docker. OS itu sendiri berbobot sekitar 20MB. Tutorial ini akan membantu Anda menjalankan dan menjalankannya
Pendahuluan Docker adalah aplikasi yang memungkinkan kita untuk menyebarkan program yang dijalankan sebagai wadah. Itu ditulis dalam bahasa pemrograman Go populer
Menggunakan Sistem yang Berbeda? Docker adalah aplikasi yang memungkinkan untuk penyebaran perangkat lunak dalam wadah virtual. Itu ditulis dalam programmin Go
Harbor adalah server registri sumber terbuka kelas perusahaan yang menyimpan dan mendistribusikan gambar Docker. Harbor memperluas distribusi Docker sumber terbuka b
Artikel ini menjelaskan cara menginstal docker-compose di CoreOS. Di CoreOS, folder / usr / tidak dapat diubah sehingga jalur standar / usr / local / bin tidak tersedia untuk
Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan
Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan
Aplikasi PHP biasanya disusun oleh server web, sistem basis data relasional dan juru bahasa itu sendiri. Dalam tutorial ini kita akan menjadi leveragin
Dengan bantuan aplikasi Vultr Docker, Anda dapat dengan mudah menggunakan Docker pada instance server Vultr Anda. Sementara itu, Anda dapat memfasilitasi tugas mengelola Docker
Kita semua tahu dan cinta Docker, sebuah platform untuk membuat, mengelola, dan mendistribusikan kontainer aplikasi di beberapa mesin. Docker Inc. menyediakan layanan t
Menggunakan Sistem yang Berbeda? Pendahuluan Sentry adalah solusi open source untuk pelacakan kesalahan. Sentry melacak pengecualian dan pesan berguna lainnya
Ikhtisar RancherOS adalah sistem operasi yang sangat ringan (hanya sekitar 60 MB) yang menjalankan daemon Docker sistem sebagai PID 0 untuk menjalankan layanan sistem
Kubernetes adalah platform sumber terbuka yang dikembangkan oleh Google untuk mengelola aplikasi kemas di sekelompok server. Itu dibangun di atas satu dekade dan
Menggunakan Sistem yang Berbeda? Pendahuluan Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer, memfasilitasi penskalaan, ketersediaan tinggi dan
Tutorial ini menjelaskan dasar-dasar memulai Docker. Saya berasumsi bahwa Anda sudah menginstal Docker. Langkah-langkah dalam tutorial ini akan bekerja pada sebuah
Saat menjalankan aplikasi web, Anda biasanya ingin memaksimalkan sumber daya Anda tanpa harus mengonversi perangkat lunak Anda untuk menggunakan multithreading.
Prasyarat Mesin Docker 1.8+. Minimal 4GB ruang disk. Minimal RAM 4GB. Langkah 1. Instal Docker Untuk menginstal SQL-Server, Docker mus
Artikel ini akan menunjukkan kepada Anda bagaimana menyebarkan aplikasi Node Anda dalam wadah Docker. Catatan: Tutorial ini mengasumsikan bahwa Anda telah menginstal dan membaca Docker
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
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 blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.
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.
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?
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.
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.
Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut