我正在尝试使用helm在EKS集群中设置argocd
。我想用ALB作为负载平衡器。UI可以通过http://node_ip:8080
访问,但不能通过创建的ALB或LB访问。
这是我的配置:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/backend-protocol: HTTPS
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internal
alb.ingress.kubernetes.io/target-type: IP
alb.ingress.kubernetes.io/certificate-arn: "${cert}"
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-FS-1-2-Res-2020-10
下面是创建的入口:
kubectl get ing -n argocd
NAME CLASS HOSTS ADDRESS PORTS AGE
argocd-server <none> eks-test-alb-argocd.abc.com internal-k8s-argocd-argocdse-111.222.us-east-1.elb.amazonaws.com 80 9h
下面是我尝试使用DNS或LB地址时得到的信息:
curl internal-k8s-argocd-argocdse-111-222.us-east-1.elb.amazonaws.com
<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
</body>
</html>
有什么问题吗?
发布于 2022-07-20 14:03:46
嗯,我发现了这个问题,它比我想象的简单得多。
由于豆荚正在监听端口80,所以我所要做的就是将backend-protocol
更改为HTTP
。就这样。
发布于 2022-07-19 12:08:46
从下面看,你的入口似乎没有把443转发到服务部门
kubectl get ing -n argocd
NAME CLASS HOSTS ADDRESS PORTS AGE
argocd-server <none> eks-test-alb-argocd.abc.com internal-k8s-argocd-argocdse-111.222.us-east-1.elb.amazonaws.com 80 9h
在您的掌舵值中,可以将server.ingress.https
设置为true吗?
发布于 2022-07-19 19:24:16
您是否为argocd-server
创建了第二个服务?根据医生的说法:
这是必要的,因为我们需要告诉ALB将GRPC流量发送到不同的目标组,然后是UI流量,因为后端协议是HTTP2而不是HTTP1。
apiVersion: v1
kind: Service
metadata:
annotations:
alb.ingress.kubernetes.io/backend-protocol-version: HTTP2 #This tells AWS to send traffic from the ALB using HTTP2. Can use GRPC as well if you want to leverage GRPC specific features
labels:
app: argogrpc
name: argogrpc
namespace: argocd
spec:
ports:
- name: "443"
port: 443
protocol: TCP
targetPort: 8080
selector:
app.kubernetes.io/name: argocd-server
sessionAffinity: None
type: NodePort
您在入口定义中缺少的另一件事是注释中的以下条件:
alb.ingress.kubernetes.io/conditions.argogrpc: |
[{"field":"http-header","httpHeaderConfig":{"httpHeaderName": "Content-Type", "values":["application/grpc"]}}]
这是将所有应用程序/grpc流量路由到先前创建的HTTP2后端。
参考资料:
https://stackoverflow.com/questions/72994100
复制相似问题