Kubernetes kümeleri için MetalLB'ye genel bakış
Şunlar için geçerlidir: Azure Yerel, sürüm 23H2
AKS Arc kümenizi ayarlarken, hizmetlerinizi küme dışından erişilebilir hale getirmek için bir yol gerekir. Türü LoadBalancer
bu erişilebilirlik için idealdir, ancak dış IP beklemede kalır. Azure Arc özellikli Kubernetes için MetalLB uzantısı, uygulamalarınız ve hizmetleriniz için dış IP'ler oluşturmanıza olanak tanıyan bir araçtır. Arc özellikli Kubernetes kümeleri, Azure Arc özellikli Kubernetes için MetalLB uzantısını kullanarak MetalLB ile tümleştirebilir.
Hizmetlerinizin küme dışında erişilebilir olmasını sağlamak için MetalLB'nin IP adreslerine ihtiyacı vardır. MetalLB, hizmetleri oluştururken gerektiğinde bu adresleri atamayı ve yayımlamayı üstlenir, ancak yalnızca yapılandırılan havuzlarındaki IP'leri dağıtır. MetalLB bir hizmete dış IP adresi atadığında, küme dışındaki ağa bu IP'nin kümeye ait olduğunu bildirir. Bu iletişim, ARP veya BGP gibi standart ağ protokolleri kullanılarak yapılır.
- Katman 2 modu (ARP): Katman 2 modunda, kümedeki bir K8s düğümü hizmetin sahipliğini alır ve bu IP'lerin yerel ağda erişilebilir olmasını sağlamak için standart adres bulma protokollerini (IPv4 için ARP) kullanır. LAN'ın bakış açısından, duyuru makinesinin birden çok IP adresi vardır.
- BGP: BGP modunda, kümedeki tüm makineler, denetlediğiniz yakındaki yönlendiricilerle BGP eşleme oturumları oluşturur ve bu yönlendiricilere trafiği hizmet IP'lerine nasıl ileteceklerini söyler. BGP'nin kullanılması, birden çok düğümde gerçek yük dengelemeyi ve BGP'nin ilke mekanizmaları nedeniyle ayrıntılı trafik denetimini etkinleştirir.
MetalLB'nin iki bileşeni vardır:
- Denetleyici: her hizmeti için IP'yi ayırma sorumluluğundadır
type=loadbalancer
. - Konuşmacı: veya
BGP
protokol kullanarakARP
IP'yi reklamdan sorumludur. Yüksek kullanılabilirlik (HA) gereksinimini karşılamak için konuşmacı dağıtımı bir daemonset'tir.
Not
- Konuşmacı podları konak ağını kullanır; örneğin, IP'leri düğüm IP'leridir, böylece yayın iletilerini doğrudan konak ağ arabirimi aracılığıyla gönderebilirler.
- Denetleyici pod, kümedeki herhangi bir düğümde bulunan normal bir poddur.
- ARP modunda konuşmacı podlarından biri öncü olarak seçilir. Ardından IP'yi bir ARP yayın iletisi kullanarak tanıtarak IP'yi içinde yaşadığı düğümün MAC adresiyle bağlar. Bu nedenle, tüm trafik önce bir düğüme isabet eder ve ardından kube-proxy bunu hizmetin tüm arka uç podlarına eşit olarak yayar.
- BGP modunda, tüm küme düğümleri sekmede
BGP Peers
oluşturulan tüm BGP eşleriyle bağlantı kurar. Genellikle BGP eşleri bir TOR anahtarıdır. BGP yönlendirme bilgilerini yayınlamak için BGP eşlerinin küme düğümlerinin IP'sini ve ASN'sini tanıyacak şekilde yapılandırılması gerekir. BGP'yi ECMP (Eşit Maliyetli MultiPath) ile kullandığınızda, trafik tüm düğümlerde eşit olarak isabet eder ve bu nedenle gerçek yük dengelemeye ulaşır.
MetalLB L2 (ARP) ve BGP modlarını karşılaştırma
MetalLB ile L2 ve BGP modu arasındaki seçim, özel gereksinimlerinize, ağ altyapınıza ve dağıtım senaryolarınıza bağlıdır:
Görünüş | L2 (ARP) modunda MetalLB | BGP modunda MetalLB |
---|---|---|
Genel bakış | Katman 2 modunda, bir K8s düğümü bir hizmetin yerel ağa reklam verme sorumluluğunu üstlenir. Ağ açısından bakıldığında, K8s düğümünü ağ arabirimine atanmış birden çok IP adresi var gibi görünüyor. | BGP modunda, kümenizdeki her K8s düğümü ağ yönlendiricilerinizle bir BGP eşleme oturumu oluşturur ve dış küme hizmetlerinin IP'lerini tanıtmak için bu eşleme oturumunu kullanır. |
IP adresi ataması | MetallLB IP adresi havuzları K8s düğümleriyle aynı alt ağda olmalıdır. | MetallLB IP adresi havuzları K8s düğümlerinden farklı bir ağda olabilir. |
Yapılandırma karmaşıklığı | Düşük. Kubernetes düğümlerinizle aynı ağda IP adresleri sağladığınızdan, MetalLB'yi ayarlarken yalnızca bir IP CIDR veya IP havuzu belirtmeniz yeterlidir. | Yüksek. BGP'yi yapılandırmak için BGP protokolü bilgisi ve ağ altyapınızın anlaşılması gerekir. |
Ölçeklenebilirlik | Küçük ve orta ölçekli K8s dağıtımları için uygun olan Katman 2 ağlarıyla sınırlıdır. | Karmaşık ağ topolojileri ve büyük ölçekli K8s dağıtımları için uygundur. |
Altyapı ağıyla uyumluluk | Tüm ağlarla çalışır, ancak tüm hizmetler için tek bir IP kullanıldığından ve hizmetin giriş bant genişliği tek bir düğümün bant genişliğiyle sınırlı olduğundan büyük K8s kümelerinde ARP taşmasına neden olabilir. | Ağ altyapısında BGP desteği gerektirir. |
Trafik mühendisliği | Trafik yönlendirme üzerinde sınırlı denetim. | BGP özniteliklerini kullanarak trafik yönlendirmesi üzerinde ayrıntılı denetim. |
Dış bağlantı | Dış bağlantı için daha fazla yapılandırma gerektirir. | BGP yönlendirmesi kullanarak dış ağlarla sorunsuz bağlantı sağlar. |
SSS
MetalLB örneği AKS Arc kümelerinde yeniden kullanılabilir mi?
Hayır, MetalLB AKS Arc kümelerinde yeniden kullanılamaz. MetalLB bir Kubernetes kümesinde pod olarak bulunur ve yük dengeleyiciler Özel Kaynaklar (CR) olur. MetalLB Arc k8s uzantısını Azure CLI, Azure portalı veya Azure Resource Manager şablonlarını kullanarak yüklemeniz ve her AKS Arc kümesi için yük dengeleyiciler oluşturmanız gerekir.