我正试着遵循这个指南https://aws.amazon.com/blogs/containers/using-alb-ingress-controller-with-amazon-eks-on-fargate/
以下步骤:
集群供应AWS_REGION=us-east-1群集_NAME=eks fargate-alb-demo
创建集群-名称$CLUSTER_NAME -区域$AWS_REGION -fargate
您应该得到以下响应:名称类型集群-IP外部-IP端口(S)年龄ClusterIP 10.100.0.1 443/TCP 16h
与集群一起设置OIDC提供程序,并创建由ALB侵入控制器wget -O alb- Ingress iam - policy used https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/master/docs/examples/iam-policy.json aws IAM创建-策略-名称ALBIngressControllerIAMPolicy -策略-document ALBIngressControllerIAMPolicy-document ALBIngressControllerIAMPolicy使用的iam策略。
stack_name=eksctl-$cluster VPC_ID=$(stack-堆栈名称"$STACK_NAME“\ jq -r '[.Stacks.Outputs[] name {key:.OutputKey,value:.OutputValue}] from_entries‘AC.26 jq -r '.VPC') AWS_ACCOUNT_ID=$(aws sts get-caller identity jq -r’.Account‘.Account)
cat > rbac-role.yaml <-EOF
apiVersion: rbac.Authization.k8s.io/v1类: ClusterRole元数据:标签: app.kubernetes.io/name: alb-ingress控制器名称:- apiGroups:- "“-扩展资源:- configmaps终结点-事件-入口/状态-服务:- create - get - list-更新-监视-补丁- apiGroups:- "“-扩展资源:-节点-豆荚-秘密-服务-命名空间动词:-获取列表
-守望
apiVersion: rbac.Authization.k8s.io/v1种类: ClusterRoleBinding元数据:标签: app.kubernetes.io/name: alb-ingress控制器名称:alb-ingress控制器roleRef: apiGroup: rbac.authorization.k8s.io种类: ClusterRole名称:alb-ingress控制器主题:-roleRef: ServiceAccount名称:alb-ingress控制器命名空间: kube-system EOF
kubectl应用-f rbac-role.yaml这些命令将为我们创建两个资源,输出应该类似于以下内容:
clusterrole.rbac.authorization.k8s.io/alb-ingress-controller创建了clusterrolebinding.rbac.authorization.k8s.io/alb-ingress-controller,最后创建了Kubernetes服务帐户:
创建iamserviceaccount \--名称为alb-ingress控制器\-命名空间库- $CLUSTER_NAME \--附加-策略-arn$CLUSTER_NAME\-批准这个eksctl命令将部署一个新的带有IAM角色的CloudFormation堆栈。在继续执行下一个步骤之前,等待它完成。
部署ALB大会控制器--让我们现在将ALB大会控制器部署到我们的集群:
cat >alb-ingress控制器名称: matchLabels: app.kubernetes.io/name: apps控制器规范:matchLabels: app.kubernetes.io/name: app.kubernetes.io/name: apps控制器规范:容器:-名称:alb-ingress控制器args:--ingress class=alb--集群-名称=$群集_NAME--AWS ID=$VPC_ID--AWS-REGION=$AWS_ EOF映像: docker.io/amazon/aws-alb-ingress-controller:v1.1.4 serviceAccountName: alb-ingress控制器EOF kubectl应用-f alb-入口-控制器。
将示例应用程序部署到集群,现在我们已经运行了入口控制器,我们可以将应用程序部署到集群中,并创建一个入口资源来公开它。
让我们从部署开始:
部署元数据:名称:“nginx-部署”命名空间:“默认”规范:3个模板:标签: app:"nginx“规范:容器:- imagePullPolicy: imagePullPolicy:总是名称:"nginx”端口:- containerPort: 80 EOF
kubectl应用-f nginx部署. apply输出应该类似于:
然后,让我们创建一个服务,这样我们就可以公开NGINX荚了:
cat > nginx-service.yaml <<-EOF apiVersion: v1类:服务元数据:注释:Alb.ingress.kubernetes.io/目标类型: ip名称:"nginx- Service“命名空间:”默认“规范:端口:-端口: 80 targetPort: 80协议: TCP类型: NodePort选择器: app:"nginx”EOF
kubectl应用-f nginx-service.yaml输出将类似于:
部署/扩展/nginx-最终创建的部署,让我们创建我们的入口资源:
cat >nginx-inress.yaml <<-EOF apiVersion: extensions/v1beta 1类别:入口元数据:名称:“nginx”命名空间:“默认”注释:kubernetes.io/inress.class: alb相册.inress.kubernetes.io/ path:面向因特网的标签: app: nginx规范:规则: http: path:-path: /*后端:serviceName"nginx-service“servicePort: 80 EOF kubectl应用-f nginx-inress.yaml
产出如下:
一旦完成所有操作,您就可以通过运行以下命令获得ALB:
kubectl获取入口nginx-ingress这个命令的输出将类似于这个命令:
名称主机地址端口年龄nginx-ingress * 5e07dbe1-default-ngnxingr-2e9-113757324.us-east-2.elb.amazonaws.com 80 9s
但在这一步中,我无法获得ALB URL,kubectl获得了nginx入口。
任何帮助..。提前谢谢..。
发布于 2020-08-05 14:52:12
我也有同样的问题,我通过更新alb-ingress-controller.yaml来修复它。我用$CLUSTER_NAME、$VPC_ID和$AWS_REGION代替了它们的价值。
https://stackoverflow.com/questions/60728375
复制相似问题