我正在尝试使用以下清单部署 AWS Ingress Controller:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-srv-eks
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /path1
pathType: Prefix
backend:
service:
name: path1
port:
number: 4001
- path: /path2
pathType: Prefix
backend:
service:
name: path2
port:
number: 4002
并使用以下命令来应用它:
kubectl apply -f infra/k8s/ingress-srv-eks.yaml
它表示资源已创建。 但是当我描述入口时,它说“由于入口而构建模型失败:NoCredentialProviders:链中没有有效的提供者”:
#kubectl describe ingress ingress-srv-eks
Name: ingress-srv-eks
Labels: <none>
Namespace: default
Address:
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
*
/path1 path1:4001 ()
Annotations: alb.ingress.kubernetes.io/healthcheck-path: /healhtz
alb.ingress.kubernetes.io/listen-ports: [{"HTTP": 80},{"HTTPS": 443}]
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedBuildModel 7m30s (x2 over 7m53s) ingress Failed build model due to ingress: default/ingress-srv-eks: NoCredentialProviders: no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors
下面是我安装LB后的helm命令:
helm install -n kube-system aws-load-balancer-controller eks/aws-load-balancer-controller --set clusterName=sample-cluster --set serviceAccount.create=true --set serviceAccount.name=aws-load-balancer-controller --set region=ap-south-1 --set vpcId=vpc-06e0620658310dbfb
尝试将 AWS 信用添加为环境变量,但这也不起作用。
因此,Ingress 的“地址”字段为空(执行
kubectl get ingress
时),并且我无法获取用于测试集群的 URL。
有人可以帮我解决这个问题吗?
您可以检查正确的命名空间,这里它说明了“默认”,这似乎不正确。