Terapkan Kubernetes Dengan Kubeadm di CentOS 7
Gambaran Keseluruhan Artikel ini dimaksudkan untuk membantu anda mendapatkan cluster Kubernet dan berjalan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua pelayan, di
Docker Swarm mengubah pelayan individu anda menjadi sekumpulan komputer; memudahkan skala, ketersediaan tinggi dan mengimbangi beban. Pengimbang beban Swarm menerapkan strategi pengimbangan beban round-robin, dan ini mungkin mengganggu fungsi aplikasi (warisan) yang betul yang memerlukan beberapa bentuk sesi melekit untuk membolehkan penyediaan yang tersedia tinggi dengan banyak keadaan. Docker Enterprise Edition menyokong sesi melekat Layer-7, tetapi dalam panduan ini kita akan memfokuskan pada versi (CE) Docker percuma. Untuk melaksanakan sesi melekit kita akan menggunakan Traefik.
sudo
hak (pilihan tetapi sangat dinasihatkan agar tidak menggunakan pengguna root)Dalam tutorial ini, kami akan menggunakan dua contoh Vultr dengan alamat IP peribadi 192.168.0.100
dan 192.168.0.101
. Kedua-duanya adalah nod pengurus Docker Swarm (yang tidak sesuai untuk pengeluaran tetapi cukup untuk tutorial ini).
Tutorial ini menggunakan jwilder/whoami
gambar docker sebagai aplikasi demo. Ini bekas mudah akan bertindak balas kepada panggilan REST dengan nama bekas yang bertindak balas, menjadikannya sangat mudah untuk menguji jika sesi melekit berfungsi. Imej ini jelas hanya digunakan untuk tujuan demo dan perlu digantikan oleh imej aplikasi anda sendiri.
Perkhidmatan whoami dikonfigurasi seperti 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
Sekiranya kita kemudiannya curl
menamatkan sesi akhir REST http://192.168.0.100/
, kita dapat melihat beban mengimbangi beban 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 penyemak imbas moden seperti Chrome atau Firefox kerana ia direka untuk memastikan sambungan tetap hidup, dan pengimbang beban Docker Swarm hanya akan beralih ke bekas lain pada setiap sambungan baru . Sekiranya anda ingin menguji ini dengan penyemak imbas, anda perlu menunggu sekurang-kurangnya 30 saat untuk menutup sambungan sebelum menyegarkan semula.
Traefik secara asli menyokong Docker Swarm, ia dapat mengesan dan mendaftarkan atau membatalkan pendaftaran kontena dalam perjalanan dan ia berkomunikasi dengan aplikasi anda melalui rangkaian overlay dalaman. Traefik memerlukan beberapa maklumat tentang permohonan anda sebelum ia boleh mula mengendalikan permintaan untuknya. Maklumat ini diberikan kepada Traefik dengan menambahkan label kepada perkhidmatan 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
Senarai berikut menerangkan apa arti setiap label:
traefik.docker.network
: Rangkaian overlay Docker, di mana Traefik akan berkomunikasi dengan perkhidmatan anda traefik.port
: Port di mana perkhidmatan anda mendengar (ini adalah port yang terdedah secara dalaman, bukan port yang diterbitkan)traefik.frontend.rule
: PathPrefix:/
mengikat akar konteks ' /
' kepada perkhidmatan initraefik.backend.loadbalancer.stickiness
: Mengaktifkan sesi melekit untuk perkhidmatan iniSekarang bahawa whoami-service
telah dikonfigurasikan dengan label yang diperlukan, kami boleh menambah perkhidmatan Traefik kepada kawanan:
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 cukup banyak perkara sekaligus, seperti yang ditunjukkan dalam senarai berikut:
--name traefik
: Nama perkhidmatan Docker baru kami ialah Traefik -p8080:80
: Kami menerbitkan port Traefik 80
ke port 8080
kerana port 80
sudah digunakan oleh perkhidmatan whoami kami-p9090:8080
: Kami menerbitkan antara muka web Traefik ke port 9090
--mount ...
: Kami memasang soket Docker ke dalam bekas supaya Traefik boleh mengakses runtime Docker tuan rumah --global
: Kami mahukan kontena Traefik di setiap nod pengurus atas alasan ketersediaan yang tinggi --constraint 'node.role == manager'
: Kami hanya mahu Traefik berjalan pada nod pengurus kerana nod pekerja tidak dapat memberikan Traefik dengan maklumat yang diperlukan. Sebagai contoh, docker service ls
pada simpul pekerja tidak berfungsi, jadi Traefik bahkan tidak dapat mengetahui perkhidmatan apa yang sedang dijalankan--network whoaminet
: Sambungkan Traefik ke rangkaian yang sama dengan kami whoami-service
, jika tidak, ia tidak dapat menghubungkannya. Kami sebelum ini memberitahu Traefik untuk menyambung ke perkhidmatan kami melalui rangkaian ini dengan traefik.docker.network
labeltraefik
: Beritahu dermaga untuk menggunakan imej docker Traefik terbaru untuk perkhidmatan ini--docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG
: Argumen arahan arahan diluluskan secara langsung kepada Traefik untuk membolehkannya berjalan dalam mod suar Docker. DEBUG
adalah pilihan di sini, tetapi menarik semasa persediaan, dan untuk tutorial iniApa yang perlu dilakukan ialah membuka port yang diperlukan dalam firewall Debian:
sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 9090 -j ACCEPT
Sebaik sahaja Traefik bermula, anda boleh melihat di dalam log yang Traefik menemui dua whoami
bekas. Ia juga mengeluarkan nama cookie yang akan digunakan untuk mengendalikan sesi melekit:
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"
Sekiranya kita bergelung http://192.168.0.100:8080
kita dapat melihat bahawa kuki 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 menghantar kuki ini kepada Traefik, kami akan sentiasa dihantar ke bekas 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
Kuki tidak mengandungi apa-apa kecuali alamat IP dalaman kontena yang mana Traefik harus menghantar untuk meminta. Sekiranya anda menukar ke nilai kuki http://10.0.0.4:8000
, maka permintaan tersebut akan diteruskan ke bekas lain dengan berkesan. Sekiranya cookie tidak akan dihantar semula ke Traefik, maka sesi melekit tidak akan berfungsi dan permintaan akan diimbangi antara bekas aplikasi dan bekas Traefik.
Itu sahaja yang diperlukan untuk menyiapkan Layer 7 Sticky Sessions di Docker CE di Debian 9.
Gambaran Keseluruhan Artikel ini dimaksudkan untuk membantu anda mendapatkan cluster Kubernet dan berjalan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua pelayan, di
Pengenalan Docker adalah aplikasi yang memungkinkan kita menyebarkan program yang dijalankan sebagai wadah. Ia ditulis dalam bahasa pengaturcaraan Go yang popular
Pendahuluan Panduan ini akan menunjukkan kepada anda cara membuat dan mengkonfigurasi kawanan Docker menggunakan beberapa pelayan Alpine Linux 3.9.0 dan Portainer. Harap maklum tha
Menggunakan Sistem Berbeza? Pengenalan Rancher adalah platform sumber terbuka untuk menjalankan kontena dan membina perkhidmatan kontena peribadi. Rancher adalah asas
Artikel ini menerangkan cara memasang docker-compose pada CoreOS. Di CoreOS, folder / usr / tidak berubah sehingga jalan standard / usr / local / bin tidak tersedia
Kita semua tahu dan menyukai Docker, platform untuk membuat, mengurus dan mengedarkan bekas aplikasi di pelbagai mesin. Docker Inc. menyediakan perkhidmatan t
Menggunakan Sistem Berbeza? Pengenalan Rancher adalah platform sumber terbuka untuk menjalankan kontena dan membina perkhidmatan kontena peribadi. Rancher adalah asas
Menggunakan Sistem Berbeza? Pengenalan Docker Swarm menukarkan pelayan individu anda ke dalam kumpulan komputer, memudahkan scaling, ketersediaan tinggi
Menggunakan Sistem yang berbeza? Docker adalah aplikasi yang memungkinkan penggunaan perisian dalam wadah maya. Ia ditulis dalam program Go
Gambaran Keseluruhan RancherOS adalah sistem operasi yang sangat ringan (hanya sekitar 60 MB) yang menjalankan sistem Docker daemon sebagai PID 0 untuk menjalankan sistem perkhidmatan
Tutorial ini menerangkan asas-asas untuk memulakan Docker. Saya menganggap bahawa anda sudah memasang Docker. Langkah-langkah dalam tutorial ini akan berfungsi pada
Semasa menjalankan aplikasi web, biasanya anda ingin memanfaatkan sepenuhnya sumber anda tanpa perlu menukar perisian anda untuk menggunakan multithreading o
Prasyarat enjin Docker 1.8+. Minimum ruang cakera 4GB. Minimum RAM 4GB. Langkah 1. Pasang Docker Untuk memasang SQL-Server, Docker mus
Menggunakan Sistem Berbeza? Pengenalan Docker adalah aplikasi yang memungkinkan penggunaan perisian dalam wadah maya. Ia ditulis dalam G
Menggunakan Sistem yang berbeza? Docker adalah aplikasi yang memungkinkan untuk menyebarkan program yang dijalankan sebagai wadah. Ia ditulis dalam program Go yang popular
Artikel ini akan menunjukkan kepada anda cara menyebarkan aplikasi Node anda dalam wadah Docker. Catatan: Tutorial ini mengandaikan bahawa anda telah memasang dan membaca Docker
Menggunakan Sistem Berbeza? Pengenalan Sentry adalah penyelesaian sumber terbuka untuk pengesanan ralat. Sentry menjejaki pengecualian dan mesej berguna lain dari sana
Harbour adalah pelayan pendaftaran kelas perusahaan sumber terbuka yang menyimpan dan menyebarkan gambar Docker. Harbour memperluas sumber terbuka Docker Distribution b
Rancher OS adalah sebaran Linux yang sangat ringan yang dibina di sekitar Docker. OS itu sendiri mempunyai berat sekitar 20MB. Tutorial ini akan membuatkan anda dapat menggunakannya
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut