Le contrôleur ALB Ingress appelle les API Alibaba Cloud, notamment celles d'Application Load Balancer (ALB), de Resource Access Management (RAM), de VPC et d'ECS, afin de créer et de gérer les ressources d'équilibrage de charge pour le compte de votre cluster. Dans un cluster ACK dédié, le contrôleur s'exécute sur des nœuds de travail qui ne disposent d'aucune autorisation d'accès aux API cloud par défaut. Cette rubrique explique comment accorder les autorisations nécessaires pour permettre au contrôleur de gérer les ressources ALB.
Cette étape s'applique uniquement aux clusters ACK dédiés. Pour les clusters ACK managés et les clusters ACK Serverless, le contrôleur ALB Ingress dispose déjà des autorisations requises ; aucune configuration supplémentaire n'est nécessaire.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un cluster ACK dédié
Le composant ALB Ingress controller installé dans le cluster
Étape 1 : Créer une politique RAM personnalisée
Connectez-vous à la console RAM en tant qu'utilisateur RAM disposant de droits administratifs.
Dans le volet de navigation de gauche, sélectionnez Permissions > Policies.
-
Sur la page Policies, cliquez sur Create Policy.

-
Sur la page Create Policy, cliquez sur l'onglet JSON.

-
Remplacez le contenu par défaut par le document de stratégie suivant, puis cliquez sur OK.
RemarqueSéparez plusieurs instructions de stratégie par des virgules (,).
{ "Version": "1", "Statement": [ { "Action": [ "alb:EnableLoadBalancerIpv6Internet", "alb:DisableLoadBalancerIpv6Internet", "alb:CreateAcl", "alb:DeleteAcl", "alb:ListAcls", "alb:ListAclRelations", "alb:AddEntriesToAcl", "alb:AssociateAclsWithListener", "alb:ListAclEntries", "alb:RemoveEntriesFromAcl", "alb:DissociateAclsFromListener", "alb:TagResources", "alb:UnTagResources", "alb:ListServerGroups", "alb:ListServerGroupServers", "alb:AddServersToServerGroup", "alb:RemoveServersFromServerGroup", "alb:ReplaceServersInServerGroup", "alb:CreateLoadBalancer", "alb:DeleteLoadBalancer", "alb:UpdateLoadBalancerAttribute", "alb:UpdateLoadBalancerEdition", "alb:EnableLoadBalancerAccessLog", "alb:DisableLoadBalancerAccessLog", "alb:EnableDeletionProtection", "alb:DisableDeletionProtection", "alb:ListLoadBalancers", "alb:GetLoadBalancerAttribute", "alb:ListListeners", "alb:CreateListener", "alb:GetListenerAttribute", "alb:UpdateListenerAttribute", "alb:ListListenerCertificates", "alb:AssociateAdditionalCertificatesWithListener", "alb:DissociateAdditionalCertificatesFromListener", "alb:DeleteListener", "alb:CreateRule", "alb:DeleteRule", "alb:UpdateRuleAttribute", "alb:CreateRules", "alb:UpdateRulesAttribute", "alb:DeleteRules", "alb:ListRules", "alb:UpdateListenerLogConfig", "alb:CreateServerGroup", "alb:DeleteServerGroup", "alb:UpdateServerGroupAttribute", "alb:UpdateLoadBalancerAddressTypeConfig", "alb:AttachCommonBandwidthPackageToLoadBalancer", "alb:DetachCommonBandwidthPackageFromLoadBalancer", "alb:UpdateServerGroupServersAttribute", "alb:MoveResourceGroup", "alb:DescribeZones", "alb:ListAScripts", "alb:CreateAScripts", "alb:UpdateAScripts", "alb:DeleteAScripts" ], "Resource": "*", "Effect": "Allow" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": [ "alb.aliyuncs.com", "audit.log.aliyuncs.com", "nlb.aliyuncs.com", "logdelivery.alb.aliyuncs.com" ] } } }, { "Action": [ "log:GetProductDataCollection", "log:OpenProductDataCollection", "log:CloseProductDataCollection" ], "Resource": "acs:log:*:*:project/*/logstore/alb_*", "Effect": "Allow" }, { "Action": [ "yundun-cert:DescribeSSLCertificateList", "yundun-cert:DescribeSSLCertificatePublicKeyDetail", "yundun-cert:CreateSSLCertificateWithName", "yundun-cert:DeleteSSLCertificate" ], "Resource": "*", "Effect": "Allow" }, { "Action": "vpc:DescribeVSwitches", "Resource": "*", "Effect": "Allow" }, { "Action": "ecs:DescribeNetworkInterfaces", "Resource": "*", "Effect": "Allow" } ] } Dans la boîte de dialogue Create Policy, saisissez un Policy Name et une Description, puis cliquez sur OK.
Étape 2 : Attacher la politique au rôle RAM des nœuds de travail
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster, puis sur l'onglet Basic Information.
Sur l'onglet Basic Information, cliquez sur le lien situé à droite de Worker RAM Role pour ouvrir la console RAM.
Sur l'onglet Permissions, cliquez sur Grant Permission. Dans le panneau Grant Permission, recherchez et sélectionnez la politique personnalisée que vous avez créée à l'étape 1.
Cliquez sur Grant Permissions, puis sur Close.
Étape 3 : Vérifier le rôle RAM de l'instance
Dans le volet de navigation de gauche de la page des détails du cluster, sélectionnez Nodes > Nodes.
Sur la page Nodes, cliquez sur l'ID d'instance d'un nœud de travail, par exemple
i-2ze5d2qi9iy90pzb****.Sur la page des détails de l'instance, cliquez sur l'onglet Instance Details. Dans la section Other Information, vérifiez si un rôle RAM est affiché à côté de RAM Role. Si aucun rôle RAM n'est attaché, attachez-en un à l'instance ECS. Pour plus d'informations, consultez la rubrique Détacher ou modifier un rôle RAM d'instance.
Étape 4 : Redémarrer le pod du contrôleur ALB Ingress
Effectuez cette opération pendant les heures creuses.
Redémarrez le pod alb-ingress-controller afin qu'il prenne en compte les nouvelles autorisations.
-
Récupérez le nom du pod.
kubectl -n kube-system get pod | grep alb-ingress-controllerRésultat attendu :
NAME READY STATUS RESTARTS AGE alb-ingress-controller-*** 1/1 Running 0 60s -
Supprimez le pod. Remplacez
alb-ingress-controller-***par le nom obtenu à l'étape précédente.kubectl -n kube-system delete pod alb-ingress-controller-***Résultat attendu :
pod "alb-ingress-controller-***" deleted -
Après quelques minutes, confirmez que le pod est de nouveau en cours d'exécution.
kubectl -n kube-system get podRésultat attendu :
NAME READY STATUS RESTARTS AGE alb-ingress-controller-***2 1/1 Running 0 60sUn statut Running confirme que le contrôleur fonctionne correctement avec les nouvelles autorisations.
Étapes suivantes
Pour acheminer le trafic vers les services de votre cluster à l'aide d'ALB Ingress, consultez la rubrique Exposer des services avec un ALB Ingress.