Gereksinimler: Yönlendiricinin DHCP servisi aracılığıyla Docker konteynerine bağımsız bir LAN IP adresi atamak istiyorum, böylece geliştirilen ASP.NET Core uygulaması birden fazla sunucuya dağıtılabilir (yüksek kullanılabilirlik için uygulama birden fazla sunucuya dağıtılmalıdır) ve ardından birbirlerine aktarılabilirler. Bazı uygulamalar, özellikle eski uygulamalar veya ağ trafiğini izleyenler, doğrudan fiziksel ağa bağlanmayı bekler. Bu durumda, macvlan ağ sürücüsünü kullanarak her konteynerin sanal ağ arayüzüne bir MAC adresi atayabilirsiniz, böylece fiziksel ağa doğrudan bağlanan bir ağ arayüzü gibi görünebilir. Bu durumda, Docker hostunuzda macvlan için fiziksel bir arayüz belirtmeniz gerekir. Ve. Macvlan'ın alt ağları ve geçitleri. Ağınızı farklı bir fiziksel ağ arayüzüyle izole edebilirsiniz.
Öncelikle, ana makinenin fiziksel NIC'ini ayarlamanız gerekiyor"Serbest mod" moduna izin verirÖrneğin, ESXI'yi örnek alarak, sanal bir anahtarı şu şekilde kurun:
Sistem ortamı aşağıdaki gibidir:
CentOS Linux sürüm 7.9.2009 (Çekirdek) Docker sürüm 20.10.20, build 9fdeb9c
Docker servisini CentOS 7 ana bilgisayarına kurun. (atlandı)
Hazırlamaknet.ipv4.ip_forward = 1, mevcut yapılandırmayı sysctl -a üzerinden görebilirsiniz, eğer 1 değilse lütfen 1 olarak değiştirin, eğitim bölüm çıkarılmıştır. Ana amaç, Linux ana bilgisayarında birden fazla ağ kartı olduğunda bir ağ kartının aldığı bilginin diğer ağ kartlarına iledilip geçirilemeyeceğini belirlemektir ve eğer bu kart 1'e ayarlanmışsa paket iletimine yapılabilir.
Docker hizmeti kurulduğunda, aşağıdaki komutla bir macvlan ağı oluşturun:
--ip-range: Alt kümeyi Docker 192.168.50.192/27'ye atamaya karar verildi; bu da 192.168.50.192'den başlayıp 192.168.50.223'te biten 32 adres aralığıdır. --gateway: Gateway adresini ayarlayın, genellikle yönlendirici IP adresini, lütfen gerçek durumunuza göre ayarlayın -o parent: Ana arayüz, yani ana bilgisayarın fiziksel NIC kartının adıdır ve gerçek duruma göre IP A üzerinden görüntülenebilir.
Oluşturma tamamlandıktan sonra, aşağıdaki komutla görüntüleyebilirsiniz:
Bir busybox konteyneri başlatmayı ve yeni oluşturulan macvlan ile şu komutla ağ kurmayı deneyin:
İpucu: Gerekirse, kabı verinIP adresini ayarlamak için --ip parametresini kullanınörneğin: --ip=192.168.50.210
Bir konteynerin IP adresini aşağıdaki komutu kullanarak görebilirsiniz:
Tabii ki, konteynerin içine girip aşağıdaki komutla da görüntüleyebilirsiniz:
BizLAN'daki diğer makineleri kullanarak konteynerin IP adresini ping atmayı deneyin, aşağıdaki şekilde gösterildiği gibi ping atabilirsiniz:
Yönlendiricinin IP ve MAC haritalama tablosuna baktığınızda, docker konteynerinin MAC/IP adresinin yönlendiricidekiyle aynı olduğunu görebilirsiniz; aşağıdaki şekilde gösterilmiştir:
Bir Redis konteynerini tekrar başlatmayı ve yeni MacVLAN ağını aşağıdaki komutla kurmayı deneyin:
CentOS ana bilgisayarının kendisinde de bir redis uygulaması çalışıyor ve o da 6379 portunu kullanıyor, ayrıca 6379 portunu kullanan bir redis konteyner uygulaması oluşturuyoruz, yaniAynı ana port 6379, iki farklı IP tarafından dinlenir, çalışıp yaramadığını görmeye çalış.
Test sonuçları normal şekilde çalışıyor, aşağıdaki şekilde gösterildiği gibi:
Kaynaklar
Bağlantı girişi görünür.
|