eks里面alb-ingress无法正常使用和删除

0

EKS里面安装了ALB-ingress-controller 使用kubectl apply -f 应用了如下ingress配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: dev-vgen
  name: dev-ingress-web
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/subnets: subnet-3030d131,subnet-101a324f
    alb.ingress.kubernetes.io/tags: Environment=dev
spec:
  ingressClassName: alb
  rules:
    - http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: web
              port:
                number: 80

但是没有生成ELB, 也无法删除, EKS页面有权限报错:

ailed build model due to UnauthorizedOperation: You are not authorized to perform this operation. status code: 403, request id: 737dc783-7c2d-4a4a-9f24-6c93ff96c57d

在此处输入图片描述

如何解决上述问题?

jack
已提问 8 个月前108 查看次数
1 回答
0

您好:

欲使用 EKS 的 ALB-ingress-controller 启用 ELB 需要 IAM 授权控制器

因为控制器在工作程序节点上运行,所以它需要通过 IAM 权限访问 AWS ALB/NLB 资源。IAM 权限可以通过 ServiceAccount 的 IAM 角色设置,也可以直接附加到工作程序节点 IAM 角色.

步骤为下:

  1. 下载适用于 AWS Load Balancer Controller 的 IAM 政策,允许它代表您呼叫 AWS API。
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.5.4/docs/install/iam_policy.json

将v2.5.4更换为您控制器的版本

  1. 使用上一个步骤中下载的政策,建立 IAM 政策。
aws iam create-policy \
    --policy-name AWSLoadBalancerControllerIAMPolicy \
    --policy-document file://iam_policy.json

记下返回的策略 ARN

  1. 为 AWS 负载均衡器控制器创建 IAM 角色和服务帐号,使用上述步骤中的 ARN
eksctl create iamserviceaccount \
--cluster=<cluster-name> \
--namespace=kube-system \
--name=aws-load-balancer-controller \
--attach-policy-arn=arn:aws:iam::<AWS_ACCOUNT_ID>:policy/AWSLoadBalancerControllerIAMPolicy \
--override-existing-serviceaccounts \
--approve

完成后,您可以先删除

重新应用 ingress 的 yaml 档案,并使用:

kubectl -n your-ingress-name get ingress

来确认 ALB 成功启用

以下附上 kubernetes 以及 aws 官方文件供参考: kubernetes: https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/deploy/installation/#iam-permissions AWS: https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/aws-load-balancer-controller.html

profile pictureAWS
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则