Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
AKS düğümleri, iletişim için kendi genel IP adreslerini gerektirmez. Ancak senaryolar, bir düğüm havuzundaki düğümlerin kendi ayrılmış genel IP adreslerini almasını gerektirebilir. Yaygın bir senaryo, konsolun atlamaları en aza indirmek için bulut sanal makinesine doğrudan bağlantı sağlaması gereken oyun iş yüklerine yöneliktir. Bu senaryo, Düğüm Genel IP'si kullanılarak AKS'de elde edilebilir.
İlk olarak yeni bir kaynak grubu oluşturun.
az group create --name <resourceGroup> --location <region>
Yeni bir AKS kümesi oluşturun ve düğümleriniz için bir genel IP ekleyin. Düğüm havuzundaki düğümlerin her biri benzersiz bir genel IP alır. Sanal Makine Ölçek Kümesi örneklerine bakarak bunu doğrulayabilirsiniz.
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--location <region> \
--enable-node-public-ip \
--generate-ssh-keys
Mevcut AKS kümeleri için yeni bir düğüm havuzu ekleyebilir ve düğümleriniz için genel IP ekleyebilirsiniz.
az aks nodepool add --resource-group <resourceGroup> --cluster-name <aksClusterName> --name <newNodePool> --enable-node-public-ip
Genel IP ön eki kullanma
Genel IP ön eki kullanmanın çeşitli avantajları vardır. AKS, yeni bir küme oluştururken veya düğüm havuzu eklerken --node-public-ip-prefix-id bayrağı ile kaynak kimliğini geçirerek düğümleriniz için mevcut bir genel IP ön eki adreslerini kullanmayı destekler.
İlk olarak az network public-ip prefix create komutunu kullanarak bir genel IP ön eki oluşturun:
az network public-ip prefix create --length 28 --location <region> --name <publicIPPrefixName> --resource-group <resourceGroup>
Çıktıyı görüntüleyin ve ön ek için id öğesini not alın.
{
...
"id": "/subscriptions/<subscription-id>/resourceGroups/<resourceGroup>/providers/Microsoft.Network/publicIPPrefixes/<publicIPPrefixName>",
...
}
Son olarak, yeni küme oluştururken veya yeni düğüm havuzu eklerken bayrağı --node-public-ip-prefix-id kullanın ve ön ekin kaynak kimliğini parametre olarak geçirin.
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--location <region> \
--enable-node-public-ip \
--node-public-ip-prefix-id /subscriptions/<subscription-id>/resourceGroups/<resourceGroup>/providers/Microsoft.Network/publicIPPrefixes/<publicIPPrefixName> \
--generate-ssh-keys
Çift yığınlı genel IP ön eki kullanımı (önizleme)
Çift yığınlı genel IP ön eki kullanarak bir düğüm havuzundaki her düğüme hem IPv4 hem de IPv6 genel IP adresleri atayabilirsiniz. Bu yaklaşım kendi genel IP ön eklerinizi getirmenize ve her düğümün bir IPv4 adresi ve bir IPv6 adresi aldığından emin olmanıza olanak tanır.
Bu özellik, hem IPv4 hem de IPv6 üzerinden doğrudan gelen veya giden bağlantı gerektiren iş yükleri veya IPv6 uyumluluğu gerektiren ortamlarda çalışan uygulamalar için kullanışlıdır.
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "mevcut olduğu şekilde" sağlanmakta olup, hizmet seviyesi anlaşmalarına ve sınırlı garantilere dahil edilmemektedir. AKS önizlemeleri, müşteri desteği ekibi tarafından maksimum çaba gösterilerek kısmen ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
Gereksinimler
Çift yığınlı genel IP ön eklerini düğüm genel IP'leriyle kullanmak için aşağıdaki önkoşulların karşılandığından emin olun:
- Kümeniz hem IPv4 hem de IPv6 IP ailelerine sahip bir çift yığınlı küme olarak yapılandırılır.
- Kümeniz, örtüşen ağ ile Azure CNI kullanır.
- AKS kümenizle aynı bölgede oluşturulmuş bir IPv4 genel IP ön ekiniz ve bir IPv6 genel IP ön ekiniz var.
- Her iki genel IP ön eki de Standart SKU'yu kullanır.
- AKS kümesi kimliğinin genel IP ön eklerini yönetme izni vardır. Ön ekler farklı bir kaynak grubundaysa, bu kaynak grubundaki Ağ Katkıda Bulunanı rolünü küme kimliğine atayın.
Önizleme özelliklerini kaydetme
Düğümlere ait genel IP adresleri için çift yığınlı (IPv4 ve IPv6) genel IP ön eki desteği şu anda önizleme olarak sunulmaktadır. Bu özelliği kullanabilmeniz için önce Azure CLI uzantısını yüklemeniz veya güncelleştirmeniz ve özellik bayraklarını aboneliğinize kaydetmeniz NodePublicIPv6PrefixPreview gerekir.
aks-preview uzantısını yükleyin veya güncelleştirin:
az extension add --name aks-preview --upgrade
Gerekli önizleme özelliklerini kaydedin:
az feature register --namespace Microsoft.ContainerService --name NodePublicIPv6PrefixPreview
Özellik kayıtlarının tamamlanması birkaç dakika sürebilir. Kayıt durumunu denetlemek için şunu çalıştırın:
az feature show --namespace Microsoft.ContainerService --name NodePublicIPv6PrefixPreview --query "properties.state"
Devam etmeden önce her iki özellik de Kayıtlı durumunu bildirene kadar bekleyin.
Özellik bayrakları kaydedildikten sonra, değişikliklerin uygulandığından emin olmak için kaynak sağlayıcısını yenileyin:
az provider register --namespace Microsoft.ContainerService
Kayıt tamamlandıktan sonra, düğüm genel IP'leri için çift yığınlı genel IP ön eklerini kullanmak üzere bir küme oluşturabilir veya güncelleştirebilirsiniz.
Genel IP ön ekleri oluşturma
Azure CLI kullanarak IPv4 ve IPv6 için bir genel IP ön eki oluşturun.
IPv4 için:
az network public-ip prefix create \
--resource-group <resourceGroup> \
--name <ipv4PrefixName> \
--location <region> \
--length 28 \
--sku Standard \
--version IPv4
IPv6 için:
az network public-ip prefix create \
--resource-group <resourceGroup> \
--name <ipv6PrefixName> \
--location <region> \
--length 124 \
--sku Standard \
--version IPv6
Ön ekleri oluşturduktan sonra her iki ön ekin kaynak kimliklerini not edin.
Çift yığınlı düğüm genel IP ön ekleriyle yeni bir küme oluşturma
Yeni bir AKS kümesi oluştururken, hem IPv4 hem de IPv6 genel IP ön eklerini belirtmek için parametresini kullanın --node-public-ip-prefix-ids .
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--location <region> \
--enable-node-public-ip \
--ip-families IPv4,IPv6 \
--network-plugin azure \
--network-plugin-mode overlay \
--node-public-ip-prefix-ids "<ipv4PrefixResourceId>,<ipv6PrefixResourceId>" \
--generate-ssh-keys
parametresi, --node-public-ip-prefix-ids genel IP ön eki kaynak kimliklerinin virgülle ayrılmış bir listesini kabul eder. Listede bir IPv4 öneki ve bir IPv6 öneki bulunmalıdır.
Çift yığınlı düğüm genel IP ön ekleriyle düğüm havuzu ekleme
Mevcut bir çift yığınlı kümeye, çift yığınlı düğüm genel IP ön eklerine sahip bir düğüm havuzu da ekleyebilirsiniz.
az aks nodepool add \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--enable-node-public-ip \
--node-public-ip-prefix-ids "<ipv4PrefixResourceId>,<ipv6PrefixResourceId>"
Limitations
Çift yığınlı genel IP ön eki için aşağıdaki sınırlamalar geçerlidir:
- Hem IPv4 hem de IPv6 ön eki sağlamanız gerekir. Yalnızca IPv6 yapılandırmaları desteklenmez.
- Düğümün genel IP adresi yapılandırması değiştirilemez. Genel IP ön eklerini değiştirmek için yeni bir düğüm havuzu oluşturmanız ve iş yüklerini geçirmeniz gerekir.
- Her düğüme tek bir IPv6 genel IP adresi atanır.
- Bu özellik AKS Otomatik veya düğüm otomatik sağlama ile desteklenmez.
- Çok NIC düğümlü havuzlar desteklenmez.
- Küme Otomatik Ölçeklendiricisi desteklenir, ancak her düğüm ön ekten bir IP gerektirdiğinden, yapılandırılan en fazla düğüm sayısının genel IP ön ekindeki kullanılabilir IP adresi sayısını aşmadığından emin olun.
Düğümler için genel IP'leri bul
Düğümleriniz için genel IP'leri çeşitli yollarla bulabilirsiniz:
- Azure CLI komutunu
az vmss list-instance-public-ipskullanın. - PowerShell veya Bash komutlarını kullanın.
- Sanal Makine Ölçek Kümesi'ndeki örnekleri görüntüleyerek Azure portalında genel IP'leri de görüntüleyebilirsiniz.
Önemli
Düğüm kaynak grubu düğümleri ve bunların genel IP'lerini içerir. Düğümlerinizin genel IP'lerini bulmak için komutları yürütürken düğüm kaynak grubunu kullanın.
az vmss list-instance-public-ips --resource-group <MC_region_aksClusterName_region> --name <virtualMachineScaleSetName>
Düğüm genel IP'lerinde genel IP etiketlerini kullanma
Genel IP etiketleri, belirtilen bölgelerde kullanılabilen Azure Yönlendirme Tercihi özelliğini kullanmak için düğüm genel IP'lerinde kullanılabilir.
Gereksinimler
- AKS sürüm 1.29 veya üzeri gereklidir.
Yönlendirme tercihi interneti kullanarak yeni küme oluşturma
az aks create \
--name <aksClusterName> \
--location <region> \
--resource-group <resourceGroup> \
--enable-node-public-ip \
--node-public-ip-tags RoutingPreference=Internet \
--generate-ssh-keys
Yönlendirme tercihi internet olan bir düğüm havuzu ekleyin.
az aks nodepool add --cluster-name <aksClusterName> \
--name <nodePoolName> \
--location <region> \
--resource-group <resourceGroup> \
--enable-node-public-ip \
--node-public-ip-tags RoutingPreference=Internet
Ana bilgisayar bağlantı noktası bağlantılarına izin ver ve uygulama güvenlik gruplarına düğüm havuzları ekle
Kendi konak adreslerinde hizmet barındıran ve düğüm genel IP'lerini kullanan AKS düğümleri için, trafiğe izin vermek amacıyla bir NSG kuralı eklenmesi gerekir. Düğüm havuzu yapılandırmasına istenen bağlantı noktalarının eklenmesi, küme ağ güvenlik grubunda uygun izin verme kurallarını oluşturur.
Alt ağda kendi sanal ağınızı getirin kullanan bir küme ile bir ağ güvenlik grubu varsa, bu ağ güvenlik grubuna bir izin kuralı eklenmelidir. Bu, düğüm havuzunu bir uygulama güvenlik grubuna (ASG) ekleyerek belirli bir düğüm havuzundaki düğümler ile sınırlandırılabilir. Yönetilen kaynak grubunda, izin verilen konak bağlantı noktaları belirtilirse, varsayılan olarak yönetilen bir ASG oluşturulacaktır. Düğümler, düğüm havuzu parametrelerinde NSG'lerin kaynak kimliği belirtilerek bir veya daha fazla özel ASG'ye de eklenebilir.
Host bağlantı noktası belirtim biçimi
İzin verilen bağlantı noktalarının listesini belirtirken, port/protocol veya startPort-endPort/protocol biçiminde girdiler içeren virgülle ayrılmış bir liste kullanın.
Examples:
- 80/tcp
- 80/tcp,443/tcp
- 53/udp,80/tcp
- 50000-60000/tcp
Gereksinimler
- AKS sürüm 1.29 veya üzeri gereklidir.
İzin verilen bağlantı noktaları ve uygulama güvenlik gruplarıyla yeni bir küme oluşturma
az aks create \
--resource-group <resourceGroup> \
--name <aksClusterName> \
--nodepool-name <nodePoolName> \
--nodepool-allowed-host-ports 80/tcp,443/tcp,53/udp,40000-60000/tcp,40000-50000/udp\
--nodepool-asg-ids "<asgId>,<asgId>" \
--generate-ssh-keys
İzin verilen bağlantı noktaları ve uygulama güvenlik gruplarıyla yeni bir düğüm havuzu ekleme
az aks nodepool add \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--allowed-host-ports 80/tcp,443/tcp,53/udp,40000-60000/tcp,40000-50000/udp \
--asg-ids "<asgId>,<asgId>"
Düğüm havuzu için izin verilen bağlantı noktalarını ve uygulama güvenlik gruplarını güncelleştirme
az aks nodepool update \
--resource-group <resourceGroup> \
--cluster-name <aksClusterName> \
--name <nodePoolName> \
--allowed-host-ports 80/tcp,443/tcp,53/udp,40000-60000/tcp,40000-50000/udp \
--asg-ids "<asgId>,<asgId>"
Pod iş yükleri için konak bağlantı noktalarını otomatik olarak atama (ÖNİzLEME)
Düğümlerde genel IP'ler yapılandırıldığında, podların yük dengeleyici hizmeti yapılandırmak zorunda kalmadan trafiği doğrudan almasına izin vermek için host portlar kullanılabilir. Bu, özellikle düğüm IP'si ve bağlantı noktasının geçici doğasının sorun olmadığı oyun gibi senaryolarda kullanışlıdır; çünkü bilinen bir ana bilgisayar adındaki bir eşleştirme hizmeti, bağlantı anında kullanılacak doğru ana bilgisayar ve bağlantı noktasını sağlayabilir. Ancak, bir konak üzerindeki yalnızca bir işlem aynı bağlantı noktasında dinleyebildiğinden, konak bağlantı noktalarıyla uygulamaları kullanmak zamanlamayla ilgili sorunlara yol açabilir. Aks, bu sorunu önlemek için sistemin zamanlama zamanında dinamik olarak kullanılabilir bir bağlantı noktası atamasını sağlayarak çakışmaları önler.
Uyarı
Pod konak bağlantı noktası trafiği, kümedeki varsayılan NSG kuralları tarafından engellenir. Bu özellik, trafiğin akışına izin vermek için düğüm havuzundaki ana makine bağlantı noktalarıyla birleştirilerek kullanılmalıdır.
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "mevcut olduğu şekilde" sağlanmakta olup, hizmet seviyesi anlaşmalarına ve sınırlı garantilere dahil edilmemektedir. AKS önizlemeleri, müşteri desteği ekibi tarafından maksimum çaba gösterilerek kısmen ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
Gereksinimler
- AKS sürüm 1.29 veya üzeri gereklidir.
'PodHostPortAutoAssignPreview' özellik bayrağını kaydetme
Aşağıdaki örnekte gösterildiği gibi PodHostPortAutoAssignPreview komutunu kullanarak özellik bayrağını kaydedin.
az feature register --namespace "Microsoft.ContainerService" --name "PodHostPortAutoAssignPreview"
Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer. az feature show komutunu kullanarak kayıt durumunu doğrulayın:
az feature show --namespace "Microsoft.ContainerService" --name "PodHostPortAutoAssignPreview"
Durum Kayıtlı olarak gösterildiğinde, az provider register komutunu kullanarak Microsoft.ContainerService kaynak sağlayıcısının kaydını yenileyin.
az provider register --namespace Microsoft.ContainerService
Pod'a otomatik konak portu atama
Konak bağlantı noktası otomatik atamasının tetiklenmesi, iş yükünün herhangi bir konak bağlantı noktası olmadan dağıtılması ve ana bilgisayar bağlantı noktası ataması gerektiren bağlantı noktalarının listesiyle belirtilmiş olan kubernetes.azure.com/assign-hostports-for-containerports açıklamasının uygulanmasıyla gerçekleştirilir. Ek açıklamanın değeri, port/protocol gibi girdilerin virgülle ayrılmış bir listesi olarak belirtilmelidir; burada bağlantı noktası, Pod belirtiminde tanımlanan tek bir bağlantı noktası numarasıdır ve protokol tcp veya udp şeklindedir.
Bağlantı noktaları aralıktan 40000-59999 atanır ve küme genelinde benzersiz olur. Atanan bağlantı noktaları, uygulamanın hangi bağlantı noktalarının atandığını belirleyebilmesi için pod içindeki ortam değişkenlerine de eklenir. Ortam değişkeni adı şu biçimde olacaktır (aşağıdaki örnek): <deployment name>_PORT_<port number>_<protocol>_HOSTPORTbu nedenle bir örnek olacaktır mydeployment_PORT_8080_TCP_HOSTPORT: 41932.
8080 ve 8443 bağlantı noktaları için konak bağlantı noktalarının eşlemesini gösteren örnek echoserver bir dağıtım aşağıda verilmiştir:
apiVersion: apps/v1
kind: Deployment
metadata:
name: echoserver-hostport
labels:
app: echoserver-hostport
spec:
replicas: 3
selector:
matchLabels:
app: echoserver-hostport
template:
metadata:
annotations:
kubernetes.azure.com/assign-hostports-for-containerports: 8080/tcp,8443/tcp
labels:
app: echoserver-hostport
spec:
nodeSelector:
kubernetes.io/os: linux
containers:
- name: echoserver-hostport
image: k8s.gcr.io/echoserver:1.10
ports:
- name: http
containerPort: 8080
protocol: TCP
- name: https
containerPort: 8443
protocol: TCP
Dağıtım uygulandığında, hostPort girişleri tek tek podların YAML'inde olacak.
$ kubectl describe pod echoserver-hostport-75dc8d8855-4gjfc
<cut for brevity>
Containers:
echoserver-hostport:
Container ID: containerd://d0b75198afe0612091f412ee7cf7473f26c80660143a96b459b3e699ebaee54c
Image: k8s.gcr.io/echoserver:1.10
Image ID: k8s.gcr.io/echoserver@sha256:cb5c1bddd1b5665e1867a7fa1b5fa843a47ee433bbb75d4293888b71def53229 Ports: 8080/TCP, 8443/TCP
Host Ports: 46645/TCP, 49482/TCP
State: Running
Started: Thu, 12 Jan 2023 18:02:50 +0000
Ready: True
Restart Count: 0
Environment:
echoserver-hostport_PORT_8443_TCP_HOSTPORT: 49482
echoserver-hostport_PORT_8080_TCP_HOSTPORT: 46645
Sonraki Adımlar
AKS'de birden çok düğüm havuzu kullanma hakkında bilgi edinin.
AKS'de standart yük dengeleyicileri kullanma hakkında bilgi edinin