Aracılığıyla paylaş


Azure Operatör Nexus Kubernetes'te ağ iletişimi

Azure Operatör Nexus veya yalnızca Operatör Nexus örneği, müşteri tesislerinde yüklü hesaplama ve ağ donanımından oluşur. Fiziksel ve sanal cihazların birden çok katmanı, bu işlem donanımında çalışan iş yüklerine ağ bağlantısı ve yönlendirme hizmetleri sağlar. Bu belge, bu ağ katmanlarının her birinin ayrıntılı açıklamasını sağlar.

Topoloji

Burada bir Operator Nexus örneğindeki donanımın topolojisini açıklayacağız.

Ağ Diyagramı - Kuşbakışı görünüm.

Müşteriler Sağlayıcı uç (PE) yönlendiricilerine sahip olur ve yönlendiricileri yönetir. Bu yönlendiriciler müşterinin omurga ağının kenarını temsil eder.

Operatör Nexus, müşteri uç (CE) yönlendiricilerini yönetir. Bu yönlendiriciler Operatör Nexus örneğinin bir parçasıdır ve kenar yakını donanım malzeme listesine (BOM) dahildir. Her çok raflı Operatör Nexus örneğinde iki CE yönlendiricisi vardır. Her bir CE yönlendiricisinin, PE yönlendiricilerinin her birine bir bağlantısı vardır. CE yönlendiricileri, müşterinin ağına fiziksel olarak bağlı olan tek Operatör Nexus cihazlarıdır.

Çok raflı Azure Operatör Nexus örneğindeki her işlem sunucusu rafının iki raf üstü (TOR) anahtarı vardır. Her bir TOR'un, CE yönlendiricilerinin her birine bağlantısı vardır. Her bir TOR, raftaki her çıplak metal işlem sunucusuna bağlanır ve basit bir Katman 2 anahtarı olarak yapılandırılır.

Çıplak metal

Bu işlem altyapısında çalışan kiracı iş yükleri genellikle sanal veya kapsayıcılı ağ işlevleridir. Sanal ağ işlevleri (VNF) işlem sunucusu donanımında sanal makine (VM) olarak çalışır. Kapsayıcılı ağ işlevleri (CNFs) kapsayıcılar içinde çalışır. Bu kapsayıcılar, işlem sunucusu donanımında çalışan VM'lerde çalışır.

Son kullanıcı veri düzlemi hizmetleri sağlayan ağ işlevleri, gelişmiş özellikler ve yüksek G/Ç oranları sunan yüksek performanslı ağ arabirimleri gerektirir.

Ağ Diyagramı - Çıplak Metal.

Yakın alanlı çok raflı Operatör Nexus örneklerinde, her çıplak metal sunucu, Tekdüzen Olmayan Bellek Erişimi (NUMA) mimarisine sahip çift yuvalı bir makinedir.

Az kenar çoklu raflı bir Azure Operator Nexus örneğindeki çıplak metal işlem sunucusu, her NUMA hücresi için bir çift portlu ağ arabirim kartı (pNIC) içerir. Bu pNIC'ler Tek Kök G/Ç Sanallaştırma (SR-IOV) ve diğer yüksek performanslı özellikleri destekler. Bir NUMA hücresi, bellek ile CPU ve bir fiziksel ağ arabirim kartı (pNIC) ile hizalanmıştır.

Kiracı iş yüklerine atanan tüm ağ arabirimleri konak geçiş cihazlarıdır ve iş yükü VM'sinin CPU ve bellek kaynaklarını barındıran NUMA hücresine hizalanmış pNIC'den ayrılan SR-IOV sanal işlevlerini (VF) kullanır. Bu düzenleme, bu VFlere atanan VM'ler ve kapsayıcılar içindeki ağ katmanının en iyi performansı göstermesini sağlar.

İşlem rafları, bir çift Raf Üstü (TOR) anahtarıyla dağıtılır. Her bir çıplak metal işlem sunucusundaki her pNIC, bu iki TOR'a da bağlıdır. Çok kasalı bağlantı toplama grubu (MLAG), yüksek kullanılabilirlik sağlar ve bağlantı toplama denetim protokolü (LACP) bağlantı için daha yüksek toplama aktarım hızı sağlar.

Her çıplak metal işlem sunucusu, iki konak-yerel sanal işlevi (VF) (VM-yerel VF'lerin aksine) toplayan bir bağ tarafından sağlanan bir depolama ağ arabirimine sahiptir ve her iki pNIC'e bağlanır. Bu iki VF (Sanal Fonksiyon), bir pNIC'in arızalanması durumunda ağ depolama bağlantısının kullanılabilirliği sağlanır şekilde aktif-yedek bağlantı içinde toplanır.

Mantıksal ağ kaynakları

Operatör Nexus Ağ Bulut API'si ve Yönetilen Network Fabric API'leri ile etkileşim kurarken, kullanıcılar bir mantıksal kaynak kümesi oluşturur ve değiştirir.

Yönetilen Ağ Dokusu API'sindeki mantıksal kaynaklar, temel alınan ağ donanımındaki (TOR'ler ve CE'ler) ağlara ve erişim denetimi yapılandırmasına karşılık gelir. Özellikle ManagedNetworkFabric.L2IsolationDomain ve ManagedNetworkFabric.L3IsolationDomain kaynaklar düşük düzeyli anahtar ve ağ yapılandırması içerir. A ManagedNetworkFabric.L2IsolationDomain , bir sanal yerel alan ağ tanımlayıcısı (VLAN) temsil eder. A ManagedNetworkFabric.L3IsolationDomain , CE yönlendiricilerinde sanal yönlendirme ve iletme yapılandırmasını (VRF) temsil eder. Yalıtım Etki Alanı kavramı hakkında bilgi edinin.

Ağ Bulutu API'sindeki mantıksal kaynaklar işlem altyapısına karşılık gelir. Fiziksel raflar ve çıplak metal donanım için kaynaklar vardır. Benzer şekilde, kubernetes kümeleri ve bu donanım üzerinde çalışan sanal makineler ve bunları bağlayan mantıksal ağlar için kaynaklar vardır.

NetworkCloud.L2Network, NetworkCloud.L3Networkve NetworkCloud.TrunkedNetwork tümü iş yükü ağlarını temsil eder, yani bu ağlardaki trafik kiracı iş yüklerine yöneliktir.

Bir NetworkCloud.L2Network, katman 2 ağını temsil eder ve bir ManagedNetworkFabric.L2IsolationDomain bağlantısından biraz daha fazlasını içerir. Bu L2IsolationDomain bir VLAN tanımlayıcısı ve bir maksimum iletim birimi (MTU) ayarı içerir.

NetworkCloud.L3Network 3. katman ağını temsil eder ve bir VLAN tanımlayıcısı, ağdaki uç noktalar için IP adresi ataması hakkında bilgi ve bağlantısı ManagedNetworkFabric.L3IsolationDomainiçerir.

Uyarı

Kaynak NetworkCloud.L3Network neden bir VLAN tanımlayıcısı içeriyor? VLAN'lar katman 2 kavramı değil mi?

Evet, evet öyleler! Bunun nedeni, NetworkCloud.L3Network öğesinin belirli bir ManagedNetworkFabric.InternalNetwork öğesine başvurabilmesi gerektiği gerçeğinden kaynaklanır. ManagedNetworkFabric.InternalNetworkbelirli bir ManagedNetworkFabric.L3IsolationDomain içinde oluşturulur ve bir VLAN tanımlayıcısı verilir. Bu nedenle, belirli ManagedNetworkFabric.InternalNetworkNetworkCloud.L3Network bir öğesine başvurmak için hem L3IsolationDomain tanımlayıcısı hem de VLAN tanımlayıcısı içermelidir.

Ağ Diyagramı - Mantıksal kaynak görünümü.

Ağ Bulutu API'sındaki mantıksal ağ kaynakları , Yönetilen Ağ Dokusu API'sindeki NetworkCloud.L3Network mantıksal kaynaklarına benzer ve bu sayede fiziksel işlem altyapısı ile fiziksel ağ altyapısı arasında mantıksal bir bağlantı kurar.

Nexus Sanal Makinesi oluştururken, Nexus Sanal Makinesi'nde NetworkAttachmentssıfır veya daha fazla L2, L3 ve Gövdeli Ağ belirtebilirsiniz. Nexus Kubernetes Kümesi oluştururken, Nexus Kubernetes Kümesinin NetworkConfiguration.AttachedNetworkConfiguration alanında sıfır veya daha fazla L2, L3 ve Trunk Ağ belirtebilirsiniz. AgentPools, Nexus Kubernetes Kümesi içindeki benzer Kubernetes çalışan düğümlerinden oluşan koleksiyonlardır. Her Aracı Havuzunun bağlı L2, L3 ve Trunked Ağlarını, AgentPool'un AttachedNetworkConfiguration alanında yapılandırabilirsiniz.

Ağları tek başına Nexus Sanal Makineler ve Nexus Kubernetes Kümeleri arasında paylaşabilirsiniz. Bu birleştirme özelliği, aynı mantıksal ağlarda birlikte çalışan CNF'leri ve VNF'leri birleştirmenizi sağlar.

Ağ Diyagramı - Örnek karmaşık ağ ve işlem ilişkileri.

Diyagramda, iki aracı havuzu ve farklı iş yükü ağlarına bağlı tek başına Bir Nexus Sanal Makinesi ile bir Nexus Kubernetes kümesi örneği gösterilmektedir. Aracı Havuzu "AP1" ek ağ yapılandırmasına sahip olmadığından KubernetesCluster'ın ağ bilgilerini devralır. Ayrıca tüm Kubernetes Düğümlerinin ve tüm tek başına Nexus Sanal Makineler aynı Cloud Services Ağına bağlanacak şekilde yapılandırıldığını unutmayın. Son olarak, Aracı Havuzu "AP2" ve tek başına VM bir "Paylaşılan L3 Ağına" bağlanacak şekilde yapılandırılır.

The CloudServicesNetwork

Nexus Sanal Makineler ve Nexus Kubernetes Kümeleri her zaman "Cloud Services Network" (CSN) adlı bir öğeye başvurur. CSN, şirket içi iş yükleri ile bir dizi dış veya Azure tarafından barındırılan uç nokta arasındaki trafik için kullanılan özel bir ağdır.

CloudServicesNetwork üzerindeki trafik, çıkış trafiğinin izin verilenler listesi kullanımıyla denetlendiği bir ara sunucu üzerinden yönlendirilir. Kullanıcılar Ağ Bulutu API'sini kullanarak bu izin verilenler listesini ayarlayabilir.

CNI Ağı

Nexus Kubernetes Kümesi oluştururken, NetworkConfiguration.CniNetworkId alanında NetworkCloud.L3Network kaynak tanımlayıcısını belirtirsiniz.

Bazen "DefaultCNI Ağı" olarak da adlandırılan bu "CNI ağı", Nexus Kubernetes kümesindeki Kubernetes Düğümleri için IP adresleri sağlayan katman 3 ağını belirtir.

Ağ Diyagramı - Mantıksal kaynak görünümü - CNI L3 Ağı.

Diyagramda Ağ Bulutu, Yönetilen Ağ Dokusu ve Kubernetes mantıksal kaynaklarından bazıları arasındaki ilişkiler gösterilir. Diyagramda, ağ NetworkCloud.L3Network bulutu API'sindeki katman 3 ağını temsil eden mantıksal bir kaynaktır. Kaynak NetworkCloud.KubernetesCluster kaynak NetworkCloud.L3Network'ya bir referans içeren bir alan networkConfiguration.cniNetworkId içerir.

KaynakNetworkCloud.L3Network, ve ManagedNetworkFabric.InternalNetwork alanları aracılığıyla l3IsolationDomainId tek vlanId bir kaynakla ilişkilendirilir. ManagedNetworkFabric.L3IsolationDomain kaynağı, vlanId tarafından anahtarlanan bir veya birden fazla ManagedNetworkFabric.InternalNetwork kaynağı içerir. Kullanıcı kaynağı oluşturduğunda NetworkCloud.KubernetesCluster , bir veya daha fazla NetworkCloud.AgentPool kaynak oluşturulur.

Bu NetworkCloud.AgentPool kaynakların her biri bir veya daha fazla sanal makineden oluşur. Kubernetes Node kaynağı bu sanal makinelerin her birini temsil eder. Bu Kubernetes Node kaynakları bir IP adresi almalıdır ve sanal makinelerdeki Kapsayıcı Ağ Arabirimi (CNI) eklentileri ile NetworkCloud.L3Networkilişkili IP adresleri havuzundan bir IP adresi almalıdır. Kaynak, NetworkCloud.KubernetesCluster alanına başvurur NetworkCloud.L3NetworkcniNetworkId . Düğüm düzeyindeki IP adresleri için yönlendirme ve erişim kuralları ManagedNetworkFabric.L3IsolationDomain içinde bulunur. , NetworkCloud.L3Network alanı aracılığıyla öğesine ManagedNetworkFabric.L3IsolationDomain başvurur l3IsoldationDomainId .

Operatör Nexus Kubernetes ağı

Kubernetes'te üç mantıksal ağ katmanı vardır:

  • Düğüm ağ katmanı
  • Pod ağ katmanı
  • Hizmet ağ katmanı

Node ağ katmanı, Kubernetes denetim düzlemi ile kubelet çalışan düğümü aracısı arasında bağlantı sağlar.

Pod ağ katmanı, Nexus Kubernetes kümesi içinde çalışan kapsayıcılar (Podlar) arasında bağlantı ve pod ile kiracı tanımlı bir veya daha fazla ağ arasında bağlantı sağlar.

Hizmet ağ katmanı, ilgili Pod kümeleri için yük dengeleme ve giriş işlevselliği sağlar.

Düğümler arası ağ oluşturma

Operatör Nexus Kubernetes kümeleri, bir sanal makinede (VM) çalışan bir veya daha fazla kapsayıcılı ağ işlevi (CNF) barındırır. Kubernetes Düğümü tek bir VM'i temsil eder. Kubernetes Düğümleri, Denetim Düzlemi Düğümleri veya Çalışan Düğümleri olabilir. Denetim Düzlemi Düğümleri, Kubernetes Kümesi için yönetim bileşenleri içerir. Çalışan Düğümleri kiracıların iş yüklerini barındırıyor.

Kubernetes Çalışan Düğümleri gruplarına Agent Pools denir. Aracı Havuzları bir İşleç Nexus yapısıdır, değil bir Kubernetes yapısı.

Ağın Diyagramı - Düğüm ağı.

Operator Nexus örneğindeki her çıplak işlem sunucusu, çıplak sunucudaki tek bir NUMA hücresine bağlı bir switchdev'e sahiptir. Switchdev, farklı ağlar için yönlendirme tablolarını barındıracak bir dizi köprü cihazına bağlantı sağlayan bir dizi SR-IOV VF temsili bağlantı noktasını barındırıyor.

Operator Nexus, defaultcni arabirimine ek olarak, her Düğümde bir cloudservices ağ arabirimi kurar. Ağ cloudservices arabirimi, dış (müşterinin şirket içi) uç noktalarını hedefleyen trafiği yönlendirmeden sorumludur. cloudservices Ağ arabirimi, kullanıcının Nexus Kubernetes kümesi oluşturmadan önce tanımladığı API kaynağına karşılık gelirNetworkCloud.CloudServicesNetwork. Ağ arabirimine cloudservices atanan IP adresi, bağlantı yerel adresidir ve dış ağ trafiğinin her zaman bu arabirimden geçiş yapmalarını sağlar.

tr-TR: defaultcni ve cloudservices ağ arabirimlerine ek olarak, Operatör Nexus her Kubernetes Düğümünde Nexus Kubernetes kümesi veya AgentPool ile NetworkCloud.L2Network, NetworkCloud.L3Network ve NetworkCloud.TrunkedNetwork ilişkilerine karşılık gelen bir veya daha fazla ağ arabirimi oluşturur.

Yalnızca Aracı Havuzu VM'lerinde bu ek ağ arabirimleri vardır. Denetim Düzlemi VM'leri yalnızca defaultcni ve cloudservices ağ arabirimlerine sahiptir.

Düğüm IP Adresi Yönetimi (IPAM)

Ağ Diyagramı - Düğüm Ağları - IP Adresi Yönetimi.

Aracı Havuzundaki düğümler, NetworkCloud.KubernetesCluster kaynağının networkConfiguration.cniNetworkId alanında belirtilen NetworkCloud.L3Network kaynağıyla ilişkili IP adresleri havuzundan bir IP adresi alır. Bu defaultcni ağ, söz konusu Düğümde çalışan tüm Podlar için varsayılan ağ geçididir ve Nexus Kubernetes kümesi içinde doğu-batı Pod'tan Pod'a iletişim için varsayılan ağ görevi görür.

Pod ağı

Kubernetes Podları, Linux ad alanında çalışan bir veya daha fazla kapsayıcı görüntüsünden oluşan koleksiyonlardır. Bu Linux ad alanı, kapsayıcının işlemlerini ve kaynaklarını konak üzerindeki diğer kapsayıcılardan ve işlemlerden yalıtır. Nexus Kubernetes kümeleri için bu "konak", Kubernetes Çalışan Düğümü olarak temsil edilen bir VM'dir.

Operatör Nexus Kubernetes Kümesi oluşturmadan önce, kullanıcılar önce kiracı iş yüklerinin atandığı sanal ağları temsil eden bir kaynak kümesi oluşturur. Bu sanal ağlara daha sonra, İşleç Nexus Kubernetes Kümesi oluşturulurken cniNetworkId, cloudServicesNetworkId, agentPoolL2Networks, agentPoolL3Networks ve agentPoolTrunkedNetworks alanlarında başvurulur.

Podlar, Operatör Nexus örneğindeki herhangi bir raftaki herhangi bir işlem sunucusunda çalıştırılabilir. Nexus Kubernetes kümesindeki tüm Podlar varsayılan olarak pod ağı olarak bilinenler üzerinden birbirleriyle iletişim kurabilir. Pod ağını her Nexus Kubernetes Worker Node'a yüklenen çeşitli Kapsayıcı Ağ Arabirimi (CNI) eklentileri yönetir.

Ek Ağlar

Nexus Kubernetes Kümesinde pod oluştururken, bir ek açıklama belirterek k8s.v1.cni.cnf.io/networks Pod'un eklemesi gereken ek ağları bildirirsiniz. Ek açıklamanın değeri, ağ adlarının virgülle ayrılmış bir listesidir. Bu ağ adları, Nexus Kubernetes Kümesi veya Aracı Havuzu ile ilişkili tüm Trunked, L3 veya L2 Ağlarının adlarına karşılık gelir.

Operatör Nexus, tek bir ek ağ için ağ yapılandırması içeren NetworkAttachmentDefinition (NAD) dosyalarıyla Aracı Havuzu VM'sini yapılandırıyor.

Pod'un ilişkili ağlarında yer alan her Trunked Ağ için, Pod tek bir ağ arabirimi alır. İş yükü, bu arabirim üzerinden ham etiketli trafik göndermekten veya ağ arabiriminin üzerinde etiketli arabirimler oluşturmakla sorumludur.

Pod'un ilişkili ağlarında listelenen her L2 Ağı için Pod tek bir ağ arabirimi alır. İş yükü, kendi statik MAC adreslemelerini kendisi yönetmekten sorumludur.

Pod IP Adresi Yönetimi

Ağ Diyagramı - Pod Ağı - IP Adresi Yönetimi.

Nexus Kubernetes kümesi oluşturduğunuzda, alanda pod ağı podCidrs için IP adresi aralıklarını belirtirsiniz. Podlar başlatıldığında, CNI eklentisi Pod içinde bir eth0@ifXX arabirim oluşturur ve podCidrs alanındaki IP adresi aralığından bir IP adresi atar.

L3 Ağları için, ağ Nexus IPAM kullanacak şekilde yapılandırılmışsa, Pod'un L3 Ağı ile ilişkili ağ arabirimi, bu ağ için yapılandırılan IP adresi aralığından (CIDR) bir IP adresi alır. L3 Ağı Nexus IPAM kullanacak şekilde yapılandırılmamışsa, iş yükü pod'un ağ arabirimine statik olarak bir IP adresi atamakla sorumludur.

Yönlendirme

Her bir Pod'un içinde, arabirimin eth0 trafiği, defaultcni, cloudservices ve diğer Düğüm düzeyindeki arabirimleri barındıran ana makine (VM) üzerindeki bir switchdev'e bağlanan bir sanal ethernet cihazı (veth) üzerinden geçer.

Pod içindeki eth0 arabirim, aşağıdaki trafiklerden herhangi biri için etkin bir şekilde çalışan düğüm VM'sinin yol tablosunu kullanan basit bir yol tablosuna sahiptir.

Ağ Diyagramı - Pod Yönlendirme.

  • Pod-pod trafiği: podCidrs adres aralıklarındaki bir IP'ye yönelik trafik, konak VM'deki switchdev'e ve burada uygun şekilde hedef aracı havuzu VM'sinin IP adresine yönlendirildiği düğüm düzeyinde defaultcni arabirimine doğru yönlendirilir.
  • L3 OSDevice ağ trafiği: İlişkili bir L3 Ağındaki bir IP'ye yönelen trafik, OSDevice eklenti türü ile host VM içindeki switchdev'e ve bu L3 Ağı ile ilişkilendirilmiş Düğüm düzeyi arabirimine doğru akar.
  • Pod'daki varsayılan ağ geçidine geçen diğer tüm trafik, Düğüm düzeyindeki cloudservices arabirimine yönlendirilir. Nexus Kubernetes kümesiyle ilişkili CloudServicesNetwork'te yapılandırılan çıkış kuralları, trafiğin nasıl yönlendirilmesi gerektiğini belirler.

Diyagram - Ağ oluşturma - Pod yönlendirme - ek arabirimler.

Pod içindeki fazladan ağ arabirimleri, SRIOV ve DPDK eklenti türlerini kullanan ek L3 Ağlarına trafiği yönlendirmek için Pod'un kendi yönlendirme tablosunu kullanacaktır.

CNI BFD ve BGP yapılandırması

Varsayılan BFD Yapılandırması

Her BGP eşlemesi için çift yönlü İletme Algılama (BFD) parametreleri yapılandırılabilir. BFD zamanlayıcıları, Operatör Nexus Kubernetes kümeleri ile eş yönlendirici arasında anlaşmaya varılır. İki yönlendirici arasındaki daha yüksek zamanlayıcı değeri seçilir ve bu da standart BFD davranışıdır. Nexus Kubernetes kümeleri aşağıdaki değerleri kullanır

  • Aralık: 300ms
  • Çarpan: 3
    BFD eş yönlendiricide etkinleştirilmemişse bir oturum oluşturulmaz.

Varsayılan BGP Yapılandırmaları

Sınır Ağ Geçidi Protokolü (BGP) zamanlayıcıları, Operatör Nexus Kubernetes kümeleri ile eş yönlendirici arasında anlaşmaya varılır. standart BGP davranışı olan iki yönlendirici arasındaki en düşük bekleme süreölçeri değeri seçilir. Nexus Kubernetes kümeleri aşağıdaki değerleri kullanır

  • bekleme süresi: 240 saniye bekleme süresi
  • etkin tutma aralığı: 1/3 bekleme süresi (80s) BFD oturumu da varsa BGP, başarısız eşleri algılamak için BFD'yi kullanır.