O controlador ALB Ingress chama APIs da Alibaba Cloud — incluindo as APIs do Application Load Balancer (ALB), Resource Access Management (RAM), VPC e ECS — para criar e gerenciar recursos de balanceador de carga em nome do seu cluster. Em clusters dedicados do ACK, o controlador roda em nós worker sem permissões de API de nuvem por padrão. Este tópico descreve como conceder as permissões necessárias para que o controlador gerencie recursos do ALB.
Esta etapa aplica-se apenas a clusters dedicados do ACK. Em clusters gerenciados do ACK e clusters ACK Serverless, o controlador ALB Ingress já possui as permissões necessárias; portanto, nenhuma configuração adicional é necessária.
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster dedicado do ACK
O componente controlador ALB Ingress instalado no cluster
Etapa 1: Crie uma política personalizada do RAM
Faça login no console do RAM como um usuário do RAM com direitos administrativos.
No painel de navegação à esquerda, escolha Permissions > Policies.
-
Na página Policies, clique em Create Policy.

-
Na página Create Policy, clique na aba JSON.

-
Substitua o conteúdo padrão pelo seguinte documento de política e clique em OK.
NotaSepare várias instruções de política com vírgulas (,).
{ "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" } ] } Na caixa de diálogo Create Policy, insira um Policy Name e uma Description, depois clique em OK.
Etapa 2: Anexar a política à função RAM do worker
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster e, em seguida, na aba Basic Information.
Na aba Basic Information, clique no link à direita de Worker RAM Role para abrir o console do RAM.
Na aba Permissions, clique em Grant Permission. No painel Grant Permission, localize e selecione a política personalizada criada na Etapa 1.
Clique em Grant Permissions e, em seguida, em Close.
Etapa 3: Verifique a função RAM da instância
No painel de navegação à esquerda da página de detalhes do cluster, escolha Nodes > Nodes.
Na página Nodes, clique no ID da instância de um nó worker — por exemplo,
i-2ze5d2qi9iy90pzb****.Na página de detalhes da instância, clique na aba Instance Details. Na seção Other Information, verifique se há uma função RAM exibida ao lado de RAM Role. Caso não haja nenhuma função RAM anexada, anexe uma à instância ECS. Para mais informações, consulte Desanexar ou alterar uma função RAM de instância.
Etapa 4: Reiniciar o pod do controlador ALB Ingress
Execute esta etapa fora dos horários de pico.
Reinicie o pod alb-ingress-controller para que ele assuma as novas permissões.
-
Obtenha o nome do pod.
kubectl -n kube-system get pod | grep alb-ingress-controllerSaída esperada:
NAME READY STATUS RESTARTS AGE alb-ingress-controller-*** 1/1 Running 0 60s -
Exclua o pod. Substitua
alb-ingress-controller-***pelo nome obtido na etapa anterior.kubectl -n kube-system delete pod alb-ingress-controller-***Saída esperada:
pod "alb-ingress-controller-***" deleted -
Após alguns minutos, confirme se o pod está em execução novamente.
kubectl -n kube-system get podSaída esperada:
NAME READY STATUS RESTARTS AGE alb-ingress-controller-***2 1/1 Running 0 60sO status Running confirma que o controlador funciona corretamente com as novas permissões.
Próximos passos
Para rotear tráfego para serviços no seu cluster usando ALB Ingress, consulte Expor serviços com um ALB Ingress.