若您需要在ACK專有叢集中通過ALB Ingress訪問服務,部署服務前需要對雲產品授予ALB Ingress Controller的相關許可權。本文介紹如何對ACK專有叢集中的ALB Ingress Controller組件授權。
前提條件
注意事項
僅ACK專有叢集需要授予ALB Ingress Controller的存取權限,ACK託管叢集、ACK Serverless叢集均無需為ALB Ingress Controller設定存取權限,即可使用ALB Ingress。
操作步驟
建立自訂權限原則。
在左側導覽列,選擇 。
在權限原則頁面,單擊建立權限原則。
在建立權限原則頁面,單擊指令碼編輯頁簽。
在建立權限原則頁面,單擊指令碼編輯頁簽。輸入以下權限原則內容,單擊繼續編輯基本資料。
{ "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" } ] }
說明多個策略內容需要用英文半形逗號(,)分隔。
輸入權限原則名稱和備忘。
單擊確定。
為叢集的Worker RAM角色授權。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後單擊基本資料頁簽。
在基本資料頁簽,單擊Worker RAM 角色右側的連結,跳轉至RAM控制台。
在許可權管理頁簽,單擊新增授權,然後在新增授權面板的權限原則地區,篩選上一步已建立的自訂權限原則。
單擊確認新增授權。
單擊關閉。
確認ECS執行個體的RAM角色狀態是否正常。
在叢集管理頁左側導覽列,選擇 。
在節點頁面,單擊目標節點的執行個體ID,例如i-2ze5d2qi9iy90pzb****。
在目標執行個體頁面,單擊執行個體詳情頁簽,然後在其他資訊地區的RAM角色右側查看是否存在該ECS執行個體的RAM角色。
若沒有對應的RAM角色,請為ECS執行個體指定RAM角色。具體操作,請參見使用執行個體RAM角色訪問其他雲資源。
刪除重建alb-ingress-controller的Pod,確保組件處於正常工作狀態。
重要請在業務低峰期進行刪除重建Pod的操作。
執行以下命令,查詢alb-ingress-controller的Pod名稱。
kubectl -n kube-system get pod | grep alb-ingress-controller
預期輸出:
NAME READY STATUS RESTARTS AGE alb-ingress-controller-*** 1/1 Running 0 60s
執行以下命令刪除alb-ingress-controller的Pod。
替換
alb-ingress-controller-***
為上個步驟中擷取到的實際值。kubectl -n kube-system delete pod alb-ingress-controller-***
預期輸出:
pod "alb-ingress-controller-***" deleted
等待幾分鐘後,執行以下命令查看重建後的Pod狀態。
kubectl -n kube-system get pod
預期輸出:
NAME READY STATUS RESTARTS AGE alb-ingress-controller-***2 1/1 Running 0 60s
預期輸出結果表明,重建後Pod的狀態為Running,組件處於正常工作狀態。
後續操作
關於如何在ACK專有叢集中通過ALB Ingress訪問服務,請參見建立ALB Ingress。