Azure Kubernetes Service (AKS) kümeniz için yönetilen veya kullanıcı tarafından atanan nat ağ geçidi oluşturma
Çıkış trafiğini bir Azure Load Balancer aracılığıyla yönlendirebilirsiniz ancak trafiğin giden akış sayısıyla ilgili sınırlamalar vardır. Azure NAT Gateway, IP adresi başına en fazla 16 IP adresi ile en fazla 64.512 giden UDP ve TCP trafik akışına izin verir.
Bu makalede, çıkış trafiği için yönetilen NAT ağ geçidi ve kullanıcı tarafından atanan NAT ağ geçidi ile Azure Kubernetes Service (AKS) kümesi oluşturma adımları gösterilmektedir. Ayrıca Windows'ta OutboundNAT'yi nasıl devre dışı bırakabileceğiniz de gösterilir.
Başlamadan önce
- Azure CLI'nın en son sürümünü kullandığınızdan emin olun.
- Kubernetes sürüm 1.20.x veya üzerini kullandığınızdan emin olun.
- Yönetilen NAT ağ geçidi özel sanal ağlarla uyumsuz.
Önemli
Özel olmayan kümelerde API sunucusu küme trafiği, giden küme türü üzerinden yönlendirilir ve işlenir. API sunucusu trafiğinin genel trafik olarak işlenmesini önlemek için özel bir küme kullanmayı göz önünde bulundurun veya API Server Sanal Ağ Tümleştirmesi özelliğini gözden geçirin.
Yönetilen NAT ağ geçidi ile AKS kümesi oluşturma
,
--nat-gateway-managed-outbound-ip-count
ve--nat-gateway-idle-timeout
parametreleriyle komutunu kullanarakaz aks create
yeni yönetilen NAT ağ geçidine sahip--outbound-type managedNATGateway
bir AKS kümesi oluşturun. NAT ağ geçidinin belirli bir kullanılabilirlik alanında çalıştırılmasını istiyorsanız, kullanarak--zones
bölgeyi belirtin.Yönetilen NAT ağ geçidi oluşturulurken bölge belirtilmezse, NAT ağ geçidi varsayılan olarak "bölge yok" olarak dağıtılır. NAT ağ geçidi hiçbir bölgeye yerleştirilince Azure kaynağı sizin için bir bölgeye yerleştirir. Bölgesel olmayan dağıtım modeli hakkında daha fazla bilgi için bkz . Bölgesel olmayan NAT ağ geçidi.
Yönetilen NAT ağ geçidi kaynağı birden çok kullanılabilirlik alanında kullanılamaz.
az aks create \ --resource-group myResourceGroup \ --name myNatCluster \ --node-count 3 \ --outbound-type managedNATGateway \ --nat-gateway-managed-outbound-ip-count 2 \ --nat-gateway-idle-timeout 4 \ --generate-ssh-keys
veya
--nat-gateway-idle-timeout
parametresiyle komutunu kullanarak giden IP adresini veya boşta kalma zaman aşımınıaz aks update
güncelleştirin--nat-gateway-managed-outbound-ip-count
.az aks update \ --resource-group myResourceGroup \ --name myNatCluster\ --nat-gateway-managed-outbound-ip-count 5
Kullanıcı tarafından atanan NAT ağ geçidiyle AKS kümesi oluşturma
Bu yapılandırma için kendi ağını getir (Kubenet veya Azure CNI aracılığıyla) gerekir ve NAT ağ geçidinin alt ağda önceden yapılandırılmış olması gerekir. Aşağıdaki komutlar bu senaryo için gerekli kaynakları oluşturur.
komutunu kullanarak
az group create
bir kaynak grubu oluşturun.az group create --name myResourceGroup \ --location southcentralus
Ağ izinleri için yönetilen bir kimlik oluşturun ve kimliği
$IDENTITY_ID
daha sonra kullanmak üzere olarak depolayın.IDENTITY_ID=$(az identity create \ --resource-group myResourceGroup \ --name myNatClusterId \ --location southcentralus \ --query id \ --output tsv)
komutunu kullanarak
az network public-ip create
NAT ağ geçidi için bir genel IP oluşturun.az network public-ip create \ --resource-group myResourceGroup \ --name myNatGatewayPip \ --location southcentralus \ --sku standard
komutunu kullanarak NAT ağ geçidini
az network nat gateway create
oluşturun.az network nat gateway create \ --resource-group myResourceGroup \ --name myNatGateway \ --location southcentralus \ --public-ip-addresses myNatGatewayPip
Önemli
Tek bir NAT ağ geçidi kaynağı birden çok kullanılabilirlik alanında kullanılamaz. Bölge dayanıklılığını sağlamak için her kullanılabilirlik alanına bir NAT ağ geçidi kaynağı dağıtmanız ve her bölgedeki AKS kümelerini içeren alt ağlara atamanız önerilir. Bu dağıtım modeli hakkında daha fazla bilgi için bkz . Her bölge için NAT ağ geçidi. NAT ağ geçidi için hiçbir bölge yapılandırılmamışsa varsayılan bölge yerleşimi", Azure'ın NAT ağ geçidini sizin için bir bölgeye yerleştirdiği "bölge yok" olur.
komutunu kullanarak
az network vnet create
bir sanal ağ oluşturun.az network vnet create \ --resource-group myResourceGroup \ --name myVnet \ --location southcentralus \ --address-prefixes 172.16.0.0/20
NAT ağ geçidini kullanarak sanal ağda bir alt ağ oluşturun ve kimliğini daha sonra kullanmak üzere
$SUBNET_ID
olarak depolayın.SUBNET_ID=$(az network vnet subnet create \ --resource-group myResourceGroup \ --vnet-name myVnet \ --name myNatCluster \ --address-prefixes 172.16.0.0/22 \ --nat-gateway myNatGateway \ --query id \ --output tsv)
KOMUTUNU kullanarak NAT ağ geçidi ve yönetilen kimlik ile alt ağı kullanarak
az aks create
bir AKS kümesi oluşturun.az aks create \ --resource-group myResourceGroup \ --name myNatCluster \ --location southcentralus \ --network-plugin azure \ --vnet-subnet-id $SUBNET_ID \ --outbound-type userAssignedNATGateway \ --assign-identity $IDENTITY_ID \ --generate-ssh-keys
Windows için OutboundNAT'yi devre dışı bırakma
Windows OutboundNAT, AKS podlarınızla ilgili belirli bağlantı ve iletişim sorunlarına neden olabilir. Düğüm bağlantı noktasının yeniden kullanılması örnek bir sorundur. Bu örnekte, Windows OutboundNAT pod IP'nizi Windows düğümü ana bilgisayar IP'nize çevirmek için bağlantı noktalarını kullanır ve bu da bağlantı noktası tükenmesi sorunu nedeniyle dış hizmete kararsız bir bağlantıya neden olabilir.
Windows varsayılan olarak OutboundNAT'ı etkinleştirir. Artık yeni Windows aracı havuzları oluştururken OutboundNAT'yi el ile devre dışı bırakabilirsiniz.
Önkoşullar
- v1.26 veya üzeri yüklü mevcut AKS kümesi. Kubernetes sürüm 1.25 veya üzerini kullanıyorsanız dağıtım yapılandırmanızı güncelleştirmeniz gerekir.
Sınırlamalar
- Küme giden türünü LoadBalancer olarak ayarlayamazsınız. Bunu Nat Gateway veya UDR olarak ayarlayabilirsiniz:
- NAT Ağ Geçidi: NAT Ağ Geçidi, NAT bağlantısını otomatik olarak işleyebilir ve Standart Load Balancer daha güçlüdür. Bu seçenekle ek ücret ödemeniz gerekebilir.
- UDR (UserDefinedRouting): Yönlendirme kurallarını yapılandırırken bağlantı noktası sınırlamalarını göz önünde bulundurmanız gerekir.
- Yük dengeleyiciden NAT Ağ Geçidi'ne geçmeniz gerekiyorsa, sanal ağa bir NAT ağ geçidi ekleyebilir veya giden türü güncelleştirmek için komutunu çalıştırabilirsiniz
az aks upgrade
.
Not
UserDefinedRouting aşağıdaki sınırlamalara sahiptir:
- Load Balancer tarafından kullanılan SNAT (varsayılan OutboundNAT kullanmalıdır) "Konak IP'sinde 64 bağlantı noktası" vardır.
- Azure Güvenlik Duvarı tarafından SNAT (OutboundNAT'yi devre dışı bırakma) genel IP başına 2496 bağlantı noktası vardır.
- NAT Gateway tarafından SNAT (OutboundNAT'yi devre dışı bırakma) genel IP başına 64512 bağlantı noktası vardır.
- Azure Güvenlik Duvarı bağlantı noktası aralığı uygulamanız için yeterli değilse NAT Ağ Geçidi'ni kullanmanız gerekir.
- Azure Güvenlik Duvarı, hedef IP adresi bir özel IP adresi aralığında olduğunda Ağ kurallarıyla SNAT yapmazIANA RFC 1918 veya IANA RFC 6598 başına paylaşılan adres alanı.
Windows için OutboundNAT'yi el ile devre dışı bırakma
bayrağıyla komutunu kullanarak yeni Windows aracı havuzları oluştururken Windows için OutboundNAT'ı
az aks nodepool add
--disable-windows-outbound-nat
el ile devre dışı bırakın.Not
Mevcut bir AKS kümesini kullanabilirsiniz, ancak etkinleştirmek
--disable-windows-outbound-nat
için giden türünü güncelleştirmeniz ve bir düğüm havuzu eklemeniz gerekebilir.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myNatCluster \ --name mynp \ --node-count 3 \ --os-type Windows \ --disable-windows-outbound-nat
Sonraki adımlar
Azure NAT Gateway hakkında daha fazla bilgi için bkz . Azure NAT Gateway.
Azure Kubernetes Service