我正在尝试在 AWS EKS 上启动应用程序负载均衡器 (ALB)。我已经在集群中成功安装了应用程序负载均衡器控制器。我遵循的教程告诉我,在创建入口并应用它之后,我应该看到在我的 AWS 中创建了一个 ALB,但我没有看到。可能是什么原因?我是不是错过了什么?
我已经创建并启动了苹果服务和香蕉服务以及它们的 pod。
这是入口 YAML。我也可以成功应用此入口,但 ALB 未启动。
我正在使用 EKS k8s 版本 1.22
kubectl -n kube-system get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
aws-load-balancer-controller 2/2 2 2 19m
coredns 2/2 2 2 38m
kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
my-awesome-app-ingress <none> testingkarlo.ml 80 14m
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-awesome-app-ingress
labels:
app: my-awesome-app
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
spec:
rules:
- host: testingkarlo.ml
http:
paths:
- path: /apple
pathType: Prefix
backend:
service:
name: apple-service
port:
number: 5678
- path: /banana
pathType: Prefix
backend:
service:
name: banana-service
port:
number: 5678
apple.yaml
kind: Pod
apiVersion: v1
metadata:
name: apple-app
labels:
app: apple
spec:
containers:
- name: apple-app
image: hashicorp/http-echo
args:
- "-text=apple"
---
kind: Service
apiVersion: v1
metadata:
name: apple-service
spec:
selector:
app: apple
ports:
- port: 5678 # Default port for image
targetPort: 5678
type: LoadBalancer
banana.yaml 与上面类似。
应用了apple.yaml和banana.yaml之后,两个经典的负载均衡器在AWS中上线了。
在 yaml 文件中缺少类,默认情况下它会显示经典负载均衡器。
如果没有负载均衡器出现,另一种可能是:
如果 IAM 在整个集群中看起来正常,则问题也可能是由于 VPC 链接造成的。
我们在删除 ALB 之前遇到的错误是: 由于 RequestError 导致部署模型失败:发送请求失败,原因是:发布“https://elasticloadbalancing.ap-south-1.amazonaws.com/”:拨打 tcp 172.20.4.51:443:i/o 超时
这导致删除入口和重新创建,但重新创建时,入口在 EKS 中正常运行,没有任何错误,但在 AWS 负载均衡器控制台中却没有出现
罪魁祸首是我们为API网关创建的VPC enpoint,删除VPC链接解决了问题。