我正在尝试将Ambassador配置为本地kubernates集群中的API网关。
安装:
- 安装自https://www.getambassador.io/docs/latest/tutorials/getting-started/windows和Kubernetes部分
- 可以使用
>edgectl login --namespace=ambassador localhost
登录并查看仪表板 - 使用他们提供的示例项目进行配置https://www.getambassador.io/docs/latest/tutorials/quickstart-demo/
这是用于部署演示应用的YML
文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: quote
namespace: ambassador
spec:
replicas: 1
selector:
matchLabels:
app: quote
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: quote
spec:
containers:
- name: backend
image: docker.io/datawire/quote:0.4.1
ports:
- name: http
containerPort: 8080
一切都按预期进行。现在我正在尝试用我的项目进行配置。但它不起作用。
因此,对于更简单的情况,在保留每个配置作为Ambassador
的演示的情况下,我只是将image: docker.io/datawire/quote:0.4.1
修改为image: angularapp:latest
,其中这是Angular 10
项目的docker映像。
但我得到了upstream connect error or disconnect/reset before headers. reset reason: connection failure
我花了一天时间解决这个问题。我从docker桌面应用程序恢复了我的Kubernates,并进行了重新配置,但运气不佳。
当映射有效,但由于某种原因无法访问它所指向的服务时,就会发生此错误。部署是否正在实际运行(kubectl get deploy -A -o wide
(?你的angular应用程序是否暴露了8080端口?8080是一个非常常见的kubernetes端口,但在前端开发领域并不常见。如果使用kubectl exec -it {{AMBASSADOR_POD}} -- sh
,curl http://quote
是否返回预期输出?