全部產品
Search
文件中心

:為ACK專有叢集授予ALB Ingress Controller存取權限

更新時間:Oct 16, 2024

若您需要在ACK專有叢集中通過ALB Ingress訪問服務,部署服務前需要對雲產品授予ALB Ingress Controller的相關許可權。本文介紹如何對ACK專有叢集中的ALB Ingress Controller組件授權。

前提條件

注意事項

ACK專有叢集需要授予ALB Ingress Controller的存取權限,ACK託管叢集ACK Serverless叢集均無需為ALB Ingress Controller設定存取權限,即可使用ALB Ingress。

操作步驟

  1. 建立自訂權限原則。

    1. 在左側導覽列,選擇許可權管理 > 權限原則

    2. 權限原則頁面,單擊建立權限原則

    3. 建立權限原則頁面,單擊指令碼編輯頁簽。

    4. 建立權限原則頁面,單擊指令碼編輯頁簽。輸入以下權限原則內容,單擊繼續編輯基本資料

      {
          "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"
              }
          ]
      }
      說明

      多個策略內容需要用英文半形逗號(,)分隔。

    5. 輸入權限原則名稱備忘

    6. 單擊確定

  2. 為叢集的Worker RAM角色授權。

    1. 登入Container Service管理主控台,在左側導覽列選擇叢集

    2. 叢集列表頁面,單擊目的地組群名稱,然後單擊基本資料頁簽。

    3. 基本資料頁簽,單擊Worker RAM 角色右側的連結,跳轉至RAM控制台。

    4. 許可權管理頁簽,單擊新增授權,然後在新增授權面板的權限原則地區,篩選上一步已建立的自訂權限原則。

    5. 單擊確認新增授權

    6. 單擊關閉

  3. 確認ECS執行個體的RAM角色狀態是否正常。

    1. 在叢集管理頁左側導覽列,選擇節點管理 > 節點

    2. 節點頁面,單擊目標節點的執行個體ID,例如i-2ze5d2qi9iy90pzb****

    3. 在目標執行個體頁面,單擊執行個體詳情頁簽,然後在其他資訊地區的RAM角色右側查看是否存在該ECS執行個體的RAM角色。

      若沒有對應的RAM角色,請為ECS執行個體指定RAM角色。具體操作,請參見使用執行個體RAM角色訪問其他雲資源

  4. 刪除重建alb-ingress-controller的Pod,確保組件處於正常工作狀態。

    重要

    請在業務低峰期進行刪除重建Pod的操作。

    1. 執行以下命令,查詢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
    2. 執行以下命令刪除alb-ingress-controller的Pod。

      替換alb-ingress-controller-***為上個步驟中擷取到的實際值。

      kubectl -n kube-system delete pod alb-ingress-controller-***

      預期輸出:

      pod "alb-ingress-controller-***" deleted
    3. 等待幾分鐘後,執行以下命令查看重建後的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