我使用Azure Kubernetes服务在k8s上部署web应用程序,并使用应用程序网关入口控制器转发来自k8s集群外部的请求。
我这样定义入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/backend-path-prefix: /
appgw.ingress.kubernetes.io/use-private-ip: "true"
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- my.hostname.com
secretName: my-cert
rules:
- host: my.hostname.com
http:
paths:
- backend:
serviceName: my-backend
servicePort: 80
my-cert
是我创建的一个秘密,其中包含我的公司不久前购买的SSL证书,该证书对所有名称*.hostname.com
都有效(例如(。
现在,如果我应用这个YAML,AGIC就会配置有秘密(我可以从AGIC的pod日志中看到一切都很好(,但我无法通过HTTP或HTTPS访问URLmy.hostname.com
上的应用程序。
相反,如果我从入口定义中删除线路host: my.hostname.com
,我可以通过应用程序网关的专用IP访问应用程序。
你知道在使用AGIC时,我是否必须执行一些特殊操作才能将主机名分配给我的应用程序网关吗?
好的,我找到了问题/解决方案。我只需要将my.hostname.com
主机名分配给公司域控制器中的专用网络IP。这样,在公司网络中,主机名可以解析为IP