Application Load Balancer (ALB) Ingressを使用してACK専用クラスターにデプロイされたサービスにアクセスするには、まずALB Ingressコントローラーでクラスターに権限を付与する必要があります。 このトピックでは、ACK専用クラスターにALB Ingressコントローラーへのアクセスを許可する方法について説明します。
前提条件
使用上の注意
クラスターがACK専用クラスターである場合にのみ、ALB Ingressコントローラーへのアクセスをクラスターに許可する必要があります。 クラスターがACK管理クラスターまたはACKサーバーレスクラスターの場合は、この手順をスキップできます。
手順
カスタムRAM (Resource Access Management) ポリシーを作成します。
左側のナビゲーションウィンドウで、 .
On theポリシーページをクリックします。ポリシーの作成.
On theポリシーの作成ページをクリックし、JSONタブをクリックします。
On theポリシーの作成ページをクリックし、JSONタブをクリックします。 次のポリシーの内容をコードエディターにコピーし、ポリシー情報を編集する次に.
{ "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" } ] }
説明複数のアクションを指定するには、次のアクションの内容を入力する前に、各アクションの内容の末尾にコンマ (,) を追加します。
を指定します。Specify the名前と説明フィールドを使用します。
クリックOK.
クラスターで使用されるワーカーRAMロールにRAMポリシーをアタッチします。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 表示されるページで、[基本情報] タブをクリックします。
On the基本情報タブの横にあるハイパーリンクをクリックします。ワーカーRAMロールフィールドでRAMコンソールにログインします。
[権限] タブで、[権限の付与] をクリックします。 [権限付与] パネルで、ドロップダウンリストから [カスタムポリシー] を選択し、前の手順で作成したカスタムポリシーを選択します。
クリック権限の付与.
クリック閉じる.
Elastic Compute Service (ECS) インスタンスのRAMロールが正常かどうかを確認します。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
On theノードページで、管理するノードのIDをクリックします。i-2ze5d2qi9iy90pzb ****.
表示されるページで、[インスタンスの詳細] タブをクリックします。 次に、[その他の情報] セクションの [RAMロール] パラメーターにECSインスタンスのRAMロールが表示されているかどうかを確認します。
RAMロールが存在しない場合は、ECSインスタンスにRAMロールを割り当てます。 詳細については、「手順2: ECSインスタンスを作成し、RAMロールをインスタンスにアタッチする」をご参照ください。
alb-ingress-controllerのポッドを削除し、ポッドの再作成後にalb-ingress-controllerのステータスを確認します。
重要この手順は、オフピーク時に実行することを推奨します。
次のコマンドを実行して、alb-ingress-controllerポッドの名前を照会します。
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のポッドを削除します。
alb-ingress-controller-***
を前の手順で取得したポッド名に置き換えます。kubectl -n kube-system delete pod alb-ingress-controller-***
期待される出力:
pod "alb-ingress-controller-***" deleted
数分待ってから次のコマンドを実行し、再作成されたポッドのステータスを照会します。
kubectl -n kube-system get pod
期待される出力:
NAME READY STATUS RESTARTS AGE alb-ingress-controller-***2 1/1 Running 0 60s
出力は、再作成されたポッドが実行中の状態であることを示します。
次のステップ
ALB Ingressを使用してACK専用クラスターのサービスにアクセスする方法の詳細については、「ALB Ingressを使用したサービスへのアクセス」をご参照ください。