k8s network flanel vs patiska
|
Son zamanlarda paas içeriği üzerinde çalışıyorum ve kubernetes'e de yeni dokundum, her ikisi de ağ kapsamını, yani ana bilgisayarlar arasında konteynerler arasındaki iletişimi içeriyor. docker'ın kendisinin yerel bir ana bilgisayarlar arası iletişim şeması var, ancak verimlilik çok zayıf. Bu yüzden flannel, calico, weave ve benzeri bir dizi açık kaynak bileşeni vardır. İşte calico ve flannel'e ana giriş.
Flanel Prensibi
CoreOS tarafından geliştirilen bir proje olan Flannel, muhtemelen en basit ve popüler CNI eklentisidir. Konteyner orkestrasyon sistemlerinde ağ mimarisinin en olgun örneklerinden biridir ve daha iyi konteynerler arası ve ana bilgisayarlar arası ağ oluşturmayı hedefler. CNI konseptinin yükselişiyle birlikte, Flannel CNI eklentisi erken bir giriş olarak kabul edilir.
Diğer çözümlerle karşılaştırıldığında Flannel'in kurulumu ve yapılandırılması nispeten kolaydır. Tek bir ikili olarak paketlenmiştir, FlannelD ve birçok yaygın Kubernetes küme dağıtım aracı ve birçok Kubernetes dağıtımı Flannel'i varsayılan olarak yükleyebilir.Flannel, bir API kullanarak durum bilgilerini depolamak için Kubernetes kümelerinin mevcut etcd kümelerini kullanabilir ve bu nedenle özel bir veri gerektirmez. depolama.
Flannel bir Layer 3 IPv4 Overlay ağı yapılandırır. Kümedeki her düğümü kapsayan büyük bir dahili ağ oluşturur. Bu Overlay ağında, her düğümün dahili olarak IP adresleri atamak için kullanılan bir alt ağı vardır. Pod'ları yapılandırırken, her düğümdeki Docker köprü arayüzü her yeni konteynere bir adres atar. Aynı ana bilgisayardaki podlar Docker köprüsünü kullanarak iletişim kurabilirken, farklı ana bilgisayarlardaki podlar, uygun hedefe yönlendirmek üzere trafiklerini UDP paketlerinde kapsüllemek için flanneld kullanır.
Flannel, kapsülleme ve yönlendirme için birkaç farklı arka uç türüne sahiptir. Varsayılan ve önerilen yaklaşım VXLAN kullanmaktır, çünkü VXLAN daha iyi performans gösterir ve daha az manuel müdahale gerektirir.
Calico Mimarisi
calico şu önemli bileşenleri içerir: Felix, etcd, BGP Client, BGP Route Reflector, aşağıda bu bileşenlerin bir açıklaması bulunmaktadır.
Felix: temel olarak rota yapılandırması ve ACLS kuralı yapılandırması ve dağıtımından sorumludur, her düğümde bulunur.
etcd: dağıtılmış anahtar-değer deposu, Calico ağ durumunun doğruluğunu sağlamak için esas olarak ağ meta veri tutarlılığından sorumludur, kubernetes ile paylaşılabilir;
BGPClient(BIRD), esas olarak Felix tarafından çekirdeğe yazılan yönlendirme bilgilerinin mevcut Calico ağına dağıtılmasından sorumludur, iş yükleri arasındaki iletişimin geçerliliğini sağlar;
BGPRoute Reflector(BIRD), büyük ölçekli dağıtımlarda kullanılır, tüm düğümleri birbirine bağlayan örgü modelini ortadan kaldırır ve bir veya daha fazla BGPRoute Reflector aracılığıyla merkezi rota dağıtımı sağlar;
calico prensibi
Aşağıdaki şekilde gösterildiği gibi, kaynak konteynerden kaynak ana bilgisayara, veri merkezine ve ardından hedef konteynere nihai dağıtım için hedef ana bilgisayara yönlendirme sürecini açıklar.
Karşılaştırma
Yukarıdaki prensipten de görebileceğiniz gibi, flannel yönlendirme ve iletimin yanı sıra paket mühürleme ve açma işlemlerini de gerçekleştirerek CPU işlem kaynaklarını boşa harcamaktadır. Aşağıdaki şekilde web üzerinde bulunan çeşitli açık kaynak kodlu ağ bileşenlerinin performansı karşılaştırılmaktadır. Hem bant genişliği hem de ağ gecikmesi, calico ve ana bilgisayar performansının benzer olduğu görülebilir.
|
Önceki:Mevcut unvan ile online sınav sistemi yapmak下一篇:【转】警惕 System.Environment.CurrentDirectory 获取当前目录
|