コントローラーのデプロイ
以下の手順に従って、Gateway API サポートを有効にした AWS Load Balancer Controller をデプロイします。
prepare-environment ステッ プでは、すでに Gateway API の CRD がインストールされ、必要な IAM role が作成されています。ここでは、Helm を使用して AWS Load Balancer Controller をインストールします。
Gateway API サポートを有効にして AWS Load Balancer Controller をインストールします:
~$helm repo add eks-charts https://aws.github.io/eks-charts
~$helm upgrade --install aws-load-balancer-controller eks-charts/aws-load-balancer-controller \
--version "${LBC_CHART_VERSION}" \
--namespace "kube-system" \
--set "clusterName=${EKS_CLUSTER_NAME}" \
--set "serviceAccount.name=aws-load-balancer-controller-sa" \
--set "serviceAccount.annotations.eks\\.amazonaws\\.com/role-arn"="$LBC_ROLE_ARN" \
--set "defaultTargetType=ip" \
--wait
Release "aws-load-balancer-controller" does not exist. Installing it now.
NAME: aws-load-balancer-controller
LAST DEPLOYED: [...]
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
AWS Load Balancer controller installed!
コントローラーは Deployment として実行されます:
~$kubectl get deployment -n kube-system aws-load-balancer-controller
NAME READY UP-TO-DATE AVAILABLE AGE
aws-load-balancer-controller 2/2 2 2 30s
クラスターで Gateway API の CRD が利用可能であることを確認します:
~$kubectl get crds | grep gateway
gatewayclasses.gateway.networking.k8s.io [...]
gateways.gateway.networking.k8s.io [...]
httproutes.gateway.networking.k8s.io [...]
referencegrants.gateway.networking.k8s.io [...]
現在、クラスターには Gateway リソースはありません:
~$kubectl get gateway -A
No resources found
HTTPRoute リソースもありません:
~$kubectl get httproute -A
No resources found
コントローラーがデプロイされたので、Gateway API リソースを作成して Application Load Balancer 経由でアプリケーションを公開する準備が整いました。