我有一个启用了附加 AGIC 的 AKS 集群(将在不久的将来尝试将其转换为基于 Helm 的 AGIC)。目前,我在此集群上有一个应用程序,其入口设置为应用程序网关。目前这在端口 80 上运行得很好。
如果我想启用 SSL,我是否只需要在应用程序网关添加证书,然后在部署中引用该证书? (示例取自 https://thewindowsupdate.com/2021/10/19/what-does-it-mean-for-the-application-gateway-ingress-controller-agic-to-assume-full-ownership/
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: aspnetapp
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/appgw-ssl-certificate: <name of your certificated added to Application Gateway>
appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: aspnetapp
servicePort: 80
虽然上面服务端口设置为80,但是App GW会自动应用TLS吗?上面的服务端口应该是80还是443?或者既然设置了 SSL 重定向就没有关系了?另外,这会自动加密哪些方面?
- 外部 -> 应用程序 GW?
- 应用程序 GW -> 入口?
此外,我还需要为 App GW 的外部提供另一个证书吗?或者我只需要一个证书?
最佳答案
汉德将创建:
- 2 个监听器:端口 80 上的 HTTP 和端口 443 上的 HTTPS。HTTPS 监听器将使用来自
appgw.ingress.kubernetes.io/appgw-ssl-certificate
的 SSL 证书进行配置 - 2 条路由规则:一条将 http 监听器流量重定向到 https 监听器。 https 监听器将配置为以 AKS 上的后端为目标。
默认情况下,AGIC 将执行 TLS 终止,因此应用程序网关和 aks 集群之间的流量将使用 HTTP(而不是 HTTPS)协议(protocol)。配置的端口将是您服务的 targetPort
中配置的端口。
另一方面,您之前应该已经看到过此警告:
extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
您应该更新 AGIC 以使用 latest version并更改您的 list 以使用 networking.k8s.io/v1
Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: aspnetapp
annotations:
kubernetes.io/ingress.class: azure/application-gateway
appgw.ingress.kubernetes.io/ssl-redirect: "true"
appgw.ingress.kubernetes.io/appgw-ssl-certificate: "<name of your certificate added to Application Gateway>"
spec:
rules:
...
关于azure - 具有 AGIC 和应用程序网关的 AKS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72481002/