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 yeni veya mevcut bir Azure Kubernetes Service (AKS) kümesine ALB Denetleyicisi sağlamak için gereken adımlar açıklanmaktadır.
Önkoşullar
Azure'da Kapsayıcılar için Application Gateway'i dağıtmadan ve kümenize ALB Denetleyicisi yüklemeden ö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İş yükünüz için bir AKS kümesi ayarlayın.
Uyarı
AKS kümesinin Kapsayıcılar için Application Gateway'in kullanılabilir olduğu bir bölgede olması gerekir. AKS kümesi Azure CNI veya Azure CNI Katmanı kullanmalıdır. AKS kümesinde iş yükü kimliği özelliği etkinleştirilmelidir. Mevcut bir AKS kümesinde iş yükü kimliğini etkinleştirmeyi öğrenin.
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-waitMevcut bir kümeniz yoksa, Azure CNI ve iş yükü kimliği 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 \ --generate-ssh-keyHelm'i yükleme
Helm , ALB denetleyicisini yüklemek için kullanılan bir açık kaynak paketleme aracıdır.
Uyarı
Helm, Azure Cloud Shell'de zaten kullanılabilir. Azure Cloud Shell kullanıyorsanız ek Helm yüklemesi gerekmez.
Helm'i Windows veya Linux çalıştıran yerel bir cihaza yüklemek için aşağıdaki adımları da kullanabilirsiniz. Helm'in en son sürümünün yüklü olduğundan emin olun.
Çeşitli yükleme seçenekleri için yükleme yönergelerine bakın. Benzer şekilde, Windows sürümünüzde Windows Paket Yöneticisi winget yüklüyse aşağıdaki komutu yürütebilirsiniz:
winget install helm.helm
ALB Denetleyicisi'ni yükleme
ALB denetleyicisi için kullanıcı tarafından yönetilen bir kimlik oluşturun ve kimliği AKS kümesinde kullanılacak İş Yükü Kimliği olarak bir araya getirin.
RESOURCE_GROUP='<your resource group name>' AKS_NAME='<your aks cluster name>' IDENTITY_RESOURCE_NAME='azure-alb-identity' FEDERATED_IDENTITY_NAME='azure-alb-identity' CONTROLLER_NAMESPACE='azure-alb-system' # the namespace the controller will be provisioned to mcResourceGroup=$(az aks show --resource-group $RESOURCE_GROUP --name $AKS_NAME --query "nodeResourceGroup" -o tsv) mcResourceGroupId=$(az group show --name $mcResourceGroup --query id -otsv) echo "Creating identity $IDENTITY_RESOURCE_NAME in resource group $RESOURCE_GROUP" az identity create --resource-group $RESOURCE_GROUP --name $IDENTITY_RESOURCE_NAME principalId="$(az identity show -g $RESOURCE_GROUP -n $IDENTITY_RESOURCE_NAME --query principalId -otsv)" echo "Waiting 60 seconds to allow for replication of the identity..." sleep 60 echo "Apply Reader role to the AKS managed cluster resource group for the newly provisioned identity" az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal --scope $mcResourceGroupId --role "acdd72a7-3385-48ef-bd42-f606fba81ae7" # Reader role echo "Set up federation with AKS OIDC issuer" AKS_OIDC_ISSUER="$(az aks show -n "$AKS_NAME" -g "$RESOURCE_GROUP" --query "oidcIssuerProfile.issuerUrl" -o tsv)" az identity federated-credential create --name $FEDERATED_IDENTITY_NAME \ --identity-name "$IDENTITY_RESOURCE_NAME" \ --resource-group $RESOURCE_GROUP \ --issuer "$AKS_OIDC_ISSUER" \ --subject "system:serviceaccount:$CONTROLLER_NAMESPACE:alb-controller-sa"Uyarı
Yönetilen kimliğin oluşturulduktan hemen sonra atanması, principalId'nin mevcut olmadığı bir hata mesajına neden olabilir. Kimliğin temsilci seçmeden önce Microsoft Entra Kimliği'nde çoğaltılması için yaklaşık bir dakika bekleyin.
Helm kullanarak ALB Denetleyicisi'ni yükleyin
Yeni dağıtımlar için
helm installkomutunu kullanarak ALB Denetleyicisi'ni yükleyin.helm installKomut çalıştırıldığında helm grafiğini varsayılan ad alanına dağıtır. alb-controller dağıtıldığında,azure-alb-systemadlı ad alanına dağıtılır. Bu ad alanlarının her ikisi de istenildiği gibi bağımsız olarak geçersiz kılınabilir. Helm chart'ının dağıtılacağı ad alanını geçersiz kılmak için--namespace(veya -n) parametresini belirtebilirsiniz. alb-controller tarafından kullanılanazure-alb-systemad alanını geçersiz kılmak için, yükleme sırasında albController.namespace özelliğini ayarlayabilirsiniz--set albController.namespace. Ne--namespacene de--set albController.namespaceparametreleri tanımlanmamışsa, helm grafiği için varsayılan namespace ve ALB denetleyicisi bileşenleri içinazure-alb-systemnamespace kullanılır. Son olarak, helm grafiği kaynağının ad alanı henüz tanımlanmamışsa, hem--create-namespacehem de--namespaceveya-nparametrelerinin belirtildiğinden emin olun.ALB Denetleyicisi aşağıdaki komutlar çalıştırılarak yüklenebilir:
HELM_NAMESPACE='<namespace for deployment>' CONTROLLER_NAMESPACE='azure-alb-system' # ensure this matches the namespace provided in your managed identity az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_NAME helm install alb-controller oci://mcr.microsoft.com/application-lb/charts/alb-controller \ --namespace $HELM_NAMESPACE \ --version 1.11.4 \ --set albController.namespace=$CONTROLLER_NAMESPACE \ --set albController.podIdentity.clientID=$(az identity show -g $RESOURCE_GROUP -n $IDENTITY_RESOURCE_NAME --query clientId -o tsv)Mevcut dağıtımlar için
ALB, aşağıdaki komutlar çalıştırılarak yükseltilebilir:
Uyarı
Yükseltme sırasında, önceki kurulumda
--namespaceve--set albController.namespaceparametrelerini belirttiğinizden emin olun, eğer ad alanları geçersiz kılındıysa. Önceki ad alanlarının kullanımını belirlemek için, helm ad alanı içinhelm listve ALB denetleyicisi içinkubectl get pod -A -l app=alb-controllerkomutunu çalıştırabilirsiniz.HELM_NAMESPACE='<your cluster name>' CONTROLLER_NAMESPACE='azure-alb-system' az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_NAME helm upgrade alb-controller oci://mcr.microsoft.com/application-lb/charts/alb-controller \ --namespace $HELM_NAMESPACE \ --version 1.11.4 \ --set albController.namespace=$CONTROLLER_NAMESPACE \ --set albController.podIdentity.clientID=$(az identity show -g $RESOURCE_GROUP -n $IDENTITY_RESOURCE_NAME --query clientId -o tsv)
ALB Denetleyicisi kurulumunu doğrula
ALB Controller podlarının hazır olduğunu kontrol edin:
kubectl get pods -n azure-alb-systemAşağıdaki çıkışı görmeniz gerekir:
İ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'ın
azure-alb-externalkümenizde yüklü olduğunu doğrulayın:kubectl get gatewayclass azure-alb-external -o yamlGatewayClass'ı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 otomatik olarak 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
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.
Kapsayıcılar ve ALB Denetleyicisi için Application Gateway'i kaldırma
ALB Denetleyicisi'ni kaldırmak istiyorsanız aşağıdaki adımları tamamlayın.
Kapsayıcılar için Application Gateway'i silin; Kapsayıcılar için Application Gateway kaynaklarını içeren Kaynak Grubunu silebilirsiniz:
az group delete --resource-group $RESOURCE_GROUPALB Denetleyicisi'ni ve kaynaklarını kümenizden kaldırın, aşağıdaki komutları çalıştırın:
helm uninstall alb-controller kubectl delete ns azure-alb-system kubectl delete gatewayclass azure-alb-external
Uyarı
alb-controller yüklemesi için farklı bir ad alanı kullanıldıysa, kullanılacak uygun ad alanını tanımlamak için helm uninstall komutunda -n parametresini belirttiğinizden emin olun. Örneğin: helm uninstall alb-controller -n unique-namespace