我正在尝试遵循本指南 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 get svc 你应该得到以下响应: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 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-控制器/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')
猫 > rbac-role.yaml <<-EOF
apiVersion:rbac.authorization.k8s.io/v1 种类:ClusterRole 元数据:标签:app.kubernetes.io/name:alb-ingress-controller 名称:alb-ingress-controller 规则:-apiGroups:-“”-扩展资源: - configmaps - 端点 - 事件 - 入口 - 入口/状态 - 服务动词: - 创建 - 获取 - 列表 - 更新 - 监视 - 补丁 - apiGroups: - “” - 扩展资源: - 节点 - pods - 秘密 - 服务 - 命名空间动词: - 获取 - 列表
- 手表
apiVersion:rbac.authorization.k8s.io/v1 种类:ClusterRoleBinding 元数据:标签:app.kubernetes.io/name:alb-ingress-controller 名称:alb-ingress-controller roleRef:apiGroup:rbac.authorization.k8s.io 种类: ClusterRole 名称:alb-ingress-controller 主题:- 种类:ServiceAccount 名称:alb-ingress-controller 命名空间:kube-system EOF
kubectl apply -f rbac-role.yaml 这些命令将为我们创建两个资源,输出应该类似于:
clusterrole.rbac.authorization.k8s.io/alb-ingress-controller created clusterrolebinding.rbac.authorization.k8s.io/alb-ingress-controller created 最后是 Kubernetes 服务帐户:
eksctl create iamserviceaccount \ --name alb-ingress-controller \ --namespace kube-system \ --cluster $CLUSTER_NAME \ --attach-policy-arn arn:aws:iam::$AWS_ACCOUNT_ID:policy/ALBIngressControllerIAMPolicy \ --approve此 eksctl 命令将部署具有 IAM 角色的新 CloudFormation 堆栈。等待它完成,然后再继续执行后续步骤。
部署 ALB 入口控制器 现在让我们将 ALB 入口控制器部署到我们的集群:
cat > alb-ingress-controller.yaml <<-EOF apiVersion:apps/v1 种类:部署元数据:标签:app.kubernetes.io/name:alb-ingress-controller 名称:alb-ingress-controller 命名空间:kube-system规格:选择器:matchLabels:app.kubernetes.io/名称:alb-ingress-controller 模板:元数据:标签:app.kubernetes.io/名称:alb-ingress-controller 规格:容器:-名称:alb-ingress-controller参数: - --ingress-class=alb - --cluster-name=$CLUSTER_NAME - --aws-vpc-id=$VPC_ID - --aws-region=$AWS_REGION 映像:docker.io/amazon/aws-alb -ingress-controller:v1.1.4 serviceAccountName: alb-ingress-controller EOF kubectl apply -f alb-ingress-controller.yaml
将示例应用程序部署到集群 现在我们已经运行了入口控制器,我们可以将应用程序部署到集群并创建一个入口资源来公开它。
让我们从部署开始:
cat > nginx-deployment.yaml <<-EOF apiVersion: extensions/v1beta1 kind: Deployment metadata: name: "nginx-deployment" namespace: "default" spec: replicas: 3 template: metadata: labels: app: "nginx" spec :容器:-图像:nginx:最新 imagePullPolicy:始终名称:“nginx”端口:-containerPort:80 EOF
kubectl apply -f nginx-deployment.yaml 输出应该类似于:
deployment.apps/alb-ingress-controller created 然后,让我们创建一个服务,以便我们可以公开 NGINX pod:
cat > nginx-service.yaml <<-EOF apiVersion: v1 kind: 服务元数据: annotations: alb.ingress.kubernetes.io/target-type: ip name: "nginx-service" namespace: "default" spec: ports: - 端口:80 目标端口:80 协议:TCP 类型:NodePort 选择器:应用程序:“nginx”EOF
kubectl apply -f nginx-service.yaml 输出将类似于:
deployment.extensions/nginx-deployment created 最后,让我们创建我们的入口资源:
cat > nginx-ingress.yaml <<-EOF apiVersion: extensions/v1beta1 kind: Ingress metadata: name: "nginx-ingress" namespace: "default" annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes. io/scheme:面向互联网的标签:app:nginx-ingress 规范:规则:-http:paths:-path:/* backend:serviceName:“nginx-service” servicePort:80 EOF kubectl apply -f nginx-ingress.yaml
输出将是:
ingress.extensions/nginx-ingress created 一切完成后,您将能够通过运行以下命令获取 ALB URL:
kubectl get ingress nginx-ingress 此命令的输出将与此类似:
名称 主机 地址 端口 年龄 nginx-ingress * 5e07dbe1-default-ngnxingr-2e9-113757324.us-east-2.elb.amazonaws.com 80 9s
但我无法在此步骤中获取 ALB URL kubectl get ingress nginx-ingress
任何帮助..提前谢谢..