我正在使用
nginx ingress controller
以下是2个服务的入口规则文件:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
namespace: kube-system
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/ingress.allow-http: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
tls:
- hosts:
- rewrite.bar.com.com
secretName: ingress-tls
rules:
- host: rewrite.bar.com.com
- http:
paths:
- path: /my-service-1/(.*)
pathType: Prefix
backend:
service:
name: my-service-1
port:
number: 36995
- path: /my-service-2/(.*)
pathType: Prefix
backend:
service:
name: my-service-2
port:
number: 32243
现在,通过service-2的shell使用下面的命令,我可以卷曲到service-1api端点,这里我需要传递主机('wire.com'),它也启用了TLS,
curl --resolve wire.com:443:10.22.148.179 https://wire.com:32243/GetData
以上curl使用主机地址成功给我回复,这里没有问题!
现在我使用POD的IP地址而不是主机地址,但这不会给我响应,它总是给出错误,比如
curl: (52) Empty reply from server
在这里
10.22.148.179
是我的入口公共IP地址,并且
10.2.0.58
是我的POD IP地址。
curl --resolve enabledservices-dev-aks.honeywell.com:443:10.22.148.179 http//10.2.0.58:32243/GetData
我的目标是通过IP地址到达POD/服务api的终点,这在集成了Ingress的上下文的情况下可能吗?