我正在尝试为 AKS 中部署的 consul 配置入口网关。
根据他们的文档,我已经为其创建了一个示例部署和入口网关。
yaml 文件:github
kubectl apply -f static-app/
我将静态应用服务从 CluserIP 更改为 LoadBalancer,并且可以使用http://<LB_IP>
但是,使用入口网关,我只能通过添加以下标头来访问:
curl -H "Host: static-server.ingress.consul" "http://<IG_IP>:8080"
如果我尝试不使用标题,则无法获取页面。
关于如何使其在没有标题的情况下工作的任何建议,以便我可以在我的主应用程序中使用它。
一旦部署完成,我就可以在 consul 窗口中看到并使用以下代码获取入口网关的 IP 地址:
答案1
您需要修改IngressGateway
资源。添加主办方数组与通配符说明符 ( *
),然后应用更改。
$ cat ingress-gateway.yaml
apiVersion: consul.hashicorp.com/v1alpha1
kind: IngressGateway
metadata:
name: ingress-gateway
spec:
listeners:
- port: 8080
protocol: http
services:
- name: static-server
hosts:
- "*"
$ kubectl apply -f ingress-gateway.yaml
ingressgateway.consul.hashicorp.com/ingress-gateway configured
我们可以检查它是否按预期工作:
$ curl http://<IG_IP>:8080
"hello world"