CentOS 7de Docker Sürüsü (CE) ile Yapışkan Oturum

Giriş

Docker Swarm, bireysel sunucularınızı bir bilgisayar kümesine dönüştürerek ölçeklendirme, yüksek kullanılabilirlik ve yük dengelemeyi kolaylaştırır. Swarm yük dengeleyici, bir yuvarlak devirli yük dengeleme stratejisi uygular ve bu, birden fazla örnekle yüksek kullanılabilirlikli bir kuruluma izin vermek için bazı yapışkan oturumlar gerektiren (eski) durumlu uygulamaların doğru çalışmasını engelleyebilir. Docker Enterprise Edition, Layer-7 yapışkan oturumunu destekler, ancak bu kılavuzda Docker'ın ücretsiz (CE) sürümüne odaklanacağız. Yapışkan oturumlar uygulamak için Traefik kullanacağız.

Ön şartlar

  • Özel ağ etkinken aynı alt ağda en az iki yeni dağıtılmış ve güncellenmiş CentOS 7 örneği
  • Docker CE bu örneklere yüklenmiş
  • Örnekler aynı Swarm'ın parçası olmalı ve özel ağ üzerinden birbirleriyle iletişim kurabilmelidir
  • Docker ve Docker Swarm hakkında ön bilgi
  • Sudo hakları olan yönetici olmayan bir kullanıcı (isteğe bağlı ancak kök kullanıcıyı kullanmamanız önemle tavsiye edilir)

Bu eğitimde, 192.168.0.100 ve 192.168.0.101 özel IP adreslerine sahip iki Vultr örneği kullanacağız, her ikisi de Docker Swarm yönetici düğümleri (bu üretim için ideal değil, bu eğitim için yeterli).

Ben kimim

Bu öğretici, jwilder/whoamidocker görüntüsünü demo uygulaması olarak kullanır . Bu basit kapsayıcı, yanıt veren kapsayıcı adıyla bir REST çağrısına yanıt verecek ve bu da yapışkan oturumların çalışıp çalışmadığını test etmeyi çok kolay hale getirecektir. Bu resim yalnızca demo amaçlıdır ve kendi uygulamanızın resmiyle değiştirilmesi gerekir. Aşağıdaki whoami-servicegibi yapılandırılır:

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

Biz sonradan istiyorsanız en DİNLENME uç nokta , biz yuvarlak robin iş yerinde Docker Swarm yük dengeleme görebilirsiniz.curlwhoamihttp://192.168.0.100/

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

Bağlantıları canlı (açık) tutmak için tasarlandıkları ve Docker Swarm yük dengeleyicisinin her yeni bağlantıda yalnızca diğer kapsayıcıya geçeceği için Chrome veya Firefox gibi modern tarayıcılarla bunu test etmenin bir faydası yoktur . Bunu bir tarayıcıyla test etmek isterseniz, tekrar yenilemeden önce bağlantının kapanması için en az 30 saniye beklemeniz gerekir.

Traefik Kurulumu

Traefik, Docker Swarm'ı yerel olarak destekler, kapları anında algılayıp kaydedebilir veya kayıtlarını kaldırabilir ve dahili kaplama ağı üzerinden uygulamanızla iletişim kurabilir. Traefik, başvurularla ilgili istekleri işlemeye başlayabilmesi için başvurunuz hakkında bazı bilgilere ihtiyaç duyar. Bu bilgiler, Swarm hizmetinize etiket ekleyerek Traefik'e sağlanır.

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

Aşağıdaki liste her bir etiketin ne anlama geldiğini açıklamaktadır:

  • traefik.docker.network: Traefik'in hizmetinizle iletişim kuracağı Docker yer paylaşımı ağı
  • traefik.port: Hizmetinizin dinlediği bağlantı noktası (bu, yayınlanan bağlantı noktası değil, dahili olarak açılan bağlantı noktasıdır)
  • traefik.frontend.rule: PathPrefix:/bağlam kökünü /bu hizmete bağlar .
  • traefik.backend.loadbalancer.stickiness: Bu hizmet için yapışkan oturumlar sağlar

Artık whoami-servicegerekli etiketlerle yapılandırıldığına göre, Traefik hizmetini sürüye ekleyebiliriz:

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

Bu komut aynı anda birçok şey yapar. Aşağıdaki liste daha ayrıntılı olarak açıklanacaktır:

  • --name traefik: Yeni Docker hizmetimizin adı: traefik
  • -p8080:80: Biz Traefik limanını yayımlamak 80portuna 8080(bağlantı noktası 80tüzüğümüz zaten kullanılıyor whoami-service)
  • -p9090:8080: Traefik'in kendi web arayüzünü limana yayınlıyoruz 9090
  • --mount ...: Traefik'in ana bilgisayarın Docker çalışma zamanına erişebilmesi için Docker Soketini kaba monte ediyoruz
  • --global: Yüksek kullanılabilirlik nedeniyle her yönetici düğümünde Traefik kapları istiyoruz
  • --constraint 'node.role == manager': Traefik'in yalnızca yönetici düğümlerinde çalışmasını istiyoruz çünkü işçi düğümleri Traefik'e ihtiyaç duyduğu bilgileri sağlayamıyor. Örneğin, docker service lsbir işçi düğümünde çalı��maz, bu nedenle Traefik hangi hizmetlerin çalıştığını bile bulamaz
  • --network whoaminet: Traefik'i bizimkiyle aynı ağa bağlar whoami-service, aksi takdirde bağlanamazlar. Daha önce Traefik'e bu ağ üzerinden traefik.docker.networketiketli servisimize bağlanmasını söylemiştik
  • traefik: Docker'a bu hizmet için en son Traefik docker görüntüsünü kullanmasını söyleyin
  • --docker --docker.swarmmode --docker.watch --web --loglevel=DEBUG: Docker sürüsü modunda çalışmasına izin vermek için doğrudan Traefik'e iletilen komut satırı argümanları ( --loglevel=DEBUGburada isteğe bağlıdır, ancak kurulum sırasında ve bu eğitici için ilginçtir)

Tek yapmanız gereken CentOS güvenlik duvarında gerekli bağlantı noktalarını açmaktır:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
sudo firewall-cmd --reload

Nasıl çalışır

Traefik başlar başlamaz, günlüklerde Traefik'in iki whoamikabı keşfettiğini görebilirsiniz . Ayrıca yapışkan oturumu işlemek için kullanacağı çerez adının çıktısını verir:

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"

Kıvrılırsak, http://192.168.0.100:8080yeni bir çerez _a49bcayarlandığını görebiliriz:

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

Sonraki aramalarda bu çerezi Traefik'e gönderirsek, her zaman aynı konteynere yönlendiriliriz:

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

Tanımlama bilgisi, Traefik'in istek için göndermesi gereken kapsayıcının dahili (kaplama) IP adresinden başka bir şey içermez. Çerez değerini değiştirirseniz, http://10.0.0.4:8000istek etkin bir şekilde diğer kapsayıcıya yönlendirilir. Eğer çerez asla Traefik'e tekrar gönderilmediyse, yapışkan oturum çalışmaz ve istekler uygulamanın kapları ile Traefik kapları arasında dengelenir.

CentOS 7'de Docker CE'de Katman 7 Sabit Oturumlarını ayarlamak için gereken her şey budur.



CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

CentOS 6da ModSecurity ile NGINX kurulumu

CentOS 6da ModSecurity ile NGINX kurulumu

Bu makalede, ModSecurity tarafından korunan bir LEMP yığını oluşturmayı açıklayacağım. ModSecurity faydalı bir açık kaynaklı web uygulaması güvenlik duvarıdır.

CentOS 6 Üzerinde Apache, MySQL ve PHP Kurulumu

CentOS 6 Üzerinde Apache, MySQL ve PHP Kurulumu

Giriş LAMP, Linux, Apache, MySQL ve PHPnin kısaltmasıdır. Bu yazılım yığını, kurulum için en popüler açık kaynaklı çözümdür.

CentOS 7 Üzerinde Chamilo 1.11.8 Kurulumu

CentOS 7 Üzerinde Chamilo 1.11.8 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Chamilo, çevrimiçi eğitim ve takım işbirliği için yaygın olarak kullanılan ücretsiz ve açık kaynaklı bir öğrenme yönetim sistemidir (LMS).

CentOS 7ye Odoo 9 Topluluğunu Yükleme

CentOS 7ye Odoo 9 Topluluğunu Yükleme

Eskiden OpenERP olarak bilinen Odoo, iyi bilinen bir açık kaynaklı ERP iş platformudur. Her büyüklükteki işletme, bol miktarda lis sayesinde Odoodan yararlanabilir

Icinga2yi CentOS 6 veya CentOS 7de Ana / İstemci Modelini Kullanacak Şekilde Değiştirme

Icinga2yi CentOS 6 veya CentOS 7de Ana / İstemci Modelini Kullanacak Şekilde Değiştirme

Icinga2 güçlü bir izleme sistemidir ve bir ana istemci modelinde kullanıldığında, NRPE tabanlı izleme kontrollerine olan ihtiyacın yerini alabilir. Master-Clien

CentOS 7 LAMP VPSye Couch CMS 2.0 Kurulumu

CentOS 7 LAMP VPSye Couch CMS 2.0 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Couch CMS, web tasarımcılarının tasarlamalarını sağlayan basit ve esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

NetOSu CentOS 7ye Yükleme

NetOSu CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Netdata, gerçek zamanlı sistem ölçümleri izleme alanında yükselen bir yıldızdır. Aynı türdeki diğer araçlarla karşılaştırıldığında, Netdata:

CentPN 7 Üzerinde ERPNext Açık Kaynak ERP Kurulumu

CentPN 7 Üzerinde ERPNext Açık Kaynak ERP Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? ERP veya Kurumsal Kaynak Planlaması, temel iş süreçlerini yönetmek için kullanılan bir kurumsal uygulama paketidir. ERPNext ücretsizdir

CentOS 6da SA-MP San Andreas Çok Oyunculu Sunucu Kurma

CentOS 6da SA-MP San Andreas Çok Oyunculu Sunucu Kurma

Başka bir Vultr eğitimine hoş geldiniz. Burada, bir SAMP sunucusunun nasıl kurulacağını ve çalıştırılacağını öğreneceksiniz. Bu kılavuz CentOS 6 için yazılmıştır. Önkoşullar

KubOSM ile Kubernetesi CentOS 7de dağıtın

KubOSM ile Kubernetesi CentOS 7de dağıtın

Genel Bakış Bu makale, bir Kubernetes kümesini hemen kurup kubeadm ile çalıştırmanıza yardımcı olmak içindir. Bu kılavuz iki sunucuyu

CentOS 7de Geliştirme için Sails.jsyi kurun

CentOS 7de Geliştirme için Sails.jsyi kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Sails.js, Ruby on Railse benzer şekilde Node.js için bir MVC çerçevesidir. Modern uygulamalar geliştirmek için yapar

CentOS 6da Half Life 2 Sunucusu Kurma

CentOS 6da Half Life 2 Sunucusu Kurma

Bu eğitimde, CentOS 6 Sistemine Half Life 2 oyun sunucusu kurma süreci ele alınacaktır. 1. Adım: Önkoşulları kurma

PrestaShopu CentOS 7ye Yükleme

PrestaShopu CentOS 7ye Yükleme

PrestaShop popüler bir açık kaynaklı e-ticaret çözümüdür. Kendi çevrimiçi mağazanızı ücretsiz oluşturmak için kullanabilirsiniz. Bu eğitimde, size

CentOS 7 LAMBA VPSye MODX Devrimi Nasıl Yüklenir

CentOS 7 LAMBA VPSye MODX Devrimi Nasıl Yüklenir

Farklı Bir Sistem mi Kullanıyorsunuz? MODX Revolution hızlı, esnek, ölçeklenebilir, ücretsiz ve açık kaynaklı, kurumsal düzeyde bir İçerik Yönetim Sistemi (CMS)

Ubuntu ve CentOS İçin Daha İyi İzleme Araçları

Ubuntu ve CentOS İçin Daha İyi İzleme Araçları

Giriş Linux sistemleri, süreçleri ve disk alanını izlemeye yardımcı olan varsayılan olarak top, df ve du gibi izleme araçlarıyla birlikte gelir. Çoğu zaman, onlar ar

CentOS 7de Kolab Groupware Kurulumu

CentOS 7de Kolab Groupware Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Kolab Groupware, ücretsiz ve açık kaynaklı bir web tabanlı grup yazılımı uygulamasıdır. Özellikleri e-posta iletişiminden, olaylardan oluşur

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun