Does anyone have a working AWS NLB configuration with ambassador?
See original GitHub issueHi,
My apologies for asking this question in issues. Don’t know where else to put it.
I am trying to setup a kubernetes cluster in AWS EKS that uses a NLB loadbalancer with ambassador edge stack/emissary ingress. However after hours of troubleshooting and trying I didn’t get it to work.
Following this guide: https://www.getambassador.io/docs/edge-stack/1.14/topics/install/yaml-install/ Ambassador edge stack v1.14 installs just fine without any errors and creates all the necessary pods and resources. It also creates an ELB loadbalancer automatically (this one does nothing I think?). After following this: https://www.getambassador.io/docs/edge-stack/1.14/topics/running/ambassador-with-aws/ it sets it up a NLB in AWS. Everything seemed fine so far. However, after deploying a test application and pasting the public dns name of the NLB in a browser, the browser just keeps loading. And in the logs of ambassador we see ‘http 200 (OK)’, but no response in the browser. Seems like traffic gets in, but no traffic gets out? We don’t have any firewalls, acl of security groups enabled that block any traffic. This test application worked fine when deployed on a prototype cluster in Virtualbox with MetalLB.
Could anyone share his/her config files for installing/configuring ambassador with NLB like the one below?
Important to note --> The config file in the guide should be changed to http and https? HTTP and HTTPS results in an error (capital letters not allowed).
apiVersion: v1
kind: Service
metadata:
name: ambassador
namespace: ambassador
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
spec:
type: LoadBalancer
ports:
- name: HTTP --> http
port: 80
targetPort: 8080
- name: HTTPS --> https
port: 443
targetPort: 8443
selector:
service: ambassador
Used software: Kubernetes 1.21 (in EKS) Ambassador edge stack 1.14
Test application used to test connection:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-test
labels:
app: nginx-test
spec:
replicas: 1
revisionHistoryLimit: 2
selector:
matchLabels:
app: nginx-test
template:
metadata:
labels:
app: nginx-test
spec:
containers:
- name: nginx-test
image: nginx:alpine
imagePullPolicy: Always
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-test
spec:
selector:
app: nginx-test
ports:
- protocol: TCP
port: 80
---
apiVersion: getambassador.io/v2
kind: Mapping
metadata:
name: nginx-test
spec:
prefix: /
rewrite: /
service: nginx-test:80
Issue Analytics
- State:
- Created 2 years ago
- Comments:9
Top GitHub Comments
I concur, this is terrible. I can’t get ambassador + AWS NLB to work and we already tried an ALB configuration before also without success.
I’ve been fooling around trying to get this product work in our new Argo cluster for the better part of a day. They really need to go through their docs on AWS, its a mess and its a mismatch of instructions that have you creating multiple services that conflict etc and its about as clear as mud. Close to just moving to another product. EKS AWS should be smooth as butter install for a product like this.