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.
ALB Denetleyicisi, Kubernetes içindeki Ağ Geçidi API'sini ve Giriş API'sini yapılandırmayı Kapsayıcılar için Application Gateway'de yük dengeleme kurallarına çevirmekle sorumludur. Aşağıdaki kılavuzda hem AKS tarafından yönetilen Ağ Geçidi API'sini hem de Kapsayıcılar için Application Gateway ALB Denetleyicisi eklentilerini yeni veya mevcut bir Azure Kubernetes Service (AKS) kümesinde etkinleştirmek için gereken adımlar gösterilmektedir.
Önkoşullar
Kümenizde ALB Denetleyicisi eklentisini etkinleştirmeden önce aşağıdaki görevleri tamamlamanız gerekir:
Azure aboneliğinizi ve istemcinizi
az-clihazırlayın.# Sign in to your Azure subscription. SUBSCRIPTION_ID='<your subscription id>' az login az account set --subscription $SUBSCRIPTION_ID # Register required resource providers on Azure. az provider register --namespace Microsoft.ContainerService az provider register --namespace Microsoft.Network az provider register --namespace Microsoft.NetworkFunction az provider register --namespace Microsoft.ServiceNetworking # Install Azure CLI extensions. az extension add --name alb az extension add --name aks-previewEklenti özelliğini kaydetme
# Register required preview features az feature register --namespace "Microsoft.ContainerService" --name "ManagedGatewayAPIPreview" az feature register --namespace "Microsoft.ContainerService" --name "ApplicationLoadBalancerPreview"
AKS eklentisiyle AKS kümesi ayarlama
AKS eklentisi yeni veya mevcut kümelerde etkinleştirilebilir.
Eklentinin başarıyla sağlanması için aşağıdaki AKS kümesi gereksinimleri gereklidir:
- Kapsayıcılar için Application Gateway'in kullanılabildiği bir bölgede olmalıdır.
- Azure CNI veya Azure CNI Katman ağını kullanmalıdır.
- İş yükü kimliği özelliğinin etkinleştirilmiş olması gerekir. Mevcut bir AKS kümesinde iş yükü kimliğini etkinleştirmeyi öğrenin.
- Desteklenen bir AKS Kubernetes sürümü kullanıyor olmalıdır.
Uyarı
Eklentinin etkinleştirilmesi ALB denetleyicisini tüm bölgelere kaydeder ve dağıtırken, Kapsayıcılar için Application Gateway kaynaklarının sağlanması, Kapsayıcılar için Application Gateway'in kullanılabilir olduğu bir bölgede dağıtılmaması durumunda başarısız olur.
Yeni Küme
Azure CNI, iş yükü kimliği etkinleştirilmiş, ağ geçidi API'si eklentisi ve Kapsayıcılar için Application Gateway eklentisi etkinleştirilmiş yeni bir AKS kümesi oluşturmak için aşağıdaki komutları kullanın.
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
LOCATION='northeurope'
VM_SIZE='<the size of the vm in AKS>' # The size needs to be available in your location
az group create --name $RESOURCE_GROUP --location $LOCATION
az aks create \
--resource-group $RESOURCE_GROUP \
--name $AKS_NAME \
--location $LOCATION \
--node-vm-size $VM_SIZE \
--network-plugin azure \
--enable-oidc-issuer \
--enable-workload-identity \
--enable-gateway-api \
--enable-application-load-balancer \
--generate-ssh-key
Uyarı
Ağ Geçidi API'sini kullanan diğer hizmetlerle çakışmayı önlemek için Kapsayıcılar için Application Gateawy eklentisi AKS Gateway API eklentisinin kullanılmasını gerektirir.
Mevcut Küme
Var olan bir kümeye önkoşul ekleme
Mevcut bir küme kullanıyorsanız AKS kümenizde İş Yükü Kimliği desteğini etkinleştirdiğinizden emin olun. İş yükü kimlikleri aşağıdaki komutlar aracılığıyla etkinleştirilebilir:
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
az aks update -g $RESOURCE_GROUP -n $AKS_NAME --enable-oidc-issuer --enable-workload-identity --no-wait
ALB Denetleyicisi eklentisini yükleme
Mevcut bir kümeyle, Aşağıdaki komutlarla Kapsayıcılar için Ağ Geçidi API'sini ve Application Gateway eklentilerini etkinleştirebilirsiniz:
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
# Update the AKS cluster
az aks update --name ${AKS_NAME} --resource-group ${RESOURCE_GROUP} --enable-gateway-api --enable-application-load-balancer
ALB Denetleyicisi kurulumunu doğrula
ALB Denetleyicisi Podlarını Doğrulayın
ALB Controller pod'larının kube-system namespace'inde çalıştığını doğrulayın.
kubectl get pods -n kube-system | grep alb-controller
İki alb-controller podun Running durumunda olduğunu görmelisiniz.
| İSİM | HAZIR | STATUS | YENİDEN BAŞLATMALAR | AGE (YAŞ) |
|---|---|---|---|---|
| alb-controller-6648c5d5c-sdd9t | 1/1 | Koşmak | 0 | 4 gün 6 saat |
| alb-controller-6648c5d5c-au234 | 1/1 | Koşmak | 0 | 4 gün 6 saat |
GatewayClass Doğrulaması
GatewayClass'ın azure-alb-external kümenizde yüklü olduğunu doğrulayın:
kubectl get gatewayclass azure-alb-external -o yaml
GatewayClass'ın Valid GatewayClass değerini okuyan bir koşula sahip olduğunu görmeniz gerekir. Bu koşul, varsayılan bir GatewayClass'ın ayarlandığını ve bu GatewayClass'a başvuran tüm ağ geçidi kaynaklarının ALB Denetleyicisi tarafından yönetildiğini gösterir.
apiVersion: gateway.networking.k8s.io/v1beta1
kind: GatewayClass
metadata:
creationTimestamp: "2023-07-31T13:07:00Z"
generation: 1
name: azure-alb-external
resourceVersion: "64270"
uid: 6c1443af-63e6-4b79-952f-6c3af1f1c41e
spec:
controllerName: alb.networking.azure.io/alb-controller
status:
conditions:
- lastTransitionTime: "2023-07-31T13:07:23Z"
message: Valid GatewayClass
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
Azure portalında Eklenti Kaynaklarını Doğrulama
MC_ AKS kümenizin (düğüm) kaynak grubuna gidin. Eklenti tarafından oluşturulan aşağıdaki kaynakları görmeniz gerekir:
Yönetimli Kimlik
adlı applicationloadbalancer-<cluster-name> bir kimlik aşağıdaki rol atamalarıyla oluşturulur:
| Rol | Scope |
|---|---|
| Ağ Katılımcısı | MC kaynak grubu |
| Kapsayıcılar için AppGw Yapılandırma Yöneticisi | MC kaynak grubu |
| Okuyucu | MC kaynak grubu |
applicationloadbalancer-<cluster-name> kimliği, aşağıdaki özelliklerle yapılandırılmış federasyon kimliği kimlik bilgisine sahiptir:
- Ad: aksfic
- Ad alanı: kube-system
- Hizmet Hesabı: alb-controller-sa
Uyarı
Eklentiyle tümleştirme sağlanırken kimliği veya ad alanını değiştirmek desteklenmez. Dağıtımınızı özelleştirmek istiyorsanız helm ile dağıtımı göz önünde bulundurun.
Alt ağ (subnet)
Aks tarafından yönetilen sanal ağ seçeneği kullanılarak bir AKS kümesinde eklenti etkinleştirildiğinde, aks-appgateway için temsilci etkinleştirilmiş Microsoft.ServiceNetworking/TrafficController adlı bir alt ağ otomatik olarak oluşturulur.
Sonraki Adımlar
Kümenize başarıyla bir ALB Denetleyicisi yüklediğinize göre, Azure'da Kapsayıcılar için Application Gateway kaynaklarını sağlayabilirsiniz.
Sonraki adım, ALB denetleyicinizi Kapsayıcılar için Application Gateway'e bağlamaktır. Bu bağlantıyı nasıl oluşturacağınız dağıtım stratejinize bağlıdır.
Kapsayıcılar için Application Gateway yönetiminde iki dağıtım stratejisi vardır:
-
Kendi dağıtımınızı yapın (BYO): Bu dağıtım stratejisinde, Kapsayıcılar için Application Gateway kaynağının, İlişkilendirme kaynağının ve Ön uç kaynağının dağıtımı ve yaşam döngüsü Azure portalı, CLI, PowerShell, Terraform gibi araçlar kullanılarak gerçekleştirilir ve Kubernetes üzerindeki yapılandırmada referans alınır.
- BYO dağıtımını kullanmak için, Kapsayıcılar için Uygulama Geçidi oluşturma - kendi dağıtımınızı yapma bölümüne bakın.
-
ALB denetleyicisi tarafından yönetilir: Bu dağıtım stratejisinde Kubernetes'te dağıtılan ALB Denetleyicisi, Kapsayıcılar için Application Gateway kaynağının ve alt kaynaklarının yaşam döngüsünden sorumludur. ALB Denetleyicisi, kümede bir ApplicationLoadBalancer özel kaynağı tanımlandığında, Kapsayıcılar için bir Application Gateway kaynağı oluşturur. Hizmet yaşam döngüsü, özel kaynağın yaşam döngüsünü temel alır.
- ALB yönetilen dağıtımı kullanmak için bkz. ALB Denetleyicisi tarafından yönetilen Kapsayıcılar için Application Gateway oluşturma.
Deneyebileceğiniz Örnek Senaryolar
Kapsayıcılar ve ALB Denetleyicisi için Application Gateway'i kaldırma
ALB Denetleyicisi eklentisini kaldırmak istiyorsanız aşağıdaki adımları tamamlayın.
ALB Denetleyicisi Eklentisini Devre Dışı Bırakma
Kümenizde ALB Denetleyicisi eklentisini devre dışı bırakın:
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
# Update the AKS cluster
az aks update --name ${AKS_NAME} --resource-group ${RESOURCE_GROUP} --disable-gateway-api --disable-application-load-balancer
Kaynak Grubunu Silme
Kapsayıcılar için Application Gateway de dahil olmak üzere tüm kaynakları tam olarak temizlemek için kaynak grubunu silin:
az group delete --resource-group $RESOURCE_GROUP