【发布时间】:2020-06-28 21:18:40
【问题描述】:
我正在尝试遵循本指南 https://aws.amazon.com/blogs/containers/using-alb-ingress-controller-with-amazon-eks-on-fargate/
以下步骤:
集群配置 AWS_REGION=us-east-1 CLUSTER_NAME=eks-fargate-alb-demo
eksctl 创建集群 --name $CLUSTER_NAME --region $AWS_REGION --fargate
kubectl 获取 svc 您应该得到以下响应: 名称 类型 CLUSTER-IP EXTERNAL-IP PORT(S) 年龄 Kubernetes ClusterIP 10.100.0.1 443/TCP 16h
使用集群设置 OIDC 提供程序并创建 ALB 入口控制器使用的 IAM 策略 wget -O alb-ingress-iam-policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/master/docs/examples/iam-policy.json aws iam create-policy --policy-name ALBIngressControllerIAMPolicy --policy-document file://alb-ingress-iam-policy.json
STACK_NAME=eksctl-$CLUSTER_NAME-cluster VPC_ID=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" | jq -r '[.Stacks[0].Outputs[] | {key: .OutputKey, value: .OutputValue}] | from_entries' | jq -r '.VPC') AWS_ACCOUNT_ID=$(aws sts get-caller-identity | jq -r '.Account')
cat > rbac-role.yaml
api版本:rbac.authorization.k8s.io/v1 种类:集群角色 元数据: 标签: app.kubernetes.io/name:alb-ingress-controller 名称:alb-入口控制器 规则: - api组: - “” - 扩展 资源: - 配置图 - 端点 - 事件 - 入口 - 入口/状态 - 服务 动词: - 创建 - 得到 - 列表 - 更新 - 手表 - 修补 - api组: - “” - 扩展 资源: - 节点 - 豆荚 - 秘密 - 服务 - 命名空间 动词: - 得到 - 列表
- 观看
api版本:rbac.authorization.k8s.io/v1 种类:ClusterRoleBinding 元数据: 标签: app.kubernetes.io/name:alb-ingress-controller 名称:alb-入口控制器 角色参考: apiGroup:rbac.authorization.k8s.io 种类:集群角色 名称:alb-入口控制器 主题: - 种类:ServiceAccount 名称:alb-入口控制器 命名空间:kube 系统 EOF
kubectl apply -f rbac-role.yaml 这些命令将为我们创建两个资源,输出应该类似于:
clusterrole.rbac.authorization.k8s.io/alb-ingress-controller 创建 clusterrolebinding.rbac.authorization.k8s.io/alb-ingress-controller 创建 最后是 Kubernetes 服务帐户:
eksctl 创建 iamserviceaccount \ --name alb 入口控制器\ --命名空间库贝系统\ --cluster $CLUSTER_NAME \ --attach-policy-arn arn:aws:iam::$AWS_ACCOUNT_ID:policy/ALBIngressControllerIAMPolicy \ - 批准 此 eksctl 命令将部署具有 IAM 角色的新 CloudFormation 堆栈。等待它完成,然后再继续执行后续步骤。
部署 ALB 入口控制器 现在让我们将 ALB 入口控制器部署到我们的集群:
cat > alb-ingress-controller.yaml
将示例应用程序部署到集群 现在我们已经运行了入口控制器,我们可以将应用程序部署到集群并创建入口资源来公开它。
让我们从部署开始:
cat > nginx-deployment.yaml
kubectl apply -f nginx-deployment.yaml 输出应该类似于:
deployment.apps/alb-ingress-controller 创建 然后,让我们创建一个服务,以便我们可以公开 NGINX pod:
cat > nginx-service.yaml
kubectl apply -f nginx-service.yaml 输出将类似于:
deployment.extensions/nginx-deployment 创建 最后,让我们创建我们的入口资源:
cat > nginx-ingress.yaml apiVersion:扩展/v1beta1 种类:入口 元数据: 名称:“nginx 入口” 命名空间:“默认” 注释: kubernetes.io/ingress.class:alb alb.ingress.kubernetes.io/scheme:面向互联网 标签: 应用程序:nginx 入口 规格: 规则: - 网址: 路径: - 小路: /* 后端: 服务名称:“nginx 服务” 服务端口:80 EOF kubectl apply -f nginx-ingress.yaml
输出将是:
ingress.extensions/nginx-ingress 创建 一切完成后,您将能够通过运行以下命令获取 ALB URL:
kubectl 获取入口 nginx-ingress 此命令的输出将与此类似:
名称主机地址端口年龄 nginx-ingress * 5e07dbe1-default-ngnxingr-2e9-113757324.us-east-2.elb.amazonaws.com 80 9s
但我无法在此步骤中获取 ALB URL kubectl 获取入口 nginx-ingress
任何帮助..提前谢谢..
【问题讨论】:
-
请提供更多详细信息,说明您尝试了什么、发生了什么以及您期望什么。如果没有任何细节,很难弄清楚出了什么问题。
-
您好问题解决了吗?
标签: amazon-web-services aws-fargate amazon-eks aws-application-load-balancer